Git Product home page Git Product logo

api-solid-ignite's Introduction

API S.O.L.I.D. Ignite

๐Ÿ’ป Technologies:

  • TypeScript
  • Prisma
  • Fastify
  • Node.js
  • PostgreSQL
  • Docker

๐Ÿ‘ท Steps to use:

Installation:

  # NPM/PNPM
  npm/pnpm i

  # Yarn
  yarn

Setting .env file

   ## Get the environment variable of .env.example file and use it in .env file filling with your credentials

  cp .env.example .env

Running the container

  docker-compose up

  ## Or

  docker compose up

Running the database

  npx prisma migrate dev

Running the application

  # NPM
  npm run start:dev

  # Yarn
  yarn start

  # PNPM
  pnpm start

Requirements

FRs (Functional requirements)

  • It should be possible to create a new user
  • It should be possible to authenticate an existing user
  • It should be possible to get the perfil of an logged user
  • It should be possible to get the number of check-ins of an logged user
  • It should be possible for the logged-in user to get your own check-ins history
  • It should be possible for the logged-in user to search for nearby gyms
  • It should be possible for the logged-in user to search gyms by name
  • It should be possible for the logged-in user to realize a check-in
  • It should be possible to validate a check-in of an existing user
  • It should be possible to register a new gym

Business rules (BRs)

  • The user should not be able to register yourself with the same email
  • The user should not be able to do two check-ins in the same day
  • The user should not be able to do check-ins if he/she is not closer to the gym (100m)
  • The check-in only be able to be validated until 20 minutes after the check-in was created.
  • The check-in only be able to be validated by admin
  • The Gym only be able to be registered by admin

Non-functional requirements (NFRs)

  • The user password need to be encrypted
  • The application data need to be persisted in a PostgreSQL database
  • All data list need to be paginated with 20 items per page
  • The user must be indicated by a JWT

๐Ÿ“ LICENSE

This project is licensed under the MIT license. See the LICENSE file for details

api-solid-ignite's People

Contributors

martinsgabriel1956 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.