ValetOps is a RESTful backend system designed for businesses offering valet services. It supports robust management of tickets, cars, devices, parking locations, and payment histories, with distinct workflows for both business owners and valet staff. This backend powers an AI-enabled mobile application that streamlines valet operations through secure, efficient, and scalable APIs. Business owners interact with the system to manage employees (valets), view business statistics, and more, while valets use the system to manage cars and tickets, scan cars to extract features, and view available parking locations.
- 🔐 JWT-based authentication and authorization system
- 👤 Two user roles: Business Owner & Valet
🅿️ Parking location configuration per business- 📊 Business dashboards and visit/payment statistics
- 📍 Google Maps-compatible location data (latitude, longitude)
- 🔔 FCM token support for push notifications
- 📈 Peak hour and daily visit analytics
- 🚗 Car detection and feature extraction using custom local AI models (color, brand, plate recognition)
- 🎫 Ticket and parking management
- 🔋 Device and user management, like storing logs of device assignments or tracking valets' status for automatic ticket assignment
- 📖 Paginated Queries
- 🧩 Modular and extensible backend architecture
- Language: Python
- Backend Framework: FastAPI
- Authentication: JWT
- Database: SQLAlchemy + MySQL (or compatible)
- Security: Password hashing with bcrypt (via Passlib)
- request/response validation: Pydantic
- Third Party Integrations: Firebase Cloud Messaging (FCM) for push notifications
- AI/ML/Computer Vision: OpenCV, YOLO, CNN, PaddleOCR
-
Clone the repository:
git clone https://github.com/OzanT1/ValetOps.git cd ValetOps -
Install dependencies (Or optionally create a virtual environment (venv) before this step):
pip install -r requirements.txt -
Configuration:
Copy example config files and fill in your values:
cp app/Database/database_config.example.yaml app/Database/database_config.yaml
cp .env.example .env
Create a folder named config in the root directory and place your firebase-adminsdk.json file inside it.
python -m app.main
Full API docs available at: http://localhost:8000/docs OR http://127.0.0.1:8000/docs
- The server is designed to be used by a mobile app frontend.
- Auth tokens are sent as Authorization: Bearer headers.
- FCM tokens can be provided on login to enable push notifications.
This project showcases:
- Backend Development Skills
- REST API Design
- Relational Database Design
- Secure token-based authentication (JWT)
- Role-based access control
- Clean architecture and separation of concerns
- SQLAlchemy ORM usage
- FastAPI dependency injection and request handling
- Third Party Service/SDK Integrations
🙋♂️ Contributions: Special thanks to my teammates: Erkan Fırat Ali Mert Gök Burak Keleş
Who trained the AI models and implemented AI functionalities (brand, color, plate detection etc.), and Barış Kıray for developing the mobile app (although this repository does not contain the mobile app).