This Azure Function App provides several capabilities related to bike-sharing systems. It includes exploration functions for retrieving bike station information,such as finding the nearby operators (or gbfs systems) and finding the nearby bike stations for a specific operation with given gps coordinates. Designed with TypeScript, it leverages Azure Functions for serverless computing, ensuring scalability and efficiency.
- ReturnMyBike: Retrieves data on bike stations with available docks near specified locations.
- Operators: Retrieves data on nearby gbfs systems in a given location (city).
- Authentication: Generates CSRF tokens for secure interactions.
- Rate Limiting: Ensures fair usage by limiting request frequency based on IP addresses.
- Azure Functions: Serverless computing service.
- TypeScript: Used for writing the functions.
@azure/functions
: Azure Functions runtime library.gbfs-system
: NPM Library to simplify the interactions with General Bikeshare Feed Specification (GBFS) systems. More informations here.- The project is based on the MobilityData GBFS systems wich is implemented by several bikeshare operators worldwide. To get more informations about what GBFS is and how it works, check out the MobiltyData repository here.
This project has been designed to interact with ios shortcuts for a seamless and interaction during rides. You can download the ios shortcut with the following link : https://www.icloud.com/shortcuts/7ca2c1225a8e46cf948d2355215ecc71.
- Node.js
- Azure Functions Core Tools
- An Azure subscription (for deployment)
- Clone the repository to your local machine.
- Install the necessary packages:
npm install
- Start the function app using
func start
. - Use tools like Postman to send requests to the function endpoints.
- Deploy the app to Azure using Azure CLI or through the Azure portal.
Contributions are welcome! Please read our contributing guidelines before submitting pull requests. Feel free to report any bug with ios shortcut as well.
This project is licensed under the [LICENSE] - see the LICENSE file for details.
- Becaye Badiane
- You can contact me here