Coder Social home page Coder Social logo

natasha-m-oliveira / api-rentx Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.04 MB

Projeto desenvolvido no bootcamp Ignite da trilha Nodejs da Rocketseat

JavaScript 0.28% TypeScript 99.13% Dockerfile 0.07% Shell 0.18% Handlebars 0.34%
clean-architecture docker docker-compose expressjs nodejs postgresql redis solid typeorm

api-rentx's Introduction

Requirements

Label

  • FR - Functional requirements
  • NRF - Non-functional requirements
  • BR - Business rule

Car Registration

  • FR

    • It should be able register a new car.
  • BR

    • It should not be able to register a car with a license plate already registered.
    • The card must be registered with availability.
    • The user responsible for the registration must be an administrator.

Car listing

  • FR

    • It should be able to list all available cars.
    • It should be able to list all available cars by category name.
    • It should be able to list all available cars by brand name.
    • It should be able to list all available cars by car name.
  • BR

    • The user does not need to be authenticated to the system.

Specification registration on the car

  • FR

    • It should be able to file a specification for a car.
  • BR

    • It should not be able to register a specification for an unregistered car.
    • It should not be able to register a specification already registered for the same car.
    • The user responsible for the registration must be an administrator.

Car images registration

  • FR

    • It should be able to register an image of the car.
  • RNF

    • Use multer to upload files.
  • BR

    • The user should be able to register more than one image for the same car.
    • The user responsible for the registration must be an administrator.

Car rental

  • FR

    • It should be able to register a rental.
  • BR

    • The rental should have minimum duration of 24 hours.
    • It should not be able to register a new rental if there is already one open for the same user.
    • It should not be possible to register a new rental if there is already one open for the same car.
    • When making a rental, the car's status must be changed to unavailable.
    • The user must be authenticated in the application.

Car Devolution

  • FR

    • It should be able to devolve the car.
  • BR

    • If the car is returned less than 24 hours later, the full day will be charged.
    • When returning, the car must be released for a new rental.
    • When returning, the user must be released for a new rental.
    • When returning, the total rent must be calculated.
    • If the return time is longer than the expected delivery time, a fine shall be charged for the days of delay.
    • If there is a fine, it must be added to the total rent.
    • The user must be authenticated in the application.

List Rentals By User

  • FR

    • It should be possible to search for all rentals by users.
  • BR

    • The user must be authenticated in the application.

Reset Password

  • FR

    • It should be able to user to reset his password by informing his e-mail.
    • The user should receive an email with the step by step to reset their password.
    • The user must be able to enter a new password.
  • BR

    • The user needs to enter a new password.
    • The link sent to reset the password must expire in 3 hours.

Technology

Technologies used in the project

  • node 16.17.0
  • npm 8.19.1

Main dependencies

  • express 4.18.1
  • swagger-ui-express 4.5.0
  • uuid 9.0.0

Launch the application

Docker start

If you are using wsl check if docker is running

run sudo service docker status

if the output is Docker is not running

run sudo service docker start

Access the project folder and run docker-compose up

Runs the app in the development mode. Open http://localhost:3333/api-docs to view it in the browser.

Author

api-rentx's People

Contributors

natasha-m-oliveira avatar

Stargazers

 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.