crpms-project
v1.0.0
Published
SmartPark is a company located in Rubavu District, western province of Rwanda. This web-based application helps manage car repair services, track payments, and generate reports.
Readme
Car Repair Payment Management System (CRPMS)
SmartPark is a company located in Rubavu District, western province of Rwanda. This web-based application helps manage car repair services, track payments, and generate reports.
Features
- Car Management: Register and manage vehicle information
- Services Management: Manage repair services with pricing
- Service Records: Track all service activities with full CRUD operations
- Payment Management: Record payments and generate bills/invoices
- Reports: Generate daily reports with print functionality
- User Authentication: Session-based login with encrypted passwords
- Responsive Design: Works on desktop and mobile devices
Tech Stack
Backend
- Node.js
- Express.js
- MySQL
- bcryptjs (password encryption)
- express-session
Frontend
- React.js with Vite
- Tailwind CSS
- Axios
- React Router
- Lucide React Icons
Setup Instructions
Prerequisites
- Node.js (v14 or higher)
- MySQL Server
- npm or yarn
Database Setup
- Make sure MySQL server is running
- Create a database named
CRPMS(the app will auto-create tables)
Backend Setup
cd backend-project
npm install
npm startBackend will run on http://localhost:5000
Frontend Setup
cd frontend-project
npm install
npm run devFrontend will run on http://localhost:5173
Default Services
The system comes with pre-configured services:
- Engine repair: 150,000 RWF
- Transmission repair: 80,000 RWF
- Oil Change: 60,000 RWF
- Chain replacement: 40,000 RWF
- Disc replacement: 400,000 RWF
- Wheel alignment: 5,000 RWF
User Registration
On first use, create an account with a strong password:
- Minimum 8 characters
- At least one uppercase letter
- At least one lowercase letter
- At least one number
- At least one special character
ERD Description
Entities:
- Services - ServiceCode (PK), ServiceName, ServicePrice
- Car - PlateNumber (PK), Type, Model, ManufacturingYear, DriverPhone, MechanicName
- ServiceRecord - RecordNumber (PK), PlateNumber (FK), ServiceCode (FK), ServiceDate, Status
- Payment - PaymentNumber (PK), RecordNumber (FK), AmountPaid, PaymentDate, ReceiverName
- User - id (PK), username, password
Relationships:
- Car → ServiceRecord (1:N)
- Services → ServiceRecord (1:N)
- ServiceRecord → Payment (1:1)
Author
CRPMS Practical Exam Project - 2025
