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 |
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.
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
- bcryptjs [^2.4.3]
- bee-queue [^1.2.3]
- cors] [^2.8.5
- date-fns [^2.0.0-beta.5]
- express [^4.17.1]
- express-handlebars [^3.1.0]
- jsonwebtoken [^8.5.1]
- multer [^1.4.2]
- nodemailer [^6.4.2]
- nodemailer-express-handlebars [^3.1.0]
- pg [^7.18.1]
- pg-hstore [^2.3.3]
- sequelize [^5.21.3]
- yup [^0.28.1]
Dependências de desenvolvimento
- eslint [^6.8.0]
- eslint-config-airbnb-base [^14.0.0]
- eslint-config-prettier [^6.10.0]
- eslint-plugin-import [^2.20.0]
- eslint-plugin-prettier [^3.1.2]
- nodemon [^2.0.2]
- prettier [^1.19.1]
- sequelize-cli [^5.5.1]
- sucrase [^3.12.1]
Este módulo foi desenvolvido utilizando
Visual Studio Code
Version: 1.44.0
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.
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!