A production-ready, enterprise-level task management system with real-time collaboration, OAuth integration, and responsive design.
Live Demo β’ Documentation β’ Report Bug β’ Request Feature
- π Enterprise Authentication - JWT with automatic token refresh, OAuth (GitHub), email verification
- π± Fully Responsive - Mobile-first design, works seamlessly on all devices (320px - 4K)
- β‘ Modern Stack - Next.js 16, React 19, TypeScript, Tailwind CSS v4
- π¨ Beautiful UI - Framer Motion animations, shadcn/ui components, smooth transitions
- π Production Ready - Comprehensive error handling, security best practices, optimized performance
- π§ͺ Well Tested - Backend tested with Jest & Supertest
- π Scalable Architecture - Clean code, separation of concerns, RESTful API design
Next.js 16.0 β’ React 19.2 β’ TypeScript 5
Tailwind CSS v4 β’ Framer Motion β’ shadcn/ui
Zustand β’ Axios β’ React Hook Form
Node.js 22 β’ Express.js 4 β’ Prisma ORM 5
PostgreSQL 16 β’ Redis 4 β’ JWT Auth
Bcrypt β’ Passport.js β’ Resend (Email)
Docker β’ Docker Compose β’ GitHub Actions
ESLint β’ Prettier β’ Jest
- JWT-based authentication with 30-day expiration
- Automatic token refresh (seamless session management)
- OAuth 2.0 integration (GitHub)
- Email verification system
- Password reset with secure tokens
- Role-based access control (Admin, Manager, Member)
- Bcrypt password hashing
- Protected routes & API endpoints
- CORS configuration
- Helmet.js security headers
- Create, read, update, delete projects
- Project status tracking (Active, Completed, On Hold, Archived)
- Project ownership & permissions
- Task count per project
- Project detail view with all tasks
- Full CRUD operations for tasks
- Task status (To Do, In Progress, In Review, Completed)
- Priority levels (Low, Medium, High, Urgent)
- Task assignment to team members
- Due date tracking
- Advanced filtering (status, priority, assignee, project)
- Real-time search functionality
- Task detail modal with all information
- User profile management
- Avatar support
- Password change functionality
- Email management
- Activity tracking
- Role management
- Fully responsive design (mobile-first)
- Dark/light mode support
- Smooth Framer Motion animations
- Toast notifications (success, error, info)
- Loading states & skeletons
- Empty states with call-to-actions
- Mobile hamburger menu
- Touch-friendly interface
- Accessible components (ARIA labels)
- Node.js 22.x or higher
- PostgreSQL 16.x
- npm or yarn package manager
- Git
-
Clone the repository
git clone https://github.com/slubbles/task-flow.git cd task-flow -
Install dependencies
# Install root dependencies npm install # Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install
-
Set up environment variables
Backend (.env)
# Database DATABASE_URL="postgresql://user:password@localhost:5432/taskflow" # JWT JWT_SECRET="your-super-secret-jwt-key-change-this" JWT_EXPIRES_IN="30d" # Email (Resend) RESEND_API_KEY="your-resend-api-key" EMAIL_FROM="onboarding@yourdomain.com" # OAuth GitHub GITHUB_CLIENT_ID="your-github-client-id" GITHUB_CLIENT_SECRET="your-github-client-secret" GITHUB_CALLBACK_URL="http://localhost:3001/api/auth/callback/github" # App URLs FRONTEND_URL="http://localhost:3000" BACKEND_URL="http://localhost:3001" # Redis (Optional) REDIS_URL="redis://localhost:6379"
Frontend (.env.local)
NEXT_PUBLIC_API_URL=http://localhost:3001/api
-
Set up the database
cd backend npx prisma migrate dev npx prisma generate -
Run the application
Using Docker (Recommended)
docker-compose up
Or run manually
# Terminal 1 - Backend cd backend npm run dev # Terminal 2 - Frontend cd frontend npm run dev
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001/api
task-flow/
βββ backend/ # Express.js Backend
β βββ prisma/
β β βββ schema.prisma # Database schema
β β βββ migrations/ # Database migrations
β βββ src/
β β βββ config/ # Configuration files
β β βββ controllers/ # Route controllers
β β βββ middleware/ # Custom middleware
β β βββ routes/ # API routes
β β βββ services/ # Business logic
β β βββ utils/ # Utility functions
β β βββ server.js # Entry point
β βββ tests/ # Backend tests
β
βββ frontend/ # Next.js Frontend
β βββ app/ # App Router pages
β β βββ (auth)/ # Auth pages
β β βββ dashboard/ # Dashboard
β β βββ projects/ # Projects management
β β βββ tasks/ # Tasks management
β β βββ profile/ # User profile
β βββ components/ # React components
β β βββ ui/ # shadcn/ui components
β β βββ *.tsx # Custom components
β βββ lib/ # Utilities
β β βββ api/ # API client
β βββ store/ # Zustand stores
β βββ types/ # TypeScript types
β
βββ docs/ # Documentation
βββ docker-compose.yml # Docker configuration
βββ README.md # This file
POST /api/auth/register # Register new user
POST /api/auth/login # Login user
POST /api/auth/refresh # Refresh JWT token
POST /api/auth/logout # Logout user
POST /api/auth/verify-email # Verify email address
POST /api/auth/forgot-password # Request password reset
POST /api/auth/reset-password # Reset password
PUT /api/auth/change-password # Change password
PUT /api/auth/profile # Update profile
GET /api/oauth/github # GitHub OAuth login
GET /api/auth/callback/github # GitHub OAuth callback
GET /api/projects # Get all projects
GET /api/projects/:id # Get project by ID
POST /api/projects # Create new project
PUT /api/projects/:id # Update project
DELETE /api/projects/:id # Delete project
GET /api/tasks # Get all tasks (with filters)
GET /api/tasks/:id # Get task by ID
POST /api/tasks # Create new task
PUT /api/tasks/:id # Update task
DELETE /api/tasks/:id # Delete task
GET /api/users # Get all users
π Full API documentation: See API.md
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test
# E2E tests
npm run test:e2e- Create a new project
- Connect your GitHub repository
- Add environment variables
- Deploy
- Import your GitHub repository
- Select Next.js framework
- Add environment variables
- Deploy
Detailed deployment guide: See DEPLOYMENT.md
Contributions, issues, and feature requests are welcome!
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is MIT licensed.
Idderf Salem
- GitHub: @slubbles
- LinkedIn: Your LinkedIn
- Portfolio: Your Portfolio
- Next.js - The React Framework for the Web
- shadcn/ui - Beautifully designed components
- Prisma - Next-generation ORM
- Tailwind CSS - A utility-first CSS framework
- Framer Motion - Animation library