Park Genie is a smart parking management system that enables users to find, book, and predict parking slot availability. The system integrates Node.js (Express.js), MongoDB, and Python (Machine Learning) to optimize parking slot usage and provide real-time availability and predictions based on historical data.
Real-time Parking Slot Availability: View available slots before arriving.
QR Code-based Booking System: Users receive a QR code for payment confirmation.
Machine Learning Predictions: Predicts when a slot will be free based on past data.
Session-based Slot Reservation: Ensures seamless user experience.
MongoDB Integration: Stores user and slot data efficiently.
Node.js 18+
Express β Web framework
Path β Built-in Node.js module for handling file paths
EJS-Mate β Layout engine for EJS templates
Mongoose β MongoDB ODM
Body-parser β Middleware to parse incoming request bodies
Dotenv β Loads environment variables
Axios β HTTP client for API requests
CORS β Middleware for cross-origin requests
QRCode β Generates QR codes
Express-session β Manages user sessions
Python-shell β Runs Python scripts from Node.js
Child_process β Spawns and manages system processes
Python 3.9+
Pandas β Data manipulation
NumPy β Numerical computing
Scikit-learn β ML model implementation
Joblib β Saves and loads ML models
Flask β Serves ML predictions via API
git clone https://github.com/kashish2710/park-genie.git
cd park-genie
python3 -m venv venv
OR
python -m venv venv
source venv/bin/activate # On macOS/Linux
venv\Scripts\activate # On Windows
For Node.js Backend:
npm install express path ejs-mate mongoose body-parser dotenv axios cors qrcode express-session python-shell child_process
For Python ML Model:
pip install pandas flask joblib scikit-learn
Start the Backend Server
node app.js
Server will be available at: http://localhost:8080
GET / β View the front Page.
GET /parking-slot β View all parking slots.
GET /available-slots β Returns the number of available slots.
POST /confirm-payment β Confirms slot payment and updates availability.
POST /next β Stores selected slot in session.
POST /payment β Registers user details and generates QR Code.
POST /check-slot β Predicts when a slot will be free.
Integration with IoT sensors for real-time occupancy updates.
Implementing automated payments.
Enhancing ML predictions with more data points.
This project is licensed under the MIT License.
If you want to contribute please feel free to fork this repo and submit a pull request.
For any queries, reach out to the project maintainers.