Skip to content

Mejorarsim/Bike-Rental-App

Repository files navigation

Team_M_15_Project

📹 Project Walkthrough

Table of Contents

  1. Project Overview
  2. Features
  3. Installation
  4. How to Run
  5. User Roles and Credentials
  6. Usage Guide
  7. Database Schema
  8. Project Structure
  9. Contributing
  10. License

Project Overview

Team_M_15_Project is a Python-based bike rental management system that provides a map-based interface for managing bikes, users, operators, and administrators. It features a multi-role access system to facilitate smooth management of bike rentals, payments, and issue reporting.


Features

  • Map-based interface for bike management.
  • Multi-role access control: User, Operator, and Manager.
  • Secure login with encrypted passwords.
  • Wallet system for users.
  • Comprehensive report handling (broken bikes, payment issues, etc.).
  • Admin dashboard for managing bikes, users, and reports.

Installation

Requirements

  • Python 3.x
  • Required Python libraries:
    pip install PIL

How to Run

  1. Navigate to the project directory:

    cd C:\Users\Simran\Desktop\Team_M_15_Project
  2. Install required libraries:

    pip install PIL
  3. Run the main script:

    python log.py

User Roles and Credentials

1. Manager

2. Operators

3. Users

  • Glasgow:
  • Edinburgh:
  • Aberdeen:
  • Dundee:

Usage Guide

User Page

  • Rent a Bike: Click on a point on the map to rent a bike.
  • Return a Bike: Click on the green point, enter the final X and Y positions.
  • Add Money: Click the "Add" button to top up your wallet.
  • Submit Reports: Click the "Reports" button to submit a new report.
  • Order History: View past orders and submit reports if needed.

Operator Page

  • Manage Bikes: Move, fix, or charge bikes on the map.
  • Handle Reports: View, check, and resolve user reports.
  • Detailed View: Access detailed information about bikes and reports.

Manager Page

  • Fleet Management:
    • Add or delete bikes.
    • Move bikes across cities.
  • User and Operator Management:
    • View and manage users and operators.
  • Visualizations:
    • Access analytics through the "Visualization" button.

Database Schema

1. Bike Table

  • Fields: ID, type, location (X, Y), status, battery, city.

2. User Table

  • Fields: ID, username, email, phone, wallet balance, encrypted password.

3. Order Table

  • Fields: Order ID, user ID, bike ID, start and end coordinates, cost, date.

4. Report Table

  • Fields: Report ID, user ID, bike ID, issue type (Broken, Payment, Other), status.

Project Structure

Team_M_15_Project/
├── db/                     # Database handling files
│   ├── db_config.py        # Database configuration
│   ├── Bike.py             # Bike-related operations
│   ├── Order.py            # Order-related operations
│   ├── Report.py           # Report-related operations
│   ├── User.py             # User-related operations
├── managerPage.py          # Manager's GUI and functions
├── opertorPage.py          # Operator's GUI and functions
├── userPage.py             # User's GUI and functions
├── register.py             # User registration handling
├── log.py                  # Login handling
├── README.md               # Project documentation

Security

  • Password Encryption:
    • Uses MD5 and random salt to encrypt passwords for secure authentication.

Contributing

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature-name
  3. Commit changes:
    git commit -m "Added new feature"
  4. Push to the branch:
    git push origin feature-name
  5. Submit a pull request.

License

This project is licensed under the MIT License.

About

Bike Rental App - Python, SQLite3, Tkinter for GUI, PIL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors