gabrielbarth / fastfeet-backend

Node.js backend application to manage deliveries

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fastfeet
FastFeet Backend

💻 Web version here
📱 Mobile version here

🇺🇸
Backend aplication that allows delivery management. It was developed for GoStack10 bootcamp challanges 02 and 03.

🇧🇷
Aplicação backend para permitir gestão de encomendas, desenvolvido durante os desafios 02 e 03 do bootcamp GoStack10.

🔎 Overview

🇺🇸
This application allows:

  • admins authentication (users who manage the platform);
  • create, update and delete recipients, deliverymen and deliveries;
  • list deliveries by deliveryman (finished, pending and canceled deliveries);
  • images upload for deliveryman avatar and for delivery signature (that proves its execution);
  • create and solve (delete) deliveries problems (such as losses, damages, each others).

🇧🇷
A aplicação permite:

  • autenticação de administradores (responsáveis por toda gestão do app);
  • cadastro, atualização e remoção de destinatários, entregadores e encomendas;
  • listagem de encomendas por entregador (entregas finalizadas, pendentes e canceladas);
  • upload de imagens para o usuário e para assinatura de entrega da encomenda;
  • cadastro e remoção de problemas com encomendas (como perdas, danos, etc).

🚀 See about this challange here: part 1 and part 2

🔗 Project dependencies

✔️ sucrase // allows super-fast development builds and ES6 import/export modules
✔️ sentry/node // exception handling in production mode
✔️ bcryptjs // generate hash though user password
✔️ date-fns // node library to handle data
✔️ dotenv // load environment variables in application paths
✔️ express // basically allows create backend application
✔️ express-async-errors // allows express capture errors that happens inside async functions
✔️ express-handlebars // allows build semantic templates
✔️ jsonwebtoken // allows generate jwt token for users
✔️ multer // allows file uploads in application
✔️ nodemailer // allow easy email sending
✔️ nodemailer-express-handlebars // allows build semantic templates with nodemailer
✔️ path // provides utilities for working with file and directory paths
✔️ pg // allows use postgrees database
✔️ pg-hstore // allows use postgrees database too
✔️ sequelize // ORM Node.js for SQL databases (postgress in this case)
✔️ youch // pretty error reporting for Node.js
✔️ yup // treats validations

Development dependencies:
✔️ eslint // analyzes your code to quickly find problems
✔️ nodemon // allows automatically restarting app
✔️ prettier // code formatter, makes code prettier
✔️ sequellize-cli // sequelize client - ORM for SQL databases
✔️ sucrase // allows ES6 import/export modules

💻 Getting Started - Running on your machine

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

☑️ Prerequisites

This project considers usage of tree databases: Postgres and Redis. So it was used Docker to simplify the process

# Install a Redis image
docker run --name redisfastfeet -p 6379:6379 -d -t redis:alpine

# Install a Posgres image
docker run --name fastfeet -e POSTGRES_PASSWORD=fastfeet -p 5432:5432 -d postgres
(Note: login and password is equals to 'fastfeet')

# Run Redis
docker start redisfastfeet

# Run Postgres
docker start fastfeet

🛠️ Installing

Now follow the bellow steps to run project on your machine:

1. Clone this repo using git clone https://github.com/gabrielbarth/fastfeet-backend.git.
2. Move to the appropriate directory: cd fastfeet-backend.
3. Run yarn to install dependencies.
4. Now you need set the required informations on .env file (see the example).
5. After that, send the migrations to database: yarn sequelize db:migrate and yarn sequelize db:seed:all 6. Run yarn queue and yarn dev to run the app on port http://localhost:3333.
7. Now you can test using some tool like Insomnia or even installing mobile and web projects.

💡 🤝 Contributing

Please feel free to contributing and submitting pull requests.

🙏 Acknowledgments

  • Rocketseat team
  • Rocketseat community

🤔 Any question?

Contact me on my social medias:
LinkedIn
Instagram
YouTube
Discord (gabrielbarth1#0492)
Or send me an email 📨: gabrielbarth.dev@gmail.com.

Made with ♥ by Gabriel Barth

About

Node.js backend application to manage deliveries


Languages

Language:JavaScript 97.7%Language:HTML 2.3%