/Trivial-Fitness-OOP

Manage athletes and their activities. Written in Java.

Primary LanguageJava

Trivial-Fitness OOP

About the Project

This project was developed for the subject OOP (POO in portuguese) from University of Minho - Software Engineering degree.

Grade ⭐️ 17/20

Demo 📽️

demo.mp4

Download 📥📲

You can download the app on project's releases.

The goal ⛳️

In some words, the goal of this project was to create a Java app to manage athletes and their activities. The app should be able to add, remove, edit and list athletes, trains and plans.

If you want, you can read the project statement (in Portuguese).

About the Code 🧑‍💻

The main classes of the project are TrainingPlans, Activities, and Users. The latter two are abstract classes since there will be different types of activities and users. From a broad perspective, users store completed activities and training plans, while training plans store planned activities.

The activity classes follow this hierarchy: Activity > TypeOfActivity > SpecificActivity. For example, Activity -> RepetitionsActivity -> PushUps.

Getting Started 🚀

Cloning the repository

$ git clone https://github.com/Darguima/Trivial-Fitness-OOP.git
$ git clone git@github.com:Darguima/Trivial-Fitness-OOP.git

Installing dependencies 📦

# Debian / Ubuntu / Mint
$ sudo apt install openjdk-21-jdk

# Arch
$ sudo pacman -S jdk21-openjdk

Running the project 🏃‍♂️

Start by going to the project root folder:

$ cd Trivial-Fitness-OOP/

This project uses Gradle to manage dependencies and tasks. To get a full list of tasks, you can run:

$ ./gradlew tasks

Although, I explain here the most important ones.

Developing 🧑‍💻
$ ./gradlew run --console=plain
Compiling the code 🛠️
$ ./gradlew build
Packing the classes 🛠️📦️

If you want to distribute the project, you can pack the classes in an executable file:

$ ./gradlew distZip

# Unzipping the file
$ unzip app/build/distributions/trivial-fitness.zip

# Executing program - needs be with Java 21
$ ./trivial-fitness/bin/app
Cleaning build files 🧹
$ ./gradlew clean

Developed by 🧑‍💻: