Skip to content

Full-stack task management system with React frontend, Node.js/Express backend, JWT authentication, file uploads, and PostgreSQL database

Notifications You must be signed in to change notification settings

1234-ad/task-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Task Management System

A full-stack web application for task management with React frontend, Node.js/Express backend, JWT authentication, file uploads, and PostgreSQL database.

✅ Project Status: COMPLETE

Frontend Implementation Status: 100% COMPLETE ✅

All frontend components and pages have been successfully implemented:

✅ Completed Pages & Components:

  • 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

✅ Core Components:

  • ✅ Layout component with navigation
  • ✅ Protected routes with role-based access
  • ✅ Loading spinner component
  • ✅ Toast notification system

✅ Services & State Management:

  • ✅ Complete Redux store setup with slices
  • ✅ API service configuration
  • ✅ Authentication service
  • ✅ Socket service for real-time features
  • ✅ Comprehensive error handling

Features

  • 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

Tech Stack

Frontend ✅ COMPLETE

  • 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

Backend ✅ COMPLETE

  • Node.js with Express
  • JWT for authentication
  • Multer for file uploads
  • Socket.io for real-time features
  • Swagger for API documentation
  • Jest for testing

Database ✅ COMPLETE

  • PostgreSQL with Sequelize ORM
  • File metadata storage with local/cloud file storage

DevOps ✅ COMPLETE

  • Docker & Docker Compose
  • Automated testing with Jest
  • API documentation with Swagger

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Node.js 18+ (for local development)
  • PostgreSQL (if running locally)

Using Docker (Recommended)

  1. Clone the repository:
git clone https://github.com/1234-ad/task-management-system.git
cd task-management-system
  1. Start the application:
docker-compose up --build
  1. Access the application:

Local Development

  1. Install dependencies:
# Backend
cd backend
npm install

# Frontend
cd ../frontend
npm install
  1. Set up environment variables:
# Backend (.env)
cp backend/.env.example backend/.env
# Edit the .env file with your database credentials
  1. Start PostgreSQL and run migrations:
cd backend
npm run db:migrate
npm run db:seed
  1. Start the development servers:
# Backend (terminal 1)
cd backend
npm run dev

# Frontend (terminal 2)
cd frontend
npm start

Frontend Architecture

Component Structure

frontend/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

Key Features Implemented

🔐 Authentication System

  • Complete login/register flow
  • JWT token management
  • Protected routes with role-based access
  • Automatic token refresh
  • Secure logout functionality

📋 Task Management

  • 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 Management (Admin)

  • User listing with search and filters
  • User detail views with task history
  • User status management (active/inactive)
  • Role-based permissions

⚙️ Settings & Profile

  • User profile management
  • Password change functionality
  • Notification preferences
  • Theme and language settings
  • Privacy controls

🔄 Real-time Features

  • WebSocket integration
  • Live task updates
  • User presence tracking
  • Real-time notifications

🎨 UI/UX Features

  • Responsive design with TailwindCSS
  • Loading states and error handling
  • Toast notifications
  • Intuitive navigation
  • Accessibility considerations

API Documentation

The API documentation is available at /api-docs when the backend is running. Key endpoints include:

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/refresh - Refresh JWT token

Users

  • GET /api/users - List users (admin only)
  • GET /api/users/:id - Get user details
  • PUT /api/users/:id - Update user
  • DELETE /api/users/:id - Delete user (admin only)

Tasks

  • GET /api/tasks - List tasks with filtering/sorting
  • POST /api/tasks - Create new task
  • GET /api/tasks/:id - Get task details
  • PUT /api/tasks/:id - Update task
  • DELETE /api/tasks/:id - Delete task
  • POST /api/tasks/:id/documents - Upload documents
  • GET /api/tasks/:id/documents/:docId - Download document

Testing

Run the test suite:

# Backend tests
cd backend
npm test

# Frontend tests
cd frontend
npm test

# Test coverage
npm run test:coverage

Environment Variables

Backend (.env)

NODE_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

Frontend (.env)

REACT_APP_BACKEND_URL=http://localhost:5000
REACT_APP_SOCKET_URL=http://localhost:5000

Deployment

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

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new features
  5. Ensure all tests pass
  6. Submit a pull request

License

MIT License - see LICENSE file for details.


🎉 Implementation Complete!

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!

About

Full-stack task management system with React frontend, Node.js/Express backend, JWT authentication, file uploads, and PostgreSQL database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published