Velo Rapido is a comprehensive bike rental management system that allows users to browse, book, and rent bikes online. The platform offers a seamless experience for both users and administrators, with features like bike management, user management, reservation tracking, and maintenance scheduling.
- β¨ Features
- ποΈ Project Structure
- π» Technologies Used
- ποΈ Database Structure
- π₯ User Roles
- π§ Installation
- π Deployment
- π Admin Credentials
- π€ Contributing
- π License
- Browse Bike Fleet: Users can view all available bikes with detailed specifications and photos
- User Registration/Login: Secure authentication system for users to create and manage accounts
- Bike Reservation: Simple booking process with date and time selection
- Online Payment: Multiple payment options including card, COD, and UPI
- Rental Dashboard: Track current and past rentals
- Damage Reporting: Submit reports for any damages during rental period
- Dark/Light Mode: User interface with theme support π
- Comprehensive Dashboard: Overview of rentals, bikes, users, and maintenance
- Bike Management: Add, edit, delete, and manage bike inventory
- User Management: Manage user accounts and permissions
- Reservation Tracking: Monitor all bookings and rental status
- Maintenance Scheduling: Schedule and track bike maintenance π§
- Damage Report Management: Review and process damage reports
velo-rapido/
βββ index.php # Homepage
βββ admin/ # Admin panel π¨βπΌ
β βββ dashboard.php # Admin dashboard
β βββ bikes/ # Bike management
β βββ maintenance/ # Maintenance management
β βββ reports/ # Damage and reservation reports
β βββ users/ # User management
βββ assets/ # Static assets
β βββ css/ # Stylesheets π¨
β βββ images/ # Images including bike photos and favicon
βββ auth/ # Authentication π
β βββ login.php # Login page
β βββ logout.php # Logout functionality
β βββ register.php # Registration page
βββ db/ # Database ποΈ
β βββ db.php # Database connection and helpers
β βββ velo_rapido.sql # SQL schema and initial data
βββ includes/ # Shared components
β βββ footer.php # Footer component
β βββ header.php # Header component with navigation
β βββ utils.php # Utility functions π οΈ
βββ pages/ # User-facing pages
βββ book.php # Booking page
βββ dashboard.php # User dashboard
βββ fleet.php # Bike catalog π²
βββ payment.php # Payment processing π³
βββ report-damage.php # Damage reporting form
-
Frontend:
- HTML5/CSS3 π¨
- Tailwind CSS for styling β¨
- JavaScript π
- Font Awesome for icons π£
-
Backend:
- PHP 7.4+ π
- MySQL Database ποΈ
-
Deployment:
- InfinityFree for web hosting βοΈ
- FreeSQLDatabase for database hosting π¦
The database consists of six main tables with the following structure:
βββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β Column β Type β Description β
βββββββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββββββββββββ€
β user_id β INT (PK) β Unique identifier β
β first_name β VARCHAR(50) β User's first name β
β last_name β VARCHAR(50) β User's last name β
β email β VARCHAR(100) β User's email (unique) β
β password β VARCHAR(255) β Hashed password β
β role β ENUM β 'user' or 'admin' β
β phone β VARCHAR(20) β Contact number β
β address β TEXT β User's address β
β created_at β TIMESTAMP β Account creation time β
β updated_at β DATETIME β Last update time β
β status β ENUM β 'active' or 'disabled' β
βββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
ββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β Column β Type β Description β
ββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββββββββββββ€
β bike_id β INT (PK) β Unique identifier β
β bike_name β VARCHAR(100) β Name of the bike β
β bike_type β VARCHAR(50) β Type (MTB, City, etc.) β
β specificationsβ TEXT β Detailed specifications β
β image_path β VARCHAR(255) β Path to bike image β
β hourly_rate β DECIMAL(10,2) β Cost per hour β
β status β ENUM β 'available', 'reserved', etc. β
β created_at β TIMESTAMP β When bike was added β
β updated_at β DATETIME β Last update time β
ββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β Column β Type β Description β
βββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββββββββββββ€
β reservation_id β INT (PK) β Unique identifier β
β user_id β INT (FK) β Reference to users table β
β bike_id β INT (FK) β Reference to bikes table β
β start_time β DATETIME β Rental start time β
β end_time β DATETIME β Rental end time β
β pickup_location β VARCHAR(255) β Where to pick up the bike β
β dropoff_locationβ VARCHAR(255) β Where to return the bike β
β status β ENUM β 'pending', 'confirmed', etc. β
β created_at β TIMESTAMP β When reservation was made β
β updated_at β DATETIME β Last update time β
βββββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
ββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β Column β Type β Description β
ββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββββββββββββ€
β payment_id β INT (PK) β Unique identifier β
β reservation_idβ INT (FK) β Reference to reservations table β
β amount β DECIMAL(10,2) β Payment amount β
β payment_methodβ ENUM β 'card', 'cod', 'upi' β
β payment_statusβ ENUM β 'pending', 'completed', etc. β
β transaction_idβ VARCHAR(255) β External transaction reference β
β created_at β TIMESTAMP β When payment was made β
β updated_at β DATETIME β Last update time β
ββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
ββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β Column β Type β Description β
ββββββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββββββββββββ€
β damage_id β INT (PK) β Unique identifier β
β bike_id β INT (FK) β Reference to bikes table β
β user_id β INT (FK) β Reference to users table β
β descriptionβ TEXT β Details of the damage β
β image_path β VARCHAR(255) β Path to damage photos β
β status β ENUM β 'reported', 'resolved', etc. β
β reported_atβ TIMESTAMP β When damage was reported β
β updated_at β DATETIME β Last update time β
ββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
ββββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β Column β Type β Description β
ββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββββββββββββ€
β maintenance_id β INT (PK) β Unique identifier β
β bike_id β INT (FK) β Reference to bikes table β
β description β TEXT β Maintenance details β
β maintenance_typeβ VARCHAR(50) β Type of maintenance β
β start_date β DATE β When maintenance begins β
β end_date β DATE β Expected completion date β
β completion_dateβ DATE β Actual completion date β
β status β ENUM β 'scheduled', 'in_progress', etc.β
β created_at β TIMESTAMP β When record was created β
β updated_at β DATETIME β Last update time β
ββββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
βββββββββββ ββββββββββββββββ βββββββββββ
β Users ββββ β Reservations β ββββ Bikes β
βββββββββββ ββ>β β<ββ βββββββββββ
β ββββββββββββββββ β
β β β
β v β
β ββββββββββββββββ β
β β Payments β β
β ββββββββββββββββ β
β β
β β
βββββββββ ββββββββββββ
v v
ββββββββββββ ββββββββββββββ
β Damages β β Maintenanceβ
ββββββββββββ ββββββββββββββ
The system has two primary user roles:
-
Regular Users π§βπ²:
- Browse and book bikes
- Manage their reservations
- Report damages
- View rental history
-
Administrators π¨βπΌ:
- All regular user privileges
- Manage bike inventory
- Process reservations
- Schedule maintenance
- Handle damage reports
- Manage user accounts
- Clone the repository to your local machine or server π₯
- Create a MySQL database and import the
db/velo_rapido.sql
file ποΈ - Configure your database connection in
db/db.php
βοΈ - Ensure your web server has PHP 7.4+ installed π
- Navigate to the project URL in your browser π
The Velo Rapido project is currently deployed at:
- Website: https://velo-rapido.wuaze.com/ ππ
- Host: InfinityFree βοΈ
- Database: FreeSQLDatabase π¦
- Security: SSL-secured with HTTPS protocol for data protection
To access the admin panel, use the following credentials:
- Email: admin@velorapido.com
- Password: admin123
Contributions to Velo Rapido are welcome! To contribute:
- Fork the repository π΄
- Create a feature branch (
git checkout -b feature/AmazingFeature
) πΏ - Commit your changes (
git commit -m 'Add some AmazingFeature'
) β - Push to the branch (
git push origin feature/AmazingFeature
) π€ - Open a Pull Request π
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ by petrioteer