# I. Summary
### Project Idea:
Develop a free carpooling app aimed at travelers needing transfers between home and the airport (and vice versa).
FLY POOL is a carpooling app specifically designed for airport transfers. It connects travelers heading in the same direction, allowing them to share rides to and from the airport. This helps to reduce costs, split parking fees, and minimize the environmental impact of airport travel.
### Key Features:
1. User Registration and Profile: Users can create an account and complete their profile with their personal information and travel preferences.
2. Journey Search and Booking: Users can search and book trips between their home and the airport, specifying the date, time, and their travel preferences.
3. Points and Rewards System: Users earn points by watching promotional videos, signing up for partner services, etc. These points can be exchanged for rides or additional benefits.
4. Rating and Review System: Users can leave ratings and reviews about drivers to share their carpooling experiences.
5. Partner Integration and Advertising: Partnerships are established with airlines and other businesses to allow them to promote their services to the application's users.
6. Notifications and Trip Tracking: Users receive notifications about their booked trips, as well as real-time updates on the progress of their journey.
### Business Model:
1. Partnerships with airlines and other companies who can buy advertising space in the app.
2. Partner donations to support project development.
3. Advertising revenue from additional advertisers.
4. Optional premium services for additional revenue.
### Target Audience:
- Regular travelers.
- Business travelers.
- Vacationers.
- Occasional travelers.
- Budget travelers.
- Environmentalists.
- Anyone needing a transfer between the airport and home.
### Development Plan:
- Multi-stage process, including UI design, API integration, key feature development, testing, and deployment.
### Promotion Strategies:
- Online marketing via social media, blogs, and websites.
- Partnerships with airlines, hotels, travel agencies, and other industry players.
- Public relations efforts including press releases and launch events.
- Collaborations with influencers in the travel, transportation, and sustainability sectors.
- Referral programs rewarding existing users for referring the app to others.
- Encouraging positive word-of-mouth marketing from satisfied users.
# II. Technical Considerations
## A. User Flow
Here's a potential user flow for the carpooling app, which considers the key features and interactions from the perspective of a traveler seeking airport transfers:
### Authentication
1. **Registration & Login**:
- The user downloads and opens the app.
- They can sign up for an account with their email or use a social media account (Facebook, Google, etc.).
- Once registered, the user logs in to access the app features.
2. **Profile Creation**:
- Upon first login, the user is prompted to create a profile by providing personal information:
- name,
- contact details,
- profile picture
- Vehicle information (optional):
- car model
- license plate
- driver license
- insurance number
- and setting their preferences:
- communication preferences
- notification preferences
### Traveller Mode: Carpooling Flow
1. **Journey Search**:
1. On the app's homepage, the user enters their
- pickup location,
- destination (airport or home),
- travel date,
- and time.
2. After submitting the search, a list of available rides matching their input is displayed.
2. **Ride Selection**:
1. The user browses through the list of rides,
2. views details about each ride:
- driver information,
- vehicle type,
- available seats,
- pickup location & datetime
- distination
- estimated travel time,
- ratings,
- and reviews
3. and selects a ride that best suits their needs.
3. **Booking and Confirmation**:
1. After selecting a ride, the user confirms their booking by providing additional details:
- number of passengers
- special requirements
2. The user chooses a payment method:
- consume user's accumulated points
- monetary payment
4. Upon booking confirmation, they receive a message with ride details.
4. **Trip Tracking & Notifications**:
- As the travel date approaches, the app sends push notifications to remind the user about their upcoming ride.
5. **Ride Completion and Feedback**:
1. After completing the ride, the user is prompted to:
- rate and review the driver
- rate and review their shared ride experience.
2. This feedback will be visible to other users searching for rides.
### Driver Mode: Carpooling Flow
1. **Switch to Driver Mode**:
1. The user navigates to the Home Page o
2. The user selects an option to switch from traveler mode to driver mode.
3. Users may be asked to provide details if they haven't already done so during their profile creation:
- car model
- license plate
- driver license
- insurance number
2. **Offer a Ride**: Once in driver mode, the user can offer a ride by entering details:
- pickup location (home or airport),
- destination,
- travel datetime,
- and the number of available seats
- meeting point,
- luggage space,
- any rules/preferences.
3. **Set Price or Cost Sharing**: The driver can offer the ride
- for free,
- suggest a fixed price per passenger
- opt for cost-sharing:
- fuel,
- tolls,
- parking fees.
5. **Submit Ride Offer**: After entering the necessary details, the driver submits the ride offer to make it visible to travelers searching for rides.
6. **Ride Requests & Confirmations**:
1. The driver receives ride requests from interested passengers who provide their information and other necessary details:
- number of passengers,
- luggage specifications,
- pickup point
- pickup datetime
2. The driver can review the requests and confirm or decline them based on their preferences.
3. Once a request is confirmed, the details of the driver and their vehicle are sent to the passenger.
7. **Communication with Passengers**: The app allows drivers to communicate with confirmed passengers via messaging system
9. **Trip Tracking & Notifications**: On the day of the ride, the app sends notifications and reminders to the driver about their scheduled ride and passengers.
10. **Ride Completion & Feedback**:
1. After completing the ride, the driver is prompted to:
- rate and review each rider
- rate and review their shared ride experience.
2. This feedback will be visible to other drivers when accepting rides.
### Non-ride activities
1. **Earning Points & Rewards**:
1. From the app's main menu or homepage, the user can navigate to the dedicated Points & Rewards section
2. The app offers multiple ways for users to earn points:
1. Users can watch short promotional videos from partners or advertisers to earn points.
2. Users can earn points by signing up for services offered by partner companies:
- airline memberships,
- hotel loyalty programs,
- car rentals
3. Users can earn points by referring friends or family to the app via referral link or code.
4. Users offering rides can also earn points based on the number of successful rides completed or the mileage covered during shared journeys.
5. Drivers can earn points by offering rides:
- equals to the points deducted from the rides' travellers
- plus any gratuity in points
2. **Check Point Balance & Redemption Options**:
1. Within the Points & Rewards section, users can always:
- view their current point balance
- view available rewards or benefits:
- description of the reward,
- the required number of points for redemption,
- terms and conditions
2. When users find a reward they want to redeem:
- selects the reward
- confirms the redemption
- receives confirmation message with reward details:
- transaction id
- discount code
- instructions
- expiry datetime
3. **Partner Integration & Advertising**: Throughout the user flow, the app can display targeted advertisements from partners and other advertisers to generate revenue and promote partner services.
4. **Manage Account & Settings**:
1. Users and Drivers both can
- access their account settings
- update their profile
- update vehicle information
- view ride history
- manage points and rewards
- contact customer support
## B. Minimally Viable Product
### Features
Below are the core features for a functional MVP that addresses the primary needs of our target audience and allows us to gather user feedback for further development and improvement
1. **User Registration and Profile**: A simplified registration and profile creation process that allows users to sign up and add essential personal information.
2. **Journey Search and Booking**: A streamlined search and booking functionality that enables users to find and book trips between home and the airport.
3. **Rating and Review System**: A basic rating and review system for users to share their carpooling experiences and provide valuable feedback about drivers.
4. **Notifications and Trip Tracking**: Implement a notification system to keep users informed about their booked trips and provide real-time updates on their journey.
Additional features like the Points and Rewards System, Partner Integration, and Advertising can be added in subsequent iterations based on user feedback and market demand.
### MVP Development Plan
The following development plan is aimed at quickly rolling out the product to gather user feedback and data. The learnings gathered from the MVP app will guide the development and refinement of subsequent versions of the app.
1. **UI/UX Design**:
- Assign a designer or design team to create a user-friendly interface for the app, focusing on the core features.
- Ensure the design is simple, intuitive, and visually appealing.
- Collaborate with developers to ensure seamless integration of design and functionality.
2. **Backend Development**:
- Set up the server, database, and APIs necessary for the app's functionality.
- Implement user authentication and account management.
- Develop the necessary logic for journey search, booking, and trip tracking.
- Implement the rating and review system, along with the notification system.
3. **Frontend Development**:
- Develop the frontend of the app according to the UI/UX design, ensuring smooth interaction with the backend.
- Implement the core features, focusing on user registration, journey search and booking, rating and review system, and notifications.
- Test the frontend for compatibility across different devices and platforms.
4. **Quality Assurance and Testing**:
- Perform thorough testing of the app, focusing on functionality, performance, and security.
- Test the app on various devices and platforms to ensure compatibility.
- Identify and address any bugs, issues, or inconsistencies.
5. **Deployment & Monitoring**:
- Deploy the app backend & setup CI/CD pipelines
- Deploy the app frontends on the web and app stores (iOS and Android)
- Monitor app performance and user feedback to identify areas for improvement.
6. **Post-launch Support and Maintenance**:
- Provide ongoing support and maintenance to ensure the app's stability and performance.
- Address any issues or concerns raised by users.
- Gather user feedback and analyze usage data to inform future updates and feature additions.
### MVP Technical Requirements
1. **User Registration and Profile**:
- Authentication: OAuth or JWT. Make use of Firebase Authentication service for secure and easy-to-integrate user authentication, supporting various sign-in methods like email/password and social media accounts.
- User Data Storage: Make use of Cloud Firestore for storing user and ride information to leverage high scalability and real-time data synchronization.
- API Endpoints: Develop RESTful API endpoints for user registration, login, and profile management. Ensure proper validation and error handling.
2. **Journey Search and Booking**:
- Location Data & Mapping: Integrate Google Maps Platform APIs for location data, map display, and route calculations.
- Search Algorithm: Develop an algorithm to match users with available rides based on their search criteria, such as pickup location, destination, date, and time.
- Data Storage: Make use of Cloud Firestore for storing ride information to leverage high scalability and real-time data synchronization.
- API Endpoints: Develop RESTful API endpoints for ride search, booking, and management. Ensure proper validation and error handling.
3. **Rating and Review System**:
- Data Storage: Make use of Cloud Firestore for storing ratings and reviews to leverage high scalability and real-time data synchronization.
- Rating Algorithm: Develop an algorithm to calculate the average rating for drivers and rides based on user feedback.
- API Endpoints: Develop RESTful API endpoints for submitting and retrieving ratings and reviews. Ensure proper validation and error handling.
4. **Notifications and Trip Tracking**:
- Real-time Communication: For real-time updates and communication between users, consider between Firestore's real-time data synchronization capabilities and Cloud Pub/Sub for message streaming.
- Notifications: Utilize Firebase Cloud Messaging (FCM) for sending real-time push notifications to users.
- Trip Tracking: Integrate Google Maps Platform APIs to provide real-time location updates for users during their journey.
- API Endpoints: Develop RESTful API endpoints for managing notifications and trip tracking data.
5. **Frontend**:
- ReactJS or AngularJS for building the user interface.
- Host the frontend on Google Cloud Storage or Firebase Hosting for scalable and cost-effective static site hosting.
6. **Backend**:
- Use Python modern, high-performance, and easy-to-use web framework FastAPI.
- Deploy backend on Cloud Run which allows for minimal infrastructure management while being cost-effective and scaleable.
7. **Database**:
- Firestore for real-time operations
- Bigquery for analytics
### Expected Development Roles
1. **Project Manager** (1):
- Responsible for overseeing the project, managing resources, and ensuring that the project stays on schedule and within budget.
2. **UI/UX Designer** (1):
- Responsible for designing the user interface and user experience of the app, ensuring it's visually appealing and user-friendly.
3. **Backend Developers** (1-3):
- Responsible for setting up the server, database, and APIs, as well as implementing core backend features like user authentication, journey search and booking, rating and review system, and notifications.
4. **Frontend Developers** (1-2):
- Responsible for implementing the frontend according to the UI/UX design and ensuring smooth interaction with the backend.
5. **Quality Assurance Engineer** (1):
- Responsible for testing the app's functionality, performance, and security, as well as identifying and addressing bugs, issues, or inconsistencies.
6. **DevOps Engineer** (1):
- Responsible for setting up and maintaining the continuous integration and continuous deployment (CI/CD) pipelines, managing cloud infrastructure, and ensuring the app's scalability, reliability, and security.
### MVP Development Timeline (estimate)
1. **Planning and Design** (2-3 weeks):
- Define the MVP's scope, features, and technical requirements.
- Create a detailed project plan, including a development schedule and resource allocation.
- Develop UI/UX designs for the app.
2. **Backend Development** (14-22 weeks):
- Initial Setup (1 weeks):
- Set up the development environment, including version control (e.g., Git), project repository, and development tools.
- Set up backend framework (Python FastAPI) and cloud services (Google Cloud Run or Google Kubernetes Engine).
- Set up the database (e.g., Cloud Firestore, Bigquery) and design the database schema.
- User Registration and Profile (2-3 weeks):
- Implement user authentication using Firebase Authentication or another secure method (1 week).
- Develop API endpoints for user registration, login, and profile management (1 week).
- Test and refine user registration and profile features (0.5 week).
- Journey Search and Booking (5-10 weeks):
- Integrate Google Maps Platform APIs for location data and route calculations (1-2 week).
- Develop an algorithm to match users with available rides based on search criteria (1-3 week).
- Implement API endpoints for ride search, booking, and management (2-4 weeks).
- Test and refine journey search and booking features (0.5 week).
- Rating and Review System (2-3 weeks):
- Design the database schema for storing ratings and reviews (0.5 week).
- Develop an algorithm to calculate average ratings for drivers and rides (1-2 week).
- Implement API endpoints for submitting and retrieving ratings and reviews (0.5-1 week).
- Test and refine the rating and review system (0.5 week).
- Notifications and Trip Tracking (3-4 weeks):
- Set up real-time communication using Firebase Cloud Messaging or another suitable technology (1-2 week).
- Develop a system for sending push notifications (booking confirmations, reminders, and real-time updates) (1-2 week).
- Integrate Google Maps Platform APIs for real-time location updates during journeys (0.5-1 week).
- Implement API endpoints for managing notifications and trip tracking data (0.5-1 week).
- Testing and Refinement (1-2 weeks):
- Test all implemented features for functionality, performance, and security.
- Address any bugs, issues, or inconsistencies found during testing.
- Optimize and refine the backend components as needed.
3. **Frontend Development** (5-10 weeks):
- Develop the frontend according to the UI/UX design.
- Implement the core features and ensure smooth interaction with the backend.
- Test the frontend for compatibility across different devices and platforms.
4. **Integration and Testing** (2-4 weeks):
- Integrate frontend and backend components.
- Perform thorough testing, including functionality, performance, and security.
- Identify and address any bugs, issues, or inconsistencies.
5. **Deployment** (1-2 weeks):
- Deploy the app on website and app stores (iOS and Android).
- Monitor app performance and user feedback.
##### TOTAL: 17-28 weeks.
### MVP Development Schedule (estimate)
1. **Weeks 1-3**:
- Planning and Design:
- Refine Scopes & Technical Requirements
- Setup project plan, resource allocation, documentations, schedule
- Develop UX/UI
- Backend development:
- Setup server, database, infrastructures
- Begin work on User Registration & Authentication
2. **Weeks 4-14**:
- Backend Development:
- develop core backend features
- test & refine components
- Frontend Development:
- Implement frontend according to UX/UI
- Test frontend for performance and backend compatibility
- Integration & Testing:
- Integrate and Test frontend-backend components as features get built.
- Address issues, bugs, and inconsistencies
3. **Week 15-25**:
- Backend Development:
- develop core backend features
- test & refine components
- Integration & Testing:
- Integrate and Test frontend-backend components as features get built.
- Address issues, bugs, and inconsistencies
4. **Week 26-28**:
- Deployment:
- Deploy app on domain
- Deploy app on app stores (iOS and Android)
- Monitor app performance and user feedback