Welcome to the Uber project repository. This project involves the complete design and development of a data management system for an Uber-like application. It covers all aspects of database design, modeling, query creation, and security, from conceptualization to final deployment.
The goal of this project is to build a data management system that supports the functionality of an Uber-like application. This includes the ability to manage users (passengers and drivers), trips, payments, reservations, and vehicle types, as well as the implementation of security features such as data encryption and privacy measures. The project also includes detailed design and specification documentation, as well as interactive reports for business intelligence analysis.
- User Management: Registration and management of both passengers and drivers, including personal details, vehicle information, and driving history.
- Trip Management: Tracks trips from start to finish, including trip duration, distance, and pricing.
- Payment Management: Handles payments, including transaction history and commission management for drivers.
- Ride Reservations: Allows passengers to book rides in advance.
- Ratings and Feedback: System to rate both passengers and drivers based on trip quality and experience.
- Geographical Data Analysis: Analyzes trips by geographical locations to gain insights into ride distribution.
- Security & Data Protection: Implements necessary privacy and security measures, including encryption, cookie management, and GDPR compliance.
-
Collaboration Diagrams:
- Process for requesting VTC status.
- Account creation for Uber drivers.
- Ride management and handling.
-
Use Case Diagram:
- Describes the various actions users (drivers and passengers) can perform and the system's responses.
- Includes textual descriptions and sequence diagrams where necessary.
-
Class Diagrams:
- A business class diagram representing the main entities of the application (e.g., Driver, Passenger, Trip, Payment).
- Transition state diagrams for specific parts of the system, such as user status or trip status.
-
MVC Class Diagrams:
- Detailed design of classes for ride search, visualization, and booking processes following the MVC architecture.
-
MCD (Conceptual Data Model), MLD (Logical Data Model):
- Created with PowerAMC and based on the relational model for PostgreSQL.
- Includes tables for Users, Trips, Payments, Ratings, Reservations, and others.
-
Data Population:
- 80 restaurant listings and 30 drivers with detailed profiles.
- 50 users distributed across France, including 100 reservations and payment details.
- For some customers, stored credit card references for easier payments.
- Additional custom data to simulate real-world use cases.
-
SQL Scripts:
- Scripts for database creation, table setup, and data population.
-
Clone the GitHub Repository:
git clone https://github.com/sftss/uber.git
-
Setup PostgreSQL Database:
- Install PostgreSQL and pgAdmin.
- Create a new database and run the provided SQL scripts to create tables and populate them with sample data.
- Test queries.
-
Functional Application Deployment:
- Fully deployed application simulating Uber functionalities, with web API and database integration.
-
Source Code:
- All source code is available in the repository, including backend API and database handling.
-
Architecture Summary:
- The application utilizes ORM (Object-Relational Mapping) for database management, PostgreSQL for storage, and a simple API for managing requests between the frontend and the database.
-
Security Tests:
- Reports on basic security tests such as XSS, SQL injections, and sensitive URL checks.
-
Performance Testing:
- Load testing to evaluate the website’s performance under high traffic conditions.
-
Encryption:
- A report explaining the chosen encryption method for sensitive data (e.g., card details), including technical details and justifications.
-
Cookie and Privacy Management:
- Implementation of a cookie consent banner and detailed cookie settings to comply with GDPR regulations.
- Creation of a “Privacy Policy” page detailing how user data is processed.
-
User Guide:
- A detailed user guide explaining how to navigate the website, book rides, manage accounts, and make payments.
-
Website Content:
- Implementation of this content within the site’s structure, ensuring an easy-to-use interface for both customers and drivers.
-
Tracking:
- Use of Azure DevOps for task tracking, sprint planning, and documentation management.
- Regular sprint reviews and progress updates.
-
Final Sprint Deliverables:
- Demonstration of functional application and analysis features.
- Detailed reports on the tools used, architecture decisions, and system performance.
-
Revenue Analysis:
- A Power BI report showcasing revenue by vehicle type over time, using the data stored in the database.
-
Geographic Analysis:
- Analyzing trips by geographical area to identify trends and hotspots.
-
Environment Setup:
- Instructions on setting up the development environment, including installation of Visual Studio, PostgreSQL, and API services.
-
Chatbot Integration:
- Integration of a chatbot for customer support using Natural Language Processing (NLP) or keyword analysis.
-
API Documentation:
- Details of the API used for handling ride requests, payments, and user management.
- Database: PostgreSQL, pgAdmin4
- Backend: Laravel
- Data Visualization: Power BI
- API Integration: RESTful API
- Security: Data Encryption, XSS Prevention, Cookie Management
- Project Management: Azure DevOps, GitHub
- T. Sefer - Sefer
- S. Matieu