https://github.com/codeforberlin/mycyclingcity
https://github.com/codeforberlin/mycyclingcity
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/codeforberlin/mycyclingcity
- Owner: codeforberlin
- License: other
- Created: 2025-11-11T11:32:54.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-02-06T19:04:50.000Z (4 months ago)
- Last Synced: 2026-02-07T05:17:01.579Z (4 months ago)
- Language: Python
- Size: 2.65 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# MyCyclingCity
A hardware-software ecosystem for cycling infrastructure tracking that combines ESP32-based tachometers with a Django web application to track cycling activities, manage groups, and display real-time leaderboards.
## Project Overview
MyCyclingCity is a comprehensive cycling tracking platform that uses ESP32-based tachometers to measure cycling distance via pulse counting. The system identifies users via RFID tags and transmits data to a Django backend for real-time visualization, leaderboards, and game-based challenges.
### Key Features
- **Hardware Integration**: ESP32-based tachometers with pulse counting, RFID identification, and WiFi connectivity
- **Real-time Tracking**: Live map visualization with OSM/Leaflet integration
- **Gamification**: Kilometer challenges and leaderboards
- **Multi-device Support**: Heltec WiFi LoRa 32 V3, V2, and Wemos D1 Mini32
- **Web-based Configuration**: Captive portal for device setup
- **OTA Updates**: Remote firmware updates
## Repository Structure
This is a **mono-repository** containing two main sub-projects:
### [mcc-esp32](mcc-esp32/)
ESP32 firmware for bicycle tachometers. Built with PlatformIO, supports multiple hardware platforms, and includes comprehensive unit testing.
**See [mcc-esp32/README.md](mcc-esp32/README.md) for detailed documentation.**
### [mcc-web](mcc-web/)
Django web application providing the backend API, admin interface, map visualization, leaderboards, and game functionality.
**See [mcc-web/README.md](mcc-web/README.md) for detailed documentation.**
## CI/CD Status
The project includes GitHub Actions integration for automated testing and building:
- **ESP32 Firmware CI**: Automatically builds all firmware environments and runs unit tests on push/PR
- Workflow: `.github/workflows/mcc-esp32-ci.yml`
- Builds: Heltec V3, Heltec V2, Wemos D1 Mini32
- Tests: Native unit tests (no hardware required)
## Quick Start
### ESP32 Firmware
```bash
cd mcc-esp32
pio run -e heltec_wifi_lora_32_V3
```
### Web Application
```bash
cd mcc-web
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
```
## Documentation
- [ESP32 Firmware Documentation](mcc-esp32/README.md)
- [Web Application Documentation](mcc-web/README.md)
- [API Reference](mcc-web/docs/api_reference.md)
## Contributing
All code, comments, and documentation must be in English.
## 🤖 AI Transparency
This project embraces modern development workflows. Parts of the codebase, documentation, and logic in mcc-web and mcc-esp32 have been generated or optimized with the assistance of Artificial Intelligence (LLMs like Gemini and Cursor). All AI-assisted contributions are reviewed and maintained by the MyCyclingCity project team.
## License
Copyright (c) 2026 SAI-Lab / MyCyclingCity
This project is licensed under multiple open-source licenses:
- **mcc-web**: Licensed under the [GNU Affero General Public License v3.0 (AGPL-3.0)](mcc-web/LICENSE)
- **mcc-esp32**: Licensed under the [GNU General Public License v3.0 (GPL-3.0)](mcc-esp32/LICENSE)
For the full license texts, please refer to:
- [mcc-web/LICENSE](mcc-web/LICENSE) - AGPL-3.0
- [mcc-esp32/LICENSE](mcc-esp32/LICENSE) - GPL-3.0
- [Root LICENSE](LICENSE) - License overview