Week #1 #
Team Formation and Project Proposal #
Team Members #
Team Member | Telegram ID | Email Address |
---|---|---|
Dmitry Zvidrin (Lead) | @Hyperlope | d.zvidrin@innopolis.university |
Danila Tretyakov | @Ezzy_a | d.tretyakov@innopolis.university |
Anton Fadeenkov | @friji_off | a.fadeenkov@innopolis.university |
Kseniia Voronova | @ksushechkavoron9 | k.voronova@innopolis.university |
Yassine Allala | @Bidrift | m.allala@innopolis.university |
Value Proposition #
Problem Identification #
In Innopolis, residents and visitors face difficulties finding reliable and convenient carpooling options. Currently, a Telegram chat is used for coordinating rides, but this method has several drawbacks:
- Lack of structure: The chat format is disorganized, making it difficult to quickly find necessary information.
- Limited search capabilities: Users cannot easily search for rides based on specific criteria such as time, date, or destination.
- Safety issues: There is no system for verifying the identities of drivers and passengers, leading to potential safety risks.
Solution Description #
Our project offers a specialized web application for finding ride companions in Innopolis, similar to BlaBlaCar but tailored to local conditions. Key features include:
- User profiles and verification: Comprehensive user profiles.
- Advanced search and filtering: Users can search for rides based on various parameters such as date, time, departure and arrival points, user ratings.
- Booking and communication: An integrated messaging and booking system to simplify coordination between drivers and passengers.
- Ratings and reviews: A ratings and reviews system to enhance accountability and reliability.
- Notifications and alerts: Automatic notifications about trip confirmations, reminders, and updates.
- Local taxi call in Innopolis: If no companions are found, the app will suggest calling a local taxi immediately or booking for a specific time.
- Group creation for taxi calling: Users can create a trip together by forming a group of companions to call a taxi or car-sharing.
Benefits to Users #
By using our web application, users will gain the following benefits:
- Increased convenience: A user-friendly platform for quickly finding and booking rides, creating their own group for finding companions for taxi or car-sharing, and calling local taxis.
- Enhanced safety: Verified user profiles and ratings improve safety and trust.
- Time savings: Efficient search and booking processes reduce the time spent organizing rides.
- Improved coordination: Integrated communication tools simplify interactions between drivers and passengers.
- Cost savings: Carpooling helps users save on transportation costs by sharing expenses.
Differentiation #
Our web application stands out from existing solutions due to:
- Local focus: Tailored specifically for the Innopolis community, considering local needs and preferences.
- Comprehensive safety measures: Enhanced verification and rating system compared to informal chat methods.
- User-friendly interface: Designed for ease of use with intuitive navigation and functionality.
- Multi-functional travel options: Choice of existing rides, creating their own group, or calling local taxis-all in one app.
User Impact #
Implementing our web application for finding ride companions will have a significant positive impact:
- Improved mobility: Facilitating access to transportation options for residents and visitors of Innopolis, enhancing overall mobility in the city.
- Environmental benefits: Promoting carpooling reduces the number of cars on the road and lowers carbon emissions.
- Cost savings: Reducing users’ transportation costs through shared rides.
- Safety and reliability: Creating a safer and more reliable ecosystem for shared rides compared to informal methods.
User Testimonials or Use Cases: #
1. Driver Creates a Ride #
Actor: Driver
Description: A driver wants to offer a ride to potential passengers heading in the same direction.
Steps:
- The driver logs into the app and selects the option to create a ride.
- The driver enters the ride details, including departure time, destination, number of available seats, and any other relevant information.
- The driver submits the ride details and waits for passengers to join.
- The app notifies the driver when passengers join the ride.
- The driver confirms the ride and proceeds to pick up the passengers.
Preconditions: The driver has an account and is logged into the app.
Postconditions: The ride is successfully created and visible to passengers searching for rides.
2. Passenger Searches for a Ride #
Actor: Passenger
Description: A passenger is looking for a ride to a specific destination.
Steps:
- The passenger logs into the app and enters the desired ride details, such as destination, departure time, and any other preferences.
- The app displays a list of available rides that match the passenger’s criteria.
- The passenger reviews the available rides and selects one to join.
- The app notifies the driver of the passenger’s request to join the ride.
- The passenger receives confirmation from the driver and prepares for the ride.
Preconditions: The passenger has an account and is logged into the app.
Postconditions: The passenger successfully joins a ride that matches their criteria.
3. Passenger Orders a Taxi #
Actor: Passenger
Description: A passenger cannot find a suitable ride and decides to order a taxi.
Steps:
- The passenger logs into the app and selects the option to order a taxi.
- The passenger enters the pickup location and destination.
- The app displays estimated fare and arrival time of the taxi.
- The passenger confirms the order.
- The app assigns a nearby taxi to the passenger.
- The passenger receives confirmation and real-time updates on the taxi’s arrival.
Preconditions: The passenger has an account and is logged into the app.
Postconditions: The passenger successfully orders a taxi and receives transportation to their destination.
4. Passenger Finds a Group to Share a Taxi #
Actor: Passenger
Description: A passenger wants to find a group of people to share a taxi ride.
Steps:
- The passenger logs into the app and selects the option to find a group.
- The passenger enters the desired destination and departure time.
- The app searches for other passengers with similar ride requirements.
- The app displays a list of potential groups for the passenger to join.
- The passenger selects a group and requests to join.
- The app notifies the group members of the passenger’s request.
- The group members accept the request, and the app coordinates the shared taxi booking.
Preconditions: The passenger has an account and is logged into the app.
Postconditions: The passenger successfully joins a group to share a taxi ride, reducing individual costs.
5. Driver Manages Ride Requests #
Actor: Driver
Description: A driver manages requests from passengers wanting to join their ride.
Steps:
- The driver receives notifications of passenger requests to join their ride.
- The driver reviews the requests and passenger profiles.
- The driver accepts or declines each request.
- The app updates the ride details and notifies the accepted passengers.
- The driver and passengers communicate through the app to finalize details.
Preconditions: The driver has created a ride and is logged into the app.
Postconditions: The driver successfully manages passenger requests and finalizes the ride details.
Lean Questionnaire #
What problem or need does your software project address?
Our project addresses several key problems and needs related to organizing carpooling in Innopolis:
- Inconvenience of using Telegram chat: The current system of coordinating rides via Telegram chat is disorganized and inefficient.
- Limited search and filtering capabilities: Users cannot easily find suitable rides based on specific criteria.
- Lack of safety measures: There is no mechanism for verifying the identities of drivers and passengers.
- Lack of integrated services: There is no option for calling local taxis or creating trips to bring users together for taxi or car-sharing.
Who are your target users or customers?
Our target users include:
- Students and faculty of Innopolis University: For daily commutes to and from the university.
- Employees of local companies: For commutes to and from work.
- Residents and visitors of Innopolis: For any trips within and outside the city.
- Visitors and tourists: For convenient transportation around the city and its surroundings.
- How will you validate and test your assumptions about the project?
We will send links in Telegram chats for carpooling and taxis in Innopolis to our MVP version for testing the app’s functionality, user interest, and gathering feedback. We will validate our assumptions by analyzing app performance and considering overall user feedback. Then, we will analyze the collected data and implement necessary updates to improve the app based on the testing results.
- What metrics will you use to measure the success of your project?
To measure the success of the project, we will use the following metrics:
- Number of registered users: Growth in the number of new users on the platform.
- User activity: Frequency of app usage, number of booked rides.
- User satisfaction level: User ratings and reviews.
How do you plan to iterate and pivot if necessary based on user feedback?
Based on user feedback, we will gather information to identify key issues and needs. Depending on the importance and urgency of the identified issues, we will implement appropriate changes on the platform. Afterward, new testing will be conducted to evaluate the effectiveness of the changes made. We will continuously update and improve the app based on both current and new data, ensuring it meets user needs.
Leveraging AI, Open-Source, and Experts #
We intend to use open libraries and frameworks such as React, Redux, and FastAPI to accelerate the development process and implement modern technologies. Additionally, we plan to use artificial intelligence, such as chatGPT, to effectively solve emerging problems.
Defining the Vision for Your Project #
Overview #
The “КУДА” project is a web application designed to facilitate the organization of carpooling in Innopolis. Our app offers a convenient and safe way to find ride companions. Users can quickly find shared rides by specifying their preferences for time and route. Additionally, an interface will be implemented for creating joint trips to call a taxi with other passengers or car-sharing.
Schematic Drawings: #
Our current view of what the system’s core components may look like on the diagram:
Tech Stack #
- Frontend: React, Redux, JavaScript
- Backend: FastAPI, SQLAlchemy, PostgreSQL, Redis, GitHub Actions