Cycle Power Backend is the central data processing engine of the Cycle Power ecosystem. It acts as a bridge between the native mobile application and the web-based analytics dashboard, handling file storage, data transformation, and persistent storage.
- FIT File Processing: Ingests binary
.fitfiles (standard cycling format) uploaded from the mobile app and parses them into structured JSON for web consumption. - RESTful API: Provides secure endpoints for data synchronization between the GluonFX mobile client and the WebFX frontend.
- Persistent Storage: Manages a lightweight yet robust SQLite database to store user sessions, ride metrics, and historical data.
- Data Transformation: Converts raw sensor data into optimized formats for real-time charting and long-term analytics.
- Java 17+
- Spring Boot 3.x: Core framework for the REST API and service layer.
- SQLite: Efficient, file-based relational database for seamless deployment.
- Spring Data JPA: For clean and maintainable database abstraction.
- FIT SDK: Integrated logic for parsing Garmin/ANT+ standard fitness files.
- Upload: Mobile app (GluonFX) sends a
.fitfile via a POST request. - Process: The server parses the binary data, extracts GPS, Cadence, and Power metrics.
- Store: Metadata and session summaries are saved in SQLite.
- Serve: The Web Dashboard (WebFX) fetches the processed JSON to render interactive charts.
- JDK 17 or higher
- Maven
- Clone the repository:
git clone https://github.com/CommonGrounds/CyclingPower_Server.git
- Run the application:
mvn spring-boot:run
The server will start on http://localhost:8080 by default.
The production API is currently hosted on Render.com.
API Base URL:
https://cyclingpower-server-1.onrender.com(Note: As it is on a free tier, the first request may take up to 30 seconds to wake up the instance.)
- Cycle Power Mobile: Native mobile recording app.
- Cycle Power Web: WebFX-based visualization dashboard.