Skip to content

Gyms web-app, role-based and of integral purpose

Notifications You must be signed in to change notification settings

EmilianoEscobedo/WorldFit

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GPLv3 License Version GitHub pull requests PR's Welcome GitHub contributors



A lot of gyms, whether they're big or small, all seem to have the same problem: they can't give their trainers and clients a system to help them create workout routines and track their progress. But that's where WorldFit comes in!

A complete solution that can help any gym improve their service to their clients in an easy and convenient way.

WorldFit is an innovative software platform designed specifically for gyms and fitness centers. Its primary function is to provide a comprehensive system for creating and tracking workout routines for gym members, but it does much more than that. With WorldFit, you can keep track of all your clients' biometric data, including their weight, height, body mass index, and other essential information. This information is used to create personalized workout routines that are tailored to each individual's needs and fitness level.

With WorldFit, gym trainers can easily create and manage workout routines for their clients, ensuring that they are doing the right exercises in the correct order, and tracking their progress along the way. This helps clients stay motivated, as they can see their progress and celebrate their successes. Additionally, WorldFit makes it easy to communicate with clients, sending them reminders about their workouts, and providing them with the tools they need to stay on track.

In conclusion, WorldFit is a must-have solution for any gym looking to improve its service and provide its clients with a personalized, high-quality fitness experience. With its advanced features and intuitive interface, WorldFit can help you create a workout routine that is tailored to your clients' unique needs, track their progress, and ultimately help them achieve their fitness goals.






You can check out our webpage here:




βœ” Run the proyect πŸ“‹

1 - Install Docker and Docker-Compose

2 - Clone this repo and move into the downloaded folder.

3 - In the same path, run the command docker-compose up -d.

4 - Thats all! you can go to http://localhost:4200 in your browser and see the project running, with your own db.


βœ” BackEnd

πŸ‘‰πŸ» Task List βœ…

  • Development of REST API for WorlFit with Java and Spring-Boot.
  • Postgre Database.
  • Creating filters with regular expressions and JPA/Hibernate rules.
  • Role based securize architecture.
  • Users validation with JWT.
  • Dockerize and orchestrate containers with automatic renewal of SSL certificates.
  • Deployed on EC2 instance of AWS through nginx reverse proxy.

πŸ‘‰πŸ» Code Standards πŸ“œ

  • Keep in mind rules from Google Java Style Guide.
  • Code must be in English.
  • The controllers should finish with suffix "Controller". Example: UserController.
  • The services should finish with suffix "Service". Example: UserService.
  • The repositories should finish with suffix "Repository". Example: UserRepository.
  • The implementations of interfaces should finish with suffix "Impl". Example: UserServiceImpl.
  • The DTOs should finish with suffix "Dto". Example: UserDto, UserRequestDto.
  • Usage of DTOs is a must. Can have DTOs for request and response.
  • Package names are in singular.
  • The names of attributes/fields from Java classes must be written using camel case. Example: firstName.
  • The name of columns in the entities must be written using underscore and uppercase. Example: FIRST_NAME. The name of the tables is always in plural, but the entity name should be in singular.
  • Exceptions should be handled by an implementation of ControllerAdvice.
  • Messages to user can't be hardcoded them should be handled. Some refs here and here.
  • If you add a new endpoint, make sure to set the role access for it in the WebSecurity class.

πŸ‘‰πŸ» Documentation πŸ“œ

  • You can read API docs here.

πŸ‘‰πŸ» Built with πŸ› οΈ

Java Spring Postgres Hibernate JWT Swagger Docker AWS Nginx

πŸ‘‰πŸ» Developers πŸ‘¨πŸ»β€πŸ’»

Emiliano Escobedo Gabriel Boaglio Diego Haczek

βœ” FrontEnd

πŸ‘‰πŸ» Task List βœ…

  • Development of front-end reactive Angular app.
  • Implementation of security architecture with JWT interceptors.
  • Connection with REST API.
  • Role based views and actions.
  • Deployed in Firebase hosting.

πŸ‘‰πŸ» Code Standards πŸ“œ

  • Keep in mind rules from Angular Style Guide and TypeScript Style Guide.
  • Code must be in english or spanish.
  • The components should finish with suffix "Component". Example: UserComponent.
  • The services should finish with suffix "Service". Example: UserService.
  • The interfaces should finish with suffix "Interface". Example: UserServiceInterface.
  • The models should finish with suffix "Model". Example: UserModel.
  • Usage of interfaces is a must. Can have interfaces for request and response.
  • The names of attributes/fields from TypeScript classes must be written using camel case. Example: firstName.
  • The name of variables should be descriptive and meaningful.
  • Use let and const instead of var.
  • Use async/await instead of Promise.then().
  • Exceptions should be handled by the ErrorHandler class or a custom implementation of it.
  • Messages to user can't be hardcoded, they should be handled by using an implementation of the TranslateService.
  • If you add a new route, make sure to set the role access for it in the RouteGuard class.

πŸ‘‰πŸ» Built with πŸ› οΈ

TypeScript Angular MUI Firebase

πŸ‘‰πŸ» Developers πŸ‘¨πŸ»β€πŸ’»

Soledad Carretero Facundo Ibars Juan Carlos Da Silva

βœ” WorkFlow

πŸ‘‰πŸ» Commits Format πŸ“œ

  • Always create the branch from develop
  • The branch name format is: feature/{jiraTicket#}.
  • The pull request title format is: {jiraTicket#}: {jiraTitle}.
  • The commits format is: {jiraTicket#}: {commitDescription}, Small commits are a nice to have.
  • The pull request has to contain only the changes related to the scope defined in the ticket.
  • Pull request should always be from your current branch to develop.

πŸ‘‰πŸ» Branches Format πŸ“œ

In the current repository you will see three diferent branches

  • main -> this branch is only for productive versions, it has official release history.
  • develop -> this branch serves as an integration branch for features. All features must start from this branch and after it's finished it gets merged back into develop. For understanding more about git and how to work with different branches, I recommend to read about Gitflow workflow. Here you have a little explanation that can serve as introduction.

πŸ‘‰πŸ» Scrum 🀝

  • Sprints last one week.
  • Two mandatory meetings with team leader per sprint.
  • The maximum duration of the daily meeting is 15 min.
  • Tasks without an epic are not allowed.
  • Epics have to be backed by user stories.
  • Tasks have to be assigned according to estimate.

πŸ‘‰πŸ» Used software πŸ› οΈ

Jira Git GitHub

πŸ‘‰πŸ» Team Leader πŸ‘¨πŸ»β€πŸ’»

Jorge Chavez




About

Gyms web-app, role-based and of integral purpose

Topics

Resources

Stars

Watchers

Forks

Languages

  • Java 52.7%
  • TypeScript 24.2%
  • HTML 19.7%
  • CSS 3.0%
  • Other 0.4%