A modern, full-stack todo application built with Next.js 14+, TypeScript, Tailwind CSS, and PostgreSQL. Inspired by Asana's design philosophy with enterprise-grade features.
π Live Demo: https://todo-god.vercel.app
- Authentication System: JWT-based auth with registration and login
- Project Management: Complete CRUD operations for projects with workspace support
- Database Schema: Complete Prisma schema with PostgreSQL
- Modern UI: Tailwind CSS with responsive design
- TypeScript: Full type safety throughout the application
- Production Deployment: Deployed on Vercel with custom domain
- API Integration: RESTful APIs for projects, tasks, and sections
- Task management with CRUD operations
- Real-time collaboration
- Kanban board view
- Calendar integration
- Dashboard with analytics
- Dark mode theme
- Frontend: Next.js 14+ (App Router), React, TypeScript
- Styling: Tailwind CSS
- Database: Neon PostgreSQL v17 with Prisma ORM
- Authentication: JWT with bcrypt
- Validation: Zod
- UI Components: Custom components with Lucide icons
- Deployment: Vercel with custom domain
- State Management: Zustand for client-side state
-
Clone the repository (or use existing folder)
cd Todo -
Install dependencies
npm install
-
Set up environment variables
- Copy
.env.localand update with your database URL - Generate secure JWT secrets (32+ characters)
DATABASE_URL="postgresql://user:password@localhost:5432/asana_todo" JWT_SECRET="your-super-secret-jwt-key-32-chars" JWT_REFRESH_SECRET="your-super-secret-refresh-key-32-chars"
- Copy
-
Set up the database
# Generate Prisma client npx prisma generate # Push schema to database (for development) npx prisma db push # Or run migrations (for production) npx prisma migrate dev
-
Start the development server
npm run dev
Todo/
βββ app/ # Next.js 14 App Router
β βββ api/ # API routes
β β βββ auth/ # Authentication endpoints
β βββ dashboard/ # Dashboard pages
β βββ login/ # Login page
β βββ register/ # Registration page
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ lib/ # Utility libraries
β βββ auth/ # Authentication utilities
β β βββ jwt.ts # JWT token management
β β βββ password.ts # Password hashing
β βββ prisma.ts # Prisma client
βββ prisma/ # Database schema and migrations
β βββ schema.prisma # Database schema
βββ components/ # React components (to be added)
βββ store/ # State management (to be added)
βββ public/ # Static assets
- Registration: Users create account with email/password
- Login: JWT access token (15min) + refresh token (7 days)
- Sessions: Refresh tokens stored in database with expiration
- Security: Passwords hashed with bcrypt, tokens signed with secrets
The application uses a comprehensive schema including:
- Users: Authentication and profile data
- Workspaces: Team collaboration spaces
- Projects: Project organization within workspaces
- Tasks: Core task management with status, priority, assignments
- Comments: Task collaboration
- Tags & Attachments: Enhanced task metadata
- URL: https://todo-god.vercel.app
- Platform: Vercel with automatic deployments
- Custom Domain: Configured with Vercel alias system
- GitHub Integration: Connected repository for automatic deployments
- Build Configuration: Custom build script with Prisma generation
- Environment Variables: Production environment configured
- Domain Aliasing:
vercel alias [deployment-url] todo-god.vercel.app
DATABASE_URL="postgresql://user:pass@host/db?sslmode=require"
JWT_SECRET="your-production-jwt-secret"
JWT_REFRESH_SECRET="your-production-refresh-secret"
NEXTAUTH_URL="https://todo-god.vercel.app"
NEXTAUTH_SECRET="your-nextauth-secret"
NODE_ENV="production"{
"scripts": {
"build": "prisma generate && next build",
"postinstall": "prisma generate"
}
}- Next.js project setup
- Authentication system
- Database schema
- Basic UI components
- Production deployment
- Custom domain setup
- Project CRUD operations
- Project management API
- Dashboard with navigation
- Project cards and list views
- Workspace integration
- Task CRUD operations (In Progress)
- Kanban board implementation
- Dark mode theme
- Real-time collaboration
- Calendar integration
- File attachments
- Advanced search and filters
- Mobile responsiveness
- Performance optimization
- Testing suite
- Documentation
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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 encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed description
- Include error messages and environment details
Built with β€οΈ using Next.js, TypeScript, and modern web technologies.