Skip to content

klisard/GymMate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GymMate Application

  • Group Members Klisard Muca Erbi Bejkolli Marsel Vojka

  • Project Description

GymMate is an Android application designed to help fitness enthusiasts track their workouts, view inspirational quotes, and monitor their progress over time. The app features a secure login/registration flow, a list of workouts, detailed workout pages with interactive controls, and a progress tracker that saves data locally using SQLite. Additionally, GymMate fetches motivational quotes from an external API and displays them in a dedicated "Tips" section.

Key features include: -User Authentication: A simple login and registration system using SharedPreferences. -Workout List: A multi-activity structure with a RecyclerView displaying a list of workouts. -Workout Detail: Individual workout pages where users can adjust reps, select difficulty (via RadioGroup), mark favorites (CheckBox), save progress to an SQLite database, share workout details via an implicit ACTION_SEND intent, and open a YouTube video tutorial using an implicit ACTION_VIEW intent. -Fragments and Navigation: A BottomNavigationView with three tabs—Workouts, Tips, and Progress—each hosted in its own fragment. -Local Database: An SQLite database managed via a DatabaseHelper that stores workout progress (date, workout name, reps). -Network Communication: Integration with the API Ninjas Quotes endpoint (https://api.api-ninjas.com/v1/quotes) to fetch and display random motivational quotes. -User Interface Design: Use of EditText, Button, TextView, SeekBar, RadioGroup, CheckBox, and other UI components following Android design guidelines.

GymMate aims to demonstrate proficiency in Android application development, including UI design, local data persistence, and external API integration.


  • Implemented Tasks (Requirements)

The application addresses the following tasks as specified in the project guidelines. It will be tested and graded according to completion and correctness of these tasks.

  1. Multi-Activity App Implemented separate activities for Login, Register, Main (with Bottom Navigation), and Workout Detail.

  2. Implicit Intents Sharing workout details via Intent.ACTION_SEND. Opening YouTube tutorial videos via Intent.ACTION_VIEW with a YouTube search URL.

  3. Application User Interface Design Utilized UI components such as EditText, Button, TextView, SeekBar, RadioGroup, and CheckBox. Used a ScrollView for the login and registration screens to handle keyboard overlap. Applied fitsSystemWindows to avoid status bar overlap and proper padding to accommodate the BottomNavigationView.

  4. Fragments Created three fragments: WorkoutFragment, TipsFragment, and ProgressFragment, each hosted by MainActivity.

  5. Lists WorkoutFragment uses a RecyclerView to display a list of predefined workouts.

  6. Database (SQLite) Implemented a DatabaseHelper class to create and manage an SQLite database for storing progress entries (date, workout name, reps). ProgressFragment reads from the database and displays entries in a ListView or RecyclerView.

  7. Login Activity LoginActivity and RegisterActivity manage user credentials via SharedPreferences (username and password stored securely). Redirect logic ensures that users must register before logging in.

  8. Network Communication TipsFragment uses Retrofit with Gson converter to fetch random quotes from the API Ninjas Quotes endpoint. Display logic shows a ProgressBar while loading and handles errors (e.g., invalid API key, no network).


  • References to External Sources Used

-Retrofit (Square): For network calls and JSON parsing. Documentation: https://square.github.io/retrofit/ -API Ninjas Quotes API: Random quote endpoint. Documentation: https://api-ninjas.com/ -Android Developers Guides: Official documentation for Android UI components, RecyclerView, SQLiteOpenHelper, Intents, and SharedPreferences: https://developer.android.com/ -Material Icons (Google): For vector asset icons added to res/drawable (e.g., ic_fitness_center, ic_lightbulb, ic_history). -Stack Overflow: Troubleshooting common Android build errors (e.g., android:exported, constant expression required).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages