Giter Site home page Giter Site logo

ahrkano / gostack-fastfeet-backend Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sdamasceno-dev/gostack-fastfeet-backend

0.0 0.0 0.0 842 KB

Repositório com o Backend do sistema FastFeet. Este módulo faz parte da certificação do Bootcamp GoStack 10 da Rocketseat.

License: MIT License

JavaScript 96.46% HTML 3.54%

gostack-fastfeet-backend's Introduction

Módulo Backend

Reconhecidamente a melhor solução para serviços de entrega, com foco exclusivamente no cliente e totalmente comprometida em superar expectativas.

🔗|  Descrição   |   Bibliotecas   |   Ambiente de teste e uso   |   Como instalar   |   Estrutura do Backend   |   Licença   |

📃 Descrição

O módulo Backend do Sistema FastFeet é o responsável por executar, por meio de uma API (Application Programming Interface ou traduzindo para o português Interface de Programação de Aplicativos) toda a pesquisa de coleta e envio de informações com os bancos de dados necessários para o sistema. Na seção Bibliotecas estarão listadas todas as dependências utilizada no desenvolvimento deste módulo.

📚 Bibliotecas

Abaixo estão listadas as dependências com suas respectivas versões utilizadas para o desenvolvimento desse módulo Backend do Sistema Fastfeet, agrupadas conforme usabilidade:

Dependências

Dependências de desenvolvimento

🐚 Ambiente de desenvolvimento, teste e uso

Este módulo foi desenvolvido utilizando

Visual Studio Code
Version: 1.44.0

💾 Como Instalar

Para que este módulo funcione de forma correta após a clonagem, serão necessários alguns recursos para que toda a estrutura fique adequada para o seu bom funcionamento.

Antes de preparar o ambiente, é necessário que o computador, onde irá rodar este módulo, já tenha instalado o Git, Node.JS >=v12.14.0 LTS e o Yarn >=v1.22.4.

Todos esses pacotes podem ser instalados utilizando um Gerenciador de pacotes compatível com o seu sistema operacional (Homebrew para macOS, Chocolatey para Windows). Feito isto, o preparo do ambiente segue os seguintes passos:

1º Clonar este repositório

Para se efetuar a clonagem desse repositório:

  • 1- No computador onde serão instalados os módulos do Sistema Fastfeet, crie uma pasta onde ficará toda a estrutura do sistema;
  • 2- Acesse a pasta criada e inicie uma sessão no Terminal de comandos, do seu sistema operacional, e execute o seguinte comando:
# Clonar a pasta Backend do Sistema FastFeet
$ git clone https://github.com/SDamasceno-Dev/gostack-fastfeet-backend
  • 3- Acesse a pasta clonada
# Acessar a pasta clonada
$ cd gostack-fastfeet-backend
  • 4- Execute o Yarn para que todas as dependências sejam corretamente instaladas
# Instalar todas as dependências necessárias
$ yarn

2º Banco de Dados

Uma vez que todas as dependências estejam instaladas, chegou o momento de preparar o ambiente de banco de dados. Para isso devemos:

  • 1- Instalar o banco de dados Postgres com o nome de fastfeet. Ver orientações em como proceder a instalação clicando aqui;

  • 2- Instalar o banco de dado Redis. Ver orientações em como proceder a instalação clicando aqui;

  • 3- Efetuar os ajustes necessários, no arquivo database.js localizado em src/config/, para que seja feita a conexão com o Postgres conforme as informações da sua instalação desse banco;

  • 4- Efetuar a migração das tabelas para o Postgres. Para isso iremos utilizar o sequelize-cli, executando o seguinte comando:

    # Executa a migração criando as tabelas no banco de dados Postgres
    $ yarn sequelize db:migrate
  • 5- (opcional) Criar um usuário administrador padrão. Para isso, iremos utilizar novamente o sequelize-cli executando o seguinte comando:

    # Cria o usuário padrão com perfil de administrador no Sistema FastFeet
    $ yarn sequelize db:seed:all

    Este usuário possui os seguintes dados:

    name: 'Distribuidora FastFeet'
    email: '[email protected]'
    password: '123456'
  • Com todas as tabelas criadas e o usuário padrão com perfil administrador configurado, já é possível iniciar os serviços do Backend. Para isso, basta executar no terminal os comandos abaixo, sendo que os mesmos devem ser executados em instâncias diferentes do terminal:

    # Instância 1
    # Comando para rodar os serviços do Postgres no Backend do Sistema FastFeet
    $ yarn dev

    Com uma outra instância do terminal aberta, execute agora o seguinte comando:

    # Instância 1
    # Comando para rodar os serviços do Redis no Backend do Sistema FastFeet
    $ yarn queue

Após todas as etapas realizadas com sucesso, prosseguimos com a instalação do módulo Frontend (WEB) do Sistema FastFeet.

🏢 Estrutura do Backend

Com o intuito de tornar esse módulo mais didático, serão aqui citadas algumas das estruturas mais importantes desse módulo e a sua principal função. Caso seja necessária uma compreensão mais aprofundada, você pode verificar diretamente nos arquivos em cada uma das estruturas.

  • Controllers (/src/app/controllers) Nessa pasta estão localizados todos os controllers do Sistema FastFeet. Esses controllers definem as regras de negócio para cada uma das entidades que fazem parte do sistema (Administrador, Entregador, Encomenda, Cliente). Estas regras de negócio englobam desde a definição e horários para que as encomendas possam ser retiradas para serem entregues até a necessidade de se coletar a assinatura da entrega paraa finalização do processo.
  • Models (/src/app/models) Aqui estão armazenados todos os arquivos modelos das entidades do Sistema FastFeet que são utilizados junto com o sequelize no momento de interação dessas entidades com o sistema.
  • Config (/src/config) Aqui estão armazenados todos os arquivos de configuração do Sistema FastFeet. É necessário uma atenção maior na hora de manipular esses arquivos, pois uma má configuração pode comprometer por completo a boa experiência no uso do sistema.

Criado e editado por Sandro de Oliveira Damasceno 👾 github! :octocat:

gostack-fastfeet-backend's People

Contributors

sdamasceno-dev 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.