Welcome to Badraghe, a comprehensive online booking platform that allows users to search, reserve, and manage tickets seamlessly. Whether it's airline tickets, train journeys, or bus rides, Badraghe ensures real-time availability, secure transactions, and a user-friendly interface.
π Live Demo: Badraghe Platform
- Base URL: https://api.badraghe.dwin.codes/
- A robust API powering backend services for ticket bookings, reservations, payments, and notifications.
Seamlessly deploy, migrate, and seed the project with integrated GitLab CI/CD pipelines for continuous delivery.
Monitor and analyze operational metrics (ticket sales, user activity, performance) in one centralized Metabase dashboard.
π Metabase Dashboard
Use PhpMyAdmin for database administration tasks like migrations, queries, and data validations.
π PhpMyAdmin
Seed the database with realistic dummy data using Badragheβs Python CLI utility.
Monitor the health of all deployed services in real-time using Updamus.
π Updamus Monitoring
- Real-Time Ticket Booking: Up-to-date ticket availability and instant reservation confirmations.
- Secure Transactions: Built-in integration with secure payment gateways like Zarinpal.
- Multi-Transport Support: Book across buses, trains, and airlines on one platform.
- Flexible Reservations: Supports one-way, round-trip, and multi-city bookings.
- Monitor ticket sales with live dashboards.
- Manage routes, schedules, and dynamic pricing models.
- Automate notifications for payment reminders, cancellations, and changes.
- RESTful API Support for frontend integrations.
- GitLab CI/CD for continuous testing and deployment.
- Docker Compose files to replicate production-ready environments.
- Manages business logic, ticket processing, and API endpoints.
- Key Features:
- RESTful API integration.
- Authentication and role-based access control.
- Processes secure payment transactions.
- Central repository for handling tickets, reservations, and payments.
- Uses MySQL for relational data consistency.
- Provides the structure for the database, ensuring a clear relationship between entities:
- Users
- Tickets
- Reservations
- Transactions
- Fully responsive React.js-based frontend optimized for travelers and admin users.
The following ER diagram showcases the relationships between users, tickets, reservations, and transactions:
Before setting up the platform, ensure the following tools are installed:
- β Docker & Docker Compose
- β Python 3.8+
- β pip (for Python dependencies)
# Clone the Badraghe repository
git clone https://github.com/dwin-gharibi/badraghe.git
cd badraghe
# Navigate to the API Backend
cd badraghe-api
# Setup the Python virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtCreate the .env file for backend configurations:
DATABASE_URL=mysql://user:password@mysql_server/badraghe_main
PAYMENT_GATEWAY_KEY=your_zarinpal_key
SMTP_SERVER=smtp.example.com
SMTP_USER=username
SMTP_PASSWORD=password
# For MySQL and PhpMyAdmin
docker-compose up -dAccess PhpMyAdmin at localhost:8080 with:
- Server:
mysql - Username:
user - Password:
password
Run tests using the unittest framework to validate database migrations, data constraints, and transactions.
# Install dependencies
pip install -r requirements.txt
# Run tests
python -m unittest test.py- Track business performance metrics like customer bookings and revenue.
- Real-time service uptime monitoring.
- Continuous deployment for backend and frontend builds.
We welcome contributions to make Badraghe better! Steps to contribute:
- Fork the Repository
- Create a feature branch
- Submit a PR for review.
For questions, issues, or feature requests:
- Open a GitHub Issue: Badraghe Issues
Thank you for choosing Badraghe! Simplify your travel ticketing today.







