GymPass style app.
- 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 retrieve their check-in history.
- It must be possible for the user to search for nearby gyms (up to 10km).
- It must be possible for the user to search for gyms by name.
- It must be possible for the user to check-in at a gym.
- It must be possible to validate a user's check-in.
- It must be possible to register a gym.
- Users should not be able to register with a duplicate email.
- Users cannot make 2 check-ins on the same day.
- Users cannot check-in if they are not close (within 100m) to the gym.
- Check-in can only be validated within 20 minutes after creation.
- Check-in can only be validated by administrators.
- Gyms can only be registered by administrators.
- The user's password needs to be encrypted.
- 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 JSON Web Token (JWT).
install Docker
install Node >= v18.19.0
npm i
npm run docker:up
npm run start:dev