ION Workout App Documentation
Your guide to all repositories and features
- app (front‑end)
- server (back‑end)
- installers
- data
app (front‑end) 💪
overview 🏋️♀️
ion workout app is a self‑hosted workout application built with kotlin that delivers an engaging, intuitive interface for managing your fitness journey. 🚀
features ✨
- intuitive user interface
- workout tracking & logging
- scheduling & reminders
- progress analytics
- customizable routines
- offline functionality
installation 🛠️
prerequisites: android studio, kotlin (configured within android studio), and a physical android device or an emulator.
- clone the repository:
git clone https://github.com/ION-WorkoutApp/app.git
- open the project in android studio
- build & run the app
usage 📖
once installed, the app lets you log workouts, schedule sessions, review progress, and customize routines through a sleek interface. refer to the in‑app documentation or online docs for detailed instructions.
contributing & code of conduct 🤝📜
contributions are welcome! please review our contributing guidelines and code of conduct before contributing to ensure a respectful community.
license & contact ⚖️📬
licensed under the mit license. for more details, check the license file. for any questions or feedback, visit our repository or email [email protected].
server (back‑end) 🖥️
before you read 📖
make sure you wouldn't rather use one of the installers.
setup ⚙️
note: the default run
command will attempt to run a cloudflared tunnel
to forward the server. make sure this is set up first if you want this
functionality.
- clone this repo
- create the env file (see the environment section below)
- run the following
make run make fixPermissions make restart
why make fixPermissions
? because mongodb does funny things with
permissions and then can't read its own data directory.
environment 🛠️
create an env file in the base directory called .env
with the following
structure:
PORT=1221
SECRET_KEY=yourSecret
MONGO_URI=mongodb://yourUser:yourPassword@mongodb:27017/userDatabase?authSource=admin
MONGO_INITDB_ROOT_USERNAME=yourUser
MONGO_INITDB_ROOT_PASSWORD=yourPassword
MONGO_DATABASE=maindb
[email protected]
EMAIL_PASS=mysupersecurepassword1
[email protected]
EMAIL_SMTP_HOST=smtp.example.com
EMAIL_SMTP_PORT=465
DEBUGGING=true
reset the database 🔄
just run make resetLocal
credits 🙏
i couldn't get the default function to work for some reason, but credit to the blocked email list goes to disposable-email-detector, awesome tool!
installers 🛠️
overview
welcome to the ion workout app installers repository! this project provides two convenient ways to set up the ion workout app server:
- cli installer 🔄: a command-line interface script for advanced users.
- gui installer 🔧: a graphical interface with a friendly setup wizard.
features 🌐
- environment setup: automatically configures environment variables
in a
.env
file. - mongodb integration: supports username, password, and database setup.
- docker image management: pulls necessary docker images.
- custom credentials: optionally auto-generate secure passwords and keys.
prerequisites ⚙️
ensure the following software is installed:
- git
- docker & docker compose
- python 3.x
- cloudflared (optional)
for the gui installer, the python dependencies will be installed automatically.
cli installer 🔄
the cli installer is a bash script that guides you through the setup process via terminal prompts.
one‑line command to install and run
bash <(curl -s https://raw.githubusercontent.com/ION-WorkoutApp/installers/main/setup.sh)
what it does
- fetches the installer script from the repository.
- executes it directly in your terminal.
gui installer 🔧
the gui installer provides a user‑friendly interface for setting up the ion workout app server.
simply download and run the setup file.
development ⚖️
building the gui installer:
-
clone the repository:
git clone https://github.com/ION-WorkoutApp/installers.git cd installers
-
create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate # for linux/macos venv\Scripts\activate # for windows
-
install dependencies:
pip install -r GUI/requirements.txt
-
build the executable:
the executable will be created in thepyinstaller --onefile --noconsole server_setup.py
dist
folder. -
deactivate the virtual environment (optional):
deactivate
troubleshooting 🚫
- docker not found: ensure docker is installed and running; verify docker compose compatibility.
- python errors: ensure python 3.x is installed.
contributing ✨
contributions are welcome! feel free to submit issues or pull requests.
license 🔒
this project is licensed under the mit license.
data contribution guidelines 📊
guidelines
we welcome contributions to our comprehensive exercise dataset. please follow these guidelines to help maintain consistency and quality:
- formatting: submit your data in json or csv format with clearly defined fields.
- consistency: ensure that exercise names, categories, and descriptions follow the existing standards.
- validation: verify that your data is free of duplicates and errors by using a json validator or csv linter before submission.
- documentation: include a readme file with your submission explaining data sources and any transformations performed.
- licensing: all contributions must be compatible with the mit license used by the project.
if you have any questions, please open an issue on our github repository.
repository links
check out the following repositories for more details: