A smart and green solution to move around the city.
MobiShare is a smart urban mobility platform that lets you get around the city easily and sustainably using standard bikes, electric bikes, and electric scooters. With MobiShare, you can skip the traffic, reduce your carbon footprint, and move freely through the city.
- πΊ Live map showing available vehicles in real time
π ΏοΈ Smart parking assistance with geofenced zones- π Ride history & payment tracking
- π³ In-app payments with cards or digital wallets
- π« Passes & promotions for frequent users
- π€ AI agent to improve app usability
| π΄ββοΈ Vehicle | π Description |
|---|---|
| Standard Bicycle | Classic bike without motor assistance β great for short rides and exercise |
| Electric Bicycle | Pedal-assist bike, perfect for longer distances or hilly routes |
| Electric Scooter | Fast and flexible option for busy urban streets |
- Frontend: Razor Pages, CSS
- Backend: ASP .NET Core
- Deployment: Docker compose
- Database: SQLite
- Real-time Communication: SignalR
- Authentication: Google OAuth 2.0
- Payments: PayPal SDK
- Messaging: MQTT (for vehicle telemetry)
- Mapping & GPS: Google Maps SDK
- Cloud Services: AWS
- Arduino code: ino
Configure the following variables in your appsettings.json as environment variables.
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=../Mobishare.db"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Ollama": {
"Llms": {
"DefaultUrlApiClient": "http://localhost:11434",
"Qwen3":
{
"UrlApiClient": "http://localhost:11434",
"ModelName": "qwen3:latest"
}
},
"Embedding": {
"UrlApiClient": "http://localhost:11434",
"ModelName": "nomic-embed-text"
}
}
}You must add this file inside of route file, not inside the project.
{
"Authentication": {
"Google": {
"ClientId": "your-google-client-id",
"ClientSecret": "your-google-client-secret"
}
},
"GoogleMaps": {
"ApiKey": "your-google-maps-api-key"
},
"Payments": {
"PayPal": {
"ClientId": "your-paypal-client-id",
"ClientSecret": "your-paypal-client-secret",
"PayPalUrl": "https://api.sandbox.paypal.com"
}
}
}Follow these steps to run the project locally.
git clone https://github.com/your-username/mobishare.git
cd mobishareMake sure to set up the required settings either in:
appsettings.jsonandsecrets.- Refer to the Required Environment Variables / App Settings section for details.
Restore NuGet packages and all dependencies:
dotnet restore
You are ready to go! Run:
dotnet run --project Mobishare
Easy to run with:
docker compose up --build
-
π Access without login
- Users see only the home page presenting MobiShare and its features.
-
π User login
- Login via Google OAuth.
- Redirected to the landing page.
-
πΊ Landing page
- View all available vehicles (bikes and scooters) on the live map.
- Check ride history and account info.
- Use our custom AI agent.
-
π Book a vehicle
- Reserve a vehicle for a limited time.
- Reservation expires β vehicle becomes available again.
-
π³ Wallet & Payments
- Must have a minimum balance of β¬5 to start a ride.
- Payments handled via PayPal.
- First 30 minutes of each ride are free!
-
π΄ββοΈ Start & end a ride
- Rides must start/end within designated parking areas on the map.
-
β Points system
- Earn points for rides and sustainable usage.
-
π€AI agent
- Help you to undestrand what the application do.
- Help you to open tickets, reserve vehicle and much more.
-
π· Technical users
- Manage vehicle maintenance and support tickets.
-
πΊ Staff
- Manage maps, geofenced zones, and vehicle fleet.
-
π Admin
- Full control: user suspension, vehicle management, payments, system oversight.
By following this workflow, everyone can enjoy a smooth and smart urban mobility experience with MobiShare! π²β‘
This project was developed by the dedicated Mobishare team:
- BeastOfShadow β Full Stack Developer, AI specialist | GitHub | LinkedIn
- Cosimo Daniele β Full Stack Developer, AI specialist | GitHub | LinkedIn
- Matteo Schintu β UX/UI Designer | GitHub
Special thanks to everyone who contributed ideas, feedback, and testing.
This project is licensed under the Apache License 2.0.