A modern personal productivity web app built with Next.js, TypeScript, and PostgreSQL.
- To-Do List & Task Tracking: Create, edit, delete, and mark tasks as complete with custom tags, deadlines, and progress tracking
- Notes Section: Rich text editor with Markdown support, categorized by folders/tags, and searchable
- LeetCode Favorites: Save and manage favorite coding problems with difficulty filters
- ChatGPT Favorites: Store links to favorite ChatGPT chats with descriptions
- Authentication: Simple login with email/password
- Theme Support: Dark/light theme toggle with custom color schemes
- Responsive Design: Desktop and mobile friendly
- Clean and minimalistic design inspired by Notion + Todoist
- Smooth animations using Framer Motion
- Modern component library with Radix UI
- Customizable themes and color schemes
- Overview of today's tasks
- Recently edited notes
- 3 most recently visited LeetCode problems
- 3 pinned ChatGPT chats
- Progress tracking and statistics
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: Next.js API Routes
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- UI Components: Radix UI, Lucide React
- Animations: Framer Motion
- Rich Text: React Markdown, MDX Editor
- Node.js 18+
- PostgreSQL database
- npm or yarn
-
Clone the repository
git clone <your-repo-url> cd productivity-app
-
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory:# Database DATABASE_URL="postgresql://username:password@localhost:5432/productivity_db?schema=public" # NextAuth NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key-here-change-in-production"
-
Set up the database
# Generate Prisma client npx prisma generate # Run database migrations npx prisma db push # (Optional) Seed the database npx prisma db seed
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
If you don't have PostgreSQL installed:
-
Using Docker (Recommended)
docker run --name productivity-postgres -e POSTGRES_PASSWORD=password -e POSTGRES_DB=productivity_db -p 5432:5432 -d postgres:15
-
Using local PostgreSQL
- Install PostgreSQL on your system
- Create a database named
productivity_db - Update the
DATABASE_URLin your.envfile
productivity-app/
├── prisma/
│ └── schema.prisma # Database schema
├── src/
│ ├── app/ # Next.js 14 app directory
│ │ ├── api/ # API routes
│ │ ├── auth/ # Authentication pages
│ │ ├── dashboard/ # Dashboard page
│ │ ├── tasks/ # Tasks management
│ │ ├── notes/ # Notes management
│ │ ├── leetcode/ # LeetCode favorites
│ │ └── chatgpt/ # ChatGPT favorites
│ ├── components/ # Reusable components
│ │ └── ui/ # UI components
│ └── lib/ # Utility functions
├── public/ # Static assets
└── README.md
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpx prisma studio- Open Prisma Studio (database GUI)npx prisma generate- Generate Prisma clientnpx prisma db push- Push schema changes to database
- Full task CRUD operations
- Rich text editor for notes
- Advanced filtering and search
- Data export/import
- Mobile app (React Native)
- Collaboration features
- API integrations (LeetCode, ChatGPT)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help setting up the project, please open an issue or contact the maintainers.
ProductivityHub - Your all-in-one productivity companion 🚀