You are on page 1of 4

Requirements and Flows

Requirements:

User-Facing Features:

Location Permission:
● The app should request permission to access the user's location when opened for the
first time.

Map Display:
● Show the user's location on the map upon opening the app.

Nearest Bus Stops:


● Identify and display the bus stops closest to the user's location.

Distance and Time to Nearest Bus Stop:


● Show the distance from the user's location to the nearest bus stop.
● Display the estimated time it takes to walk to that bus stop.

Next Bus Information:


● Provide information on the next arriving buses at the selected bus stop.

Bus Routes Display:


● When a user clicks on a bus stop, show the closest buses passing through that stop.

Destination Search:
● Allow users to type a destination to find the nearest bus stop and available buses.

Admin Panel:

Manual Bus Management:


● Allow admin to manually add or remove buses from bus routes.

Route Editing:

● Provide the ability for the admin to edit bus routes and update changes across the app.
Technical Considerations:
Use of OpenStreet Maps:
● Implement OpenStreet Maps for mapping functionality due to cost considerations.

Scalable Server:
● Build a server that can handle at least 1 million users, ensuring scalability.

Tech Stack:
● Use React Native for mobile development.
● Utilize Zustand for state management.
● Implement React Query for efficient data fetching.
● Node.js for the backend.

Project Plan:
Week 1-2: Setup and Frontend Development

Environment Setup:
● Set up development environments for both mobile and server.

Location Permissions and Map Integration:


● Implement location permission requests and integrate OpenStreet Maps.

Nearest Bus Stops and Distance Display:


● Develop algorithms to identify and display the nearest bus stops and calculate distances.

Next Bus Information and Bus Routes:


● Implement features to display the next bus information and bus routes.

Week 3-4: Admin Setup and Development

Server Architecture:
● Set up a scalable server using Node.js.
Database Integration:
● Integrate a database for storing bus routes, stops, and other relevant data.

Admin Panel Backend:


● Implement backend functionalities for the admin panel.

Admin Panel UI:


● Design and develop the admin panel interface.

Manual Bus Management:


● Implement features for manual addition/removal of buses.

Route Editing:
● Develop functionality to edit bus routes.

Week 5-6: Integration, testing and optimization

Frontend-Backend Integration:
● Connect frontend and backend components.

Testing:
● Conduct thorough testing of all features.

Optimization:
● Optimize code for performance and efficiency.

Week 7-8: Deployment

Deployment:
● Deploy the app and server to production environments.

Final Testing:

● Perform final testing in the live environment.

You might also like