GymLog is a student project designed to assist users in tracking their strength training workouts, monitoring progress, and managing workout plans. This report outlines the project goals, implemented features, technologies used, challenges encountered. This application is inspired by an existing app called Hevy.
The objective of this project was to create an application that enables users to:
- Add and track their workouts
- Monitor exercises performed
- Save results
- Track progress
Throughout the project, the following features were implemented:
- Enter personal information such as height and weight
- Browse a large database of exercises with instructions and links to YouTube tutorials
- Create workout plans (routines)
- Create and save workout notes
- Display simple statistics
The following planned features were not implemented:
- View previous results when creating notes
- Create and save custom exercises
The development of GymLog involved the following technologies and libraries:
- Programming Language: Kotlin
- Tool: Android Studio
- Database: SQLite
- Exercise API: Ninjas API
- Libraries: Retrofit, Room, Lifecycle, Material Calendar View
- Icons: Flaticon
During the project, several challenges were encountered:
- Exercise API Issues: The API did not return unique identifiers for exercises, and other fields could repeat (e.g., exercises with the same name but different descriptions). This necessitated storing all exercise details instead of just the identifier, increasing the database size and potentially impacting performance.
- Calendar Integration: To allow users to mark multiple training days, the Material Calendar View library was added.
GymLog offers a clear and intuitive user interface. Below are some screenshots showcasing the key views of the application:









