An advanced parking management solution that uses computer vision to identify free parking slots and provides an integrated user authentication and payment system.
- Computer Vision: Utilizes OpenCV to identify free parking slots in real-time.
- Dockerized Application: The computer vision model is hosted on DockerHub for easy deployment.
- Node.js Backend: Provides an API for parking lot management.
- MongoDB Database: Stores user and parking lot information.
- Redis Caching Layer: Improves performance and scalability.
- Google OAuth 2.0: User authentication and authorization.
- Stripe Payment Gateway: Handles payments and generates QR code tickets.
- Frontend: Built with HTML, CSS, and JavaScript located in the
public
folder.
- Docker
- Node.js
- npm
- MongoDB
- Redis
git clone https://github.com/akshatjainei/APS.git
docker compose up
- Install Node.js dependencies:
npm install
-Set up environment variables: Create a .env file in the directory and add the following:
PORT=your_port_number
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
STRIPE_SECRET_KEY=your_stripe_secret_key
MONGO_URI=your_mongodb_url
- Run the backend:
nodemon app.js
- Navigate to http://localhost:PORT/auth to authenticate using Google OAuth 2.0.
- Access the parking lot API at http://localhost:PORT/parkingLot for managing parking slots.
- The Stripe payment gateway is integrated, and upon successful payment, a QR code ticket is generated for the user.
- The frontend can be accessed by opening the index.html file located in the public folder.
- OpenCV: For computer vision and free slot detection.
- Docker: To containerize the computer vision model.
- Node.js: Backend server.
- MongoDB: Database for storing user and parking lot data.
- Redis: Caching layer to enhance performance.
- Google OAuth 2.0: For user authentication.
- Stripe: For payment processing.
- QR Code Generator: To generate QR code tickets.
- HTML, CSS, JavaScript: Frontend technologies used in the public folder.
- Fork the repository.
- Create a new branch (git checkout -b feature-branch).
- Commit your changes (git commit -m 'Add some feature').
- Push to the branch (git push origin feature-branch).
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.