/FitApplication

Primary LanguageHTMLApache License 2.0Apache-2.0

FitApkaRepozytorium

FitApkaRepozytorium

Technologies Used

Java 8
Spring Boot
Spring Data JPA
Spring Security
MySQL (with H2 for unit testing)
Thymeleaf templates
Bootstrap
jQuery
Maven
JUnit

Login and logout is built around Spring Security



Screenshot
Register page for new users



Screenshot

Users can track their weight on a daily basis, and their profile will show their current body-mass index (BMI) and the estimated number of daily calories needed to maintain their current weight:



Screenshot

Tracking and editing of exercises eaten each day
Users have quick access to recently-performed exercises (i.e. within the previous two weeks), can search for exercises by full or partial name, and can browse exercises by category.



Screenshot

Screenshot

Tracking and editing of foods eaten each day:


Screenshot

The database includes a built-in set of "global" foods, which are visible to all users but cannot be modified. When a user modifies a "global" food, or simply creates a new food from scratch, then a food is created in that user's "private" set of foods. This is all transparent to the user.


Screenshot



Screenshot


FitApka stores for each day a summary of each user's stats (e.g. weight, calories burned, etc), for quick retrieval as JSON so that charts can be rendered and report data summarized on the client-side. Whenever any data pertaining to a user changes, FitApka schedules a background thread to update that user's report data for the affected data range. This thread is scheduled to run after a five-minute delay, to avoid unnecessary duplication when the user makes multiple changes within a short period of time.