A modern mobile application enabling users scheduling and organization of fitness activities.
- CRUD for workouts
- CRUD for weekly workout plans
- Add, View, Update, Remove assigned workouts within their weekly workout plan
- Various filters and search functionalities
- Some CRUD for users based on authorization role
- Different functionality for role user and admin
- Language support for German and English
- Modern client-side based on Swift through Xcode
- Lightweight and modular front-end framework UIkit
- CoreDataStack was implemented to persist structured data locally as an Array of JSON
- Responsive contraints for iOS operated mobile devices (Iphone Xr, 11, 11 pro, 11 pro max, 12, 12pro, 12 pro max)
- Localization works in Apple way. So to change the language the language of the device has to be changed as it is derived of that.
- Used Images
- All used images are either CC0 free to use or their license has been purchased at Adobe Stock or flaticon
- /Fitness_Time
- Contains App directory with Views, Controllers and Models
- /Fitness_TimeTests
- Contains tests for business logic
- /Fitness_TimeUITests
- Contains tests for the User Interface
- /Products
- Contains the output of the builds
- Use of the regular conventions of the Swift programming language
For user authentication in the mobile app an email is used.
- Not all functionality could been fulfilled for the mobile app due to time constraints
The following applications should be installed before running this software.
Git
Xcode
git clone <Frontend URL>
cd into project
Start Xcode
Use Xcode GUI to Start the App on a simulated target device
🔨 Tools
The Team (as visible below) worked together with a variety of different online tools to achieve the project outcome. Some of them are:
- Xcode as code editor of choice
- Discord for communication & screen sharing useful for digital pair programming
- Git for working together on the codebase
🌊 Git flow
We used Git Flow to merge code into the codebase with a structured order and keep feature of the software concise. Our design is the following:
- main branch (production environment)
- develop branch (develop environment)
Jakob Holz | Onur Menekse | Artur Kamrad | Sascha Majewsky |
License under MIT License. See LICENSE for further information.