A full-stack web application for task management with React frontend, Node.js/Express backend, JWT authentication, file uploads, and PostgreSQL database.
All frontend components and pages have been successfully implemented:
-
Authentication Pages
- ✅ Login page with form validation
- ✅ Register page with form validation
-
Main Application Pages
- ✅ Dashboard with stats, recent tasks, and quick actions
- ✅ Tasks page with filtering, search, and CRUD operations
- ✅ Create Task page with file upload support
- ✅ Task Detail page with comprehensive information display
- ✅ Edit Task page with document management
-
User Management (Admin)
- ✅ Users page with filtering and user management
- ✅ User Detail page with task history and stats
-
User Settings
- ✅ Profile page with tabbed interface
- ✅ Settings page with notifications, appearance, and privacy
- ✅ NotFound page with helpful navigation
- ✅ Layout component with navigation
- ✅ Protected routes with role-based access
- ✅ Loading spinner component
- ✅ Toast notification system
- ✅ Complete Redux store setup with slices
- ✅ API service configuration
- ✅ Authentication service
- ✅ Socket service for real-time features
- ✅ Comprehensive error handling
- Authentication & Authorization: JWT-based auth with role-based access control
- User Management: CRUD operations for users with admin privileges
- Task Management: Complete CRUD operations for tasks
- File Uploads: Attach up to 3 PDF documents per task
- Filtering & Sorting: Filter tasks by status, priority, and due date
- Real-time Updates: WebSocket integration for live task updates
- Responsive UI: Built with React and TailwindCSS
- Containerized: Docker and Docker Compose setup
- React 18
- Redux Toolkit for state management
- React Router for navigation
- TailwindCSS for styling
- Axios for API calls
- Socket.io-client for real-time updates
- React Hot Toast for notifications
- Heroicons for icons
- React Hook Form for form handling
- Node.js with Express
- JWT for authentication
- Multer for file uploads
- Socket.io for real-time features
- Swagger for API documentation
- Jest for testing
- PostgreSQL with Sequelize ORM
- File metadata storage with local/cloud file storage
- Docker & Docker Compose
- Automated testing with Jest
- API documentation with Swagger
- Docker and Docker Compose
- Node.js 18+ (for local development)
- PostgreSQL (if running locally)
- Clone the repository:
git clone https://github.com/1234-ad/task-management-system.git
cd task-management-system- Start the application:
docker-compose up --build- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- API Documentation: http://localhost:5000/api-docs
- Install dependencies:
# Backend
cd backend
npm install
# Frontend
cd ../frontend
npm install- Set up environment variables:
# Backend (.env)
cp backend/.env.example backend/.env
# Edit the .env file with your database credentials- Start PostgreSQL and run migrations:
cd backend
npm run db:migrate
npm run db:seed- Start the development servers:
# Backend (terminal 1)
cd backend
npm run dev
# Frontend (terminal 2)
cd frontend
npm startfrontend/src/
├── components/
│ ├── Auth/
│ │ └── ProtectedRoute.js
│ ├── Layout/
│ │ └── Layout.js
│ └── UI/
│ ├── LoadingSpinner.js
│ └── Toast.js
├── pages/
│ ├── Auth/
│ │ ├── Login.js
│ │ └── Register.js
│ ├── Dashboard/
│ │ └── Dashboard.js
│ ├── Tasks/
│ │ ├── Tasks.js
│ │ ├── CreateTask.js
│ │ ├── TaskDetail.js
│ │ └── EditTask.js
│ ├── Users/
│ │ ├── Users.js
│ │ └── UserDetail.js
│ ├── Profile/
│ │ └── Profile.js
│ ├── Settings/
│ │ └── Settings.js
│ └── NotFound/
│ └── NotFound.js
├── services/
│ ├── api.js
│ ├── authService.js
│ └── socketService.js
├── store/
│ ├── slices/
│ │ ├── authSlice.js
│ │ ├── taskSlice.js
│ │ ├── uiSlice.js
│ │ └── userSlice.js
│ └── store.js
└── App.js
- Complete login/register flow
- JWT token management
- Protected routes with role-based access
- Automatic token refresh
- Secure logout functionality
- Full CRUD operations for tasks
- Advanced filtering and search
- File upload support (PDF, max 3 files)
- Task status tracking
- Priority management
- Due date handling
- User listing with search and filters
- User detail views with task history
- User status management (active/inactive)
- Role-based permissions
- User profile management
- Password change functionality
- Notification preferences
- Theme and language settings
- Privacy controls
- WebSocket integration
- Live task updates
- User presence tracking
- Real-time notifications
- Responsive design with TailwindCSS
- Loading states and error handling
- Toast notifications
- Intuitive navigation
- Accessibility considerations
The API documentation is available at /api-docs when the backend is running. Key endpoints include:
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/refresh- Refresh JWT token
GET /api/users- List users (admin only)GET /api/users/:id- Get user detailsPUT /api/users/:id- Update userDELETE /api/users/:id- Delete user (admin only)
GET /api/tasks- List tasks with filtering/sortingPOST /api/tasks- Create new taskGET /api/tasks/:id- Get task detailsPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete taskPOST /api/tasks/:id/documents- Upload documentsGET /api/tasks/:id/documents/:docId- Download document
Run the test suite:
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test
# Test coverage
npm run test:coverageNODE_ENV=development
PORT=5000
DB_HOST=localhost
DB_PORT=5432
DB_NAME=taskmanagement
DB_USER=postgres
DB_PASSWORD=password
JWT_SECRET=your-secret-key
JWT_REFRESH_SECRET=your-refresh-secret
UPLOAD_PATH=./uploads
REACT_APP_BACKEND_URL=http://localhost:5000
REACT_APP_SOCKET_URL=http://localhost:5000
The application is containerized and can be deployed to any platform supporting Docker:
- Heroku: Use the included
heroku.yml - AWS: Deploy using ECS or Elastic Beanstalk
- DigitalOcean: Use App Platform or Droplets
- Vercel: Frontend deployment with serverless functions
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new features
- Ensure all tests pass
- Submit a pull request
MIT License - see LICENSE file for details.
This task management system now includes:
- ✅ Complete frontend implementation (100%)
- ✅ Full backend API (100%)
- ✅ Real-time WebSocket features
- ✅ File upload functionality
- ✅ User authentication & authorization
- ✅ Admin panel for user management
- ✅ Responsive UI with modern design
- ✅ Comprehensive error handling
- ✅ Docker containerization
The application is production-ready and includes all the features specified in the original requirements!