Stack Used¶
This section outlines the technologies and tools used in the Bus Buddy project.
Technologies Used¶
### FastAPI - Description: FastAPI is used as the backend framework for creating APIs quickly and efficiently. It offers support for modern Python features like type hints and asynchronous processing. - Use: All backend services and API endpoints are built using FastAPI.
### Redis - Description: Redis is used for caching and storing temporary data. - Use: Helps improve performance by caching frequently accessed data, reducing the load on the database.
### React - Description: React is used for building the user interface of the web application. - Use: The frontend is built using React for a responsive and dynamic user experience.
### Open Data - Description: Open Data refers to publicly available datasets that provide useful information such as real-time transit data, bus routes, and more. - Use: Utilized for fetching transit data in real-time and enriching the application’s functionality.
### Protocol Buffers (Protobuf) - Description: Protocol Buffers are used for serializing structured data, especially in cases of inter-service communication. - Use: Protobuf helps in efficient and compact data transfer between services.
### Rate Limiter - Description: A rate limiter is used to restrict the number of requests that can be made to the API within a certain time frame. - Use: Prevents abuse and ensures fair use of API resources.
### YOLO (You Only Look Once) - Description: YOLO is a real-time object detection system. - Use: Used for detecting buses and other objects from live video feeds or images, providing real-time tracking and analysis.
### Tailwind CSS - Description: Tailwind CSS is a utility-first CSS framework. - Use: Used for styling the frontend with customizable classes to build a visually appealing UI without writing custom CSS from scratch.
### OpenStreetMap (OSM) - Description: OpenStreetMap is a free map data provider. - Use: Integrated to provide interactive maps for displaying bus locations and routes.
### GTFS Static Data - Description: GTFS (General Transit Feed Specification) static data provides information about bus schedules, routes, and other transit information. - Use: Used to generate the schedules and route details in the application.
### PostgreSQL - Description: PostgreSQL is a relational database management system. - Use: Used for storing and querying data such as user information, bus details, and transit updates in a structured way.