pssms_project
v1.0.0
Published
``` [Car] 1------* [ParkingRecord] PlateNumber (PK) PlateNumber (FK) DriverName SlotNumber (FK) PhoneNumber EntryTime ExitTime Duration RecordID (PK)
Readme
SmartPark PSSMS - Parking Space Sales Management System
Entity Relationship Diagram (ERD)
Entities and Relationships:
[Car] 1------* [ParkingRecord]
PlateNumber (PK) PlateNumber (FK)
DriverName SlotNumber (FK)
PhoneNumber EntryTime
ExitTime
Duration
RecordID (PK)
[ParkingSlot] 1------* [ParkingRecord]
SlotNumber (PK) SlotNumber (FK)
SlotStatus entry
[ParkingRecord] 1------1 [Payment]
RecordID (PK) RecordID (FK)
AmountPaid
PaymentDate
PaymentID (PK)
[Users]
UserID (PK)
Username (Unique)
PasswordHashCardinalities:
- Car to ParkingRecord: One-to-Many (1 car can have multiple parking records)
- ParkingSlot to ParkingRecord: One-to-Many (one slot can host multiple parking sessions over time)
- ParkingRecord to Payment: One-to-One (one record generates one payment)
Setup Instructions
Prerequisites:
- Node.js installed
- MySQL server running
- Database imported from
database.sql
Backend Setup:
cd backend-project
npm install
# Update .env with your MySQL credentials
node server.jsFrontend Setup:
cd frontend-project
npm install
npm run devSecurity Features:
- Password Encryption: Using bcryptjs with salt rounds
- Session-Based Authentication: Secure session management
- Helmet.js: HTTP security headers
- CORS Protection: Restricted origin access
- Protected Routes: Authentication middleware for API endpoints
Default Credentials:
- Username:
admin - Password:
Admin@123
Parking Fee Calculation:
- 500 RWF per hour
- Any duration under 1 hour is charged 500 RWF (minimum hourly rate)
