A full-stack project management system built with React frontend and Node.js backend, featuring client management, project tracking, task management, and offer generation capabilities.
- User Management: Authentication and user role management
- Client Management: Store and manage client information
- Project Management: Create and track projects
- Task Management: Organize and monitor project tasks
- Service Management: Manage services offered
- Offer Generation: Create and manage client offers
- PDF Generation: Generate PDF documents for offers and tasks
- File Upload: Handle file uploads with size limits
- Database Management: Backup and restore functionality
- React 18 - UI library
- Vite - Build tool and development server
- React Router DOM - Client-side routing
- React Query (TanStack Query) - Data fetching and caching
- Styled Components - CSS-in-JS styling
- React Hook Form - Form handling
- React PDF Renderer - PDF generation
- Recharts - Data visualization
- React Icons - Icon library
- React Hot Toast - Notifications
- Node.js - Runtime environment
- Express.js - Web framework
- MySQL2 - Database driver
- JWT - Authentication
- Bcrypt - Password hashing
- Nodemailer - Email functionality
- Express FileUpload - File upload handling
- CORS - Cross-origin resource sharing
PMS2023/
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── features/ # Feature-based components
│ │ ├── pages/ # Page components
│ │ ├── ui/ # Reusable UI components
│ │ ├── services/ # API services
│ │ ├── hooks/ # Custom React hooks
│ │ ├── context/ # React context providers
│ │ └── styles/ # Global styles
│ ├── public/ # Static assets
│ └── package.json
├── backend/ # Node.js backend application
│ ├── routes/ # API route handlers
│ ├── utils/ # Utility functions
│ ├── public/ # Static files
│ └── package.json
└── README.md
- Node.js (v16 or higher)
- MySQL database
- Git
Clone the repository
Install Frontend Dependencies
Install Backend Dependencies
Environment Setup
Create .env file in the backend directory:
Database Setup
- Create a MySQL database
- Import the database schema (check
backend/for SQL files)
Start Backend Server
The backend will run on http://localhost:8080
Start Frontend Development Server
The frontend will run on http://localhost:5173
Build for Production
The backend provides the following API routes:
/users- User management/clients- Client management/projects- Project management/tasks- Task management/services- Service management/offers- Offer management/settings- Application settings/upload- File upload handling/managedb- Database management
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
npm run dev- Start development server with nodemonnpm start- Start production servernpm run format:check- Check code formattingnpm run format:write- Format code
This project is licensed under the ISC License.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
For support and questions, please open an issue in the repository.
# Frontend
cd frontend
npm run build
# Backend
cd backend
npm start
cd frontend
npm run dev
cd backend
npm run dev
PORT=8080
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database_name
JWT_SECRET=your_jwt_secret
cd ../backend
npm install
cd frontend
npm install
git clone <repository-url>
cd PMS2023