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.
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.
- 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.
- 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.
- You can read API docs here.
Emiliano Escobedo | Gabriel Boaglio | Diego Haczek |
- 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.
- 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.
Soledad Carretero | Facundo Ibars | Juan Carlos Da Silva |
- 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.
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.
- 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.
Jorge Chavez |