- Kanban Board - Drag-and-drop task organization
- List View - Traditional table-style task management
- Task Details - Rich descriptions, attachments, comments
- Priority Levels - Low, Medium, High, Urgent
- Tags & Labels - Organize tasks with custom tags
- Due Dates - Track deadlines with calendar integration
- Role-Based Access - Manager and User roles
- Team Dashboard - View all team members
- Task Assignment - Assign tasks to team members
- Activity Tracking - See who did what and when
- Direct Messages - One-on-one conversations
- Group Chats - Team channels for discussions
- Real-Time Updates - Instant message delivery via WebSocket
- Unread Indicators - Never miss important messages
- Monthly View - See all tasks in calendar format
- Due Date Visualization - Color-coded task deadlines
- Quick Add - Create tasks directly from calendar
- Completion Rates - Track team productivity
- Task Distribution - Charts by status and priority
- Top Performers - Identify high achievers
- Export Options - Download reports as PDF or CSV
- Responsive Design - Works on desktop, tablet, and mobile
- Dark Mode Ready - Theme switching support
- Smooth Animations - Framer Motion transitions
- Accessible - WCAG compliant components
- React 18 - Modern UI library with hooks
- TypeScript - Type-safe development
- Vite - Lightning-fast build tool
- TailwindCSS - Utility-first styling
- Zustand - Lightweight state management
- React Router v6 - Client-side routing
- Socket.IO Client - Real-time communication
- dnd-kit - Drag and drop functionality
- Recharts - Beautiful charts and graphs
- Framer Motion - Smooth animations
- Headless UI - Accessible UI components
- date-fns - Date manipulation
- Node.js - JavaScript runtime
- Express - Web application framework
- TypeScript - Type-safe backend
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Socket.IO - Real-time bidirectional communication
- JWT - Secure authentication
- bcryptjs - Password hashing
- Multer - File upload handling
- Express Validator - Request validation
- Docker - Containerization
- Docker Compose - Multi-container orchestration
- Nginx - Production web server
- Render - Cloud deployment platform
- Node.js 18+
- MongoDB 6+
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/taskflow.git cd taskflow -
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 cp backend/.env.example backend/.env # Edit backend/.env with your values # Frontend (optional - has defaults) cp frontend/.env.example frontend/.env
-
Start MongoDB (if not using Docker)
mongod
-
Seed the database
cd backend && npm run seed
-
Start development servers
# From root directory npm run dev -
Open the app
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
-
Development mode
docker-compose -f docker-compose.dev.yml up
-
Production mode
docker-compose up --build
Use these accounts to explore the application:
| Role | Password | |
|---|---|---|
| Manager | manager@taskflow.demo | Manager123! |
| User | user@taskflow.demo | User1234! |
- alice.johnson@taskflow.demo / Alice123!
- bob.smith@taskflow.demo / BobSmith1!
- carol.williams@taskflow.demo / Carol123!
taskflow/
βββ backend/ # Express.js API
β βββ src/
β β βββ config/ # Database & app configuration
β β βββ middleware/ # Auth, validation, error handling
β β βββ models/ # Mongoose schemas
β β βββ routes/ # API endpoints
β β βββ services/ # Business logic
β β βββ socket/ # WebSocket handlers
β β βββ scripts/ # Database seeding
β β βββ server.ts # Application entry point
β βββ uploads/ # File upload directory
β βββ Dockerfile # Production container
β βββ Dockerfile.dev # Development container
β
βββ frontend/ # React SPA
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ ui/ # Base components (Button, Input, etc.)
β β β βββ tasks/ # Task-related components
β β βββ pages/ # Route pages
β β βββ stores/ # Zustand state stores
β β βββ lib/ # Utilities, API client, socket
β β βββ App.tsx # Main application component
β β βββ main.tsx # Entry point
β βββ public/ # Static assets
β βββ Dockerfile # Production container
β βββ Dockerfile.dev # Development container
β
βββ docker-compose.yml # Production orchestration
βββ docker-compose.dev.yml # Development orchestration
βββ README.md # This file
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Create new account |
| POST | /api/auth/login |
Sign in |
| POST | /api/auth/logout |
Sign out |
| GET | /api/auth/me |
Get current user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks |
List all tasks |
| POST | /api/tasks |
Create task |
| GET | /api/tasks/:id |
Get task details |
| PUT | /api/tasks/:id |
Update task |
| DELETE | /api/tasks/:id |
Delete task |
| POST | /api/tasks/:id/comments |
Add comment |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/messages/conversations |
List conversations |
| POST | /api/messages/conversations |
Create conversation |
| GET | /api/messages/conversations/:id |
Get messages |
| POST | /api/messages/conversations/:id |
Send message |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/users |
List all users |
| GET | /api/users/:id |
Get user profile |
| PUT | /api/users/me |
Update profile |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/reports/overview |
Get analytics data |
| GET | /api/reports/export |
Export report |
-
Create a new Web Service for the backend
- Build Command:
cd backend && npm install && npm run build - Start Command:
cd backend && npm start - Environment Variables: Add all from
.env
- Build Command:
-
Create a Static Site for the frontend
- Build Command:
cd frontend && npm install && npm run build - Publish Directory:
frontend/dist - Environment Variables: Add API URL
- Build Command:
-
Create a MongoDB database on MongoDB Atlas
- Add connection string to backend environment
NODE_ENV=production
PORT=5000
MONGODB_URI=mongodb+srv://...
JWT_SECRET=your-production-secret
JWT_EXPIRES_IN=7d
FRONTEND_URL=https://your-frontend.onrender.comVITE_API_URL=https://your-backend.onrender.com/api
VITE_SOCKET_URL=https://your-backend.onrender.com# Backend tests
cd backend && npm test
# Frontend tests
cd frontend && npm test
# E2E tests
npm run test:e2enpm run dev- Start both frontend and backend in development modenpm run build- Build both packages for productionnpm run lint- Lint all files
npm run dev- Start with hot reload (nodemon + ts-node)npm run build- Compile TypeScriptnpm start- Start production servernpm run seed- Seed database with demo data
npm run dev- Start Vite dev servernpm run build- Build for productionnpm run preview- Preview production build
- Fork the repository
- Create your 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.
- Heroicons - Beautiful hand-crafted SVG icons
- Tailwind CSS - Utility-first CSS framework
- Headless UI - Unstyled, accessible UI components
Made with β€οΈ by TaskFlow Team