Skip to content

This project provides the back-end API for a gym membership platform, similar to Gympass. The application allows users to check in to their affiliated gyms and track their workout sessions.

Notifications You must be signed in to change notification settings

wolney-fo/gymgo

Repository files navigation

GymGo

This project provides the back-end API for a gym membership platform, similar to Gympass. The application allows users to check in to their affiliated gyms and track their workout sessions.

Requirements

Functional requirements

  • It must be possible to register;
  • It must be possible to authenticate;
  • It must be possible to obtain the profile of a logged-in user;
  • It must be possible to obtain the number of check-ins performed by the logged-in user;
  • It must be possible for the user to obtain their check-in history;
  • It must be possible for the user to search for nearby gyms;
  • It must be possible for the user to search for gyms by name;
  • It must be possible for the user to check in to a gym;
  • It must be possible to validate a user's check-in;
  • It must be possible to register a gym.

Business rules

  • The user must not be able to register with a duplicate email;
  • The user must not be able to check in more than once on the same day;
  • The user must not be able to check in if they are not close (100 meters) to the gym;
  • Check-in can only be validated up to 20 minutes after being created;
  • Check-in can only be validated by administrators;
  • The gym can only be registered by administrators;

Non-functional requirements

  • The user's password must be encrypted;
  • The application data must be persisted in a PostgreSQL database;
  • All data lists must be paginated with 20 items per page;
  • The user must be identified by a JWT (JSON Web Token);

Stack

  • Node.js
  • Typescript
  • Fastify
  • Prisma ORM
  • PostgreSQL
  • Dayjs
  • Zod

Contributing

Contributions are welcome! Please follow these steps to contribute:

  1. Fork the project.
  2. Create your feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a pull request.

License

MIT by Wolney Oliveira

About

This project provides the back-end API for a gym membership platform, similar to Gympass. The application allows users to check in to their affiliated gyms and track their workout sessions.

Topics

Resources

Stars

Watchers

Forks