RockSolid is a personal fitness and climbing assistant app designed to guide users through customised training plans, track achievements, and improve performance. The app offers a coach-led tutorial system, training progression tracking, achievements, notifications, and more—all built with a friendly and motivating user experience.
-
Personalised Training Plans
- Weekly plans generated based on user experience and performance.
- Daily training routines including warmups, exercises, and cooldowns.
-
Coach Rocky Assistant
- Friendly guide that appears contextually (on first use, training start, new achievements, etc.).
- Delivers information and encouragement using interactive dialogs.
-
Progress Tracking
- Visual progress bars showing completion rates of exercises and sessions.
- Linear progress indicators and achievement milestones.
-
Achievements and Badges
- Unlockable badges for completing training milestones (1, 10, 50 sessions).
- Achievement animations and celebratory dialogs.
-
Notification System
- Real-time feedback for new achievements and unread alerts.
- Visual badge indicators on the home screen.
-
Surveys and Personalisation
- Onboarding surveys for tailoring the program to the user's level and goals.
-
Tutorial Integration
- Informational tooltips and dialogs triggered per exercise or screen section.
- Hardcoded and dynamic tutorial content.
- Kotlin & Jetpack Compose – Modern Android UI toolkit.
- Firebase Firestore – Real-time database for user data and training plans.
- Firebase Authentication – Secure user login management.
- MediaPlayer – Audio feedback on achievement unlocks.
- Coroutines – Asynchronous loading of user data and remote resources.
-
Home Screen
- Displays training focus, current stats, profile picture, and survey status.
-
Training Program Screen
- Calendar view for selecting training days.
- Exercise previews and day-specific details.
-
Exercise Screen
- Interactive interface for completing and tracking exercise sets.
- Confirmation dialogs and partial progress tracking.
-
Achievements Screen
- Visual reward board, achievement dialog system, and badges.
- Celebration dialogs for milestone completions.
- Clone the repository or unzip the provided project.
- Open in Android Studio IDE.
- Ensure the Firebase project is connected with the correct
google-services.json. - Sync Gradle and run on an Android device or emulator.
- All training plans are generated based on the user's onboarding flow.
- Tutorial content and coach dialogs are handled with composable overlay logic.
- Notifications and progress are stored in Firestore under respective collections (
Notification,Progress,Users).
screens/– Contains all Composable screens (Home, Exercise, Training, etc.).navigation/– Route declarations and NavHost control.viewmodel/– ViewModel for authentication state.modelScripts/– Logic for generating training plans and injecting tutorials.res/– Drawable assets including Coach Rocky images and badges.
This project is intended for educational and personal development purposes only. Commercial use is not permitted without explicit permission.
- Project Structure Setup
- Screens set up
- Firebase set up
- issue with logging in and registering
- Login and Register Fixed
- UX/UI remodelled to align with apps brand
- Home Screen added with cards to access Training Programs and the Progress Dashboard.
- Instant Login Button Added
- UX clean up on home screen
- Nav to Training Program Screen
- Added an interactive calender to allow user to see current workouts and previous.
- Added a checkbox system to track users workout completion
- UX polish to match apps theme
- Added the Progress Dashboard
- Added Back buttons to screens for navigation
- Added a Logout button
- Matched button colours with app theme for consistency on multiple screens
- Fixed the notes issue in the training plan screen
- Edited the UI to make exercises more readable
- AuthViewModel added
- Login functionality added to AVM
- Surveys added to the app to categorise users into different skill levels (beginner, intermediate, advanced)
- two types of surveys, quick & tailored
- surveyviewmodel hold the user answers right now, needs to be sent to the database by next commit.
- UX polish required for the home page, add a nav draw/hamburg for additional features
- Added Achievements to the app to gamify it for users
- Added Badges that are earned per achievement
- Swapped out dummy data with real data in profile card
- Edit details now works and is prepopulated
- Profile pic is work in progress
- Signup validation and error handling added, no duplicate accounts allowed, passwords must meet security requirements
- Sign in only allows valid details, and no duplicates
- UX improvement for error messages and password building
- FirstTimeUser now is fucntional and is set when surveys are complete
- Coach Rocky Tutorial screen only appears for a first time user
- Survey screen automatically flows after the tutorial so the user data is taken
- Db sucessdfully being filled in the SurveyAnswers table allowing data to be used by the ML Model.
- Training Programs are now generated based on user survey selections
- Exercise screen added as a workout area
- UX enhancements needed
- All App functionality is working
- surveys
- training programs
- progress tracking
- achievements
- notifications
- forget password emails
- Coach Rocky the app mascot was added to all screens for user interaction, better UX, and gamification
- App is complete