A modern, full-stack task management application built with React and Node.js.
- User Authentication: Secure login and registration system
- Task Management: Create, edit, delete, and organize tasks
- Real-time Updates: Live synchronization across multiple devices
- Responsive Design: Works seamlessly on desktop and mobile
- Task Categories: Organize tasks with custom categories and tags
- Due Date Management: Set and track task deadlines
- Search & Filter: Find tasks quickly with advanced filtering
- Progress Tracking: Visual progress indicators and statistics
- React 18 - Modern UI library
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- React Query - Data fetching and caching
- React Router - Client-side routing
- Zustand - State management
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - Database
- Mongoose - ODM for MongoDB
- JWT - Authentication
- Socket.io - Real-time communication
task-management-app/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── services/ # API service functions
│ │ ├── store/ # State management
│ │ └── utils/ # Utility functions
│ ├── public/ # Static assets
│ └── package.json
├── server/ # Node.js backend
│ ├── src/
│ │ ├── controllers/ # Route controllers
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Custom middleware
│ │ └── utils/ # Utility functions
│ └── package.json
├── shared/ # Shared types and utilities
└── README.md
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- npm or yarn
-
Clone the repository
git clone <repository-url> cd task-management-app
-
Install dependencies
# Install server dependencies cd server npm install # Install client dependencies cd ../client npm install
-
Environment Setup
# Create .env file in server directory cd ../server cp .env.example .env # Edit .env with your configuration
-
Start the application
# Start the server (from server directory) npm run dev # Start the client (from client directory) npm start
Server:
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm start- Start production servernpm test- Run tests
Client:
npm start- Start development servernpm run build- Build for productionnpm test- Run testsnpm run lint- Run ESLint
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/me- Get current user
GET /api/tasks- Get all tasks for userPOST /api/tasks- Create new taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete taskPATCH /api/tasks/:id/status- Update task status
GET /api/categories- Get all categoriesPOST /api/categories- Create new categoryPUT /api/categories/:id- Update categoryDELETE /api/categories/:id- Delete category
The application includes a comprehensive set of reusable components:
- TaskCard - Individual task display
- TaskForm - Create/edit task form
- CategoryFilter - Filter tasks by category
- SearchBar - Search functionality
- ProgressChart - Visual progress tracking
- UserProfile - User account management
The project includes comprehensive testing:
- Unit Tests - Component and utility function testing
- Integration Tests - API endpoint testing
- E2E Tests - Full user workflow testing
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage- Build the client:
npm run build - Deploy the
buildfolder to your hosting platform
- Set environment variables
- Deploy using your preferred platform
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit changes:
git commit -am 'Add new feature' - Push to branch:
git push origin feature/new-feature - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Team collaboration features
- File attachments for tasks
- Advanced analytics dashboard
- Mobile app (React Native)
- Integration with external tools (Slack, Google Calendar)
- AI-powered task suggestions
- Time tracking functionality
Perfect for showcasing:
- Full-stack development skills
- Modern React patterns and hooks
- RESTful API design
- Database modeling and relationships
- Authentication and authorization
- Real-time features
- Responsive design
- Testing strategies