🗺 Project TransactiWeb

Develop by GitHub last commit

💭 Sobre

O código consiste em construir uma interface web que possibilite o upload de um arquivo de transações de produtos vendidos, normalizar os dados e armazená-los em um banco de dados relacional.

  • link da apresentação Loom

👨‍💻 Tecnologias Utilizadas


⁉ Primeiros passos

🤔 Pré-requisitos

Para conseguir utilizar o projeto e contribuir nele, basta seguir as instruções abaixo:

  • O Node.js é OBRIGATÓRIO para executar esse projeto e é RECOMENDADO usar a versão LTS.
  • O NPM ou Yarn são OBRIGATÓRIO para o gerenciamento dos pacotes da aplicação.
  • O Git é OBRIGATÓRIO para o controle de versão do projeto.
  • O MySQL é OBRIGATÓRIO para o funcionamento da aplicação.

📝 Passo a passo

Primeiro clone o repositório em seu computador, por meio do terminal utilizando o comando:

  1. Clonando o repositório
  # Clone o repositório
  $ git clone https://github.com/Juninho-dev/challenge-fullstack-coodesh.git
  # Entre na pasta raiz da aplicação
  $ cd challenge-fullstack-coodesh
  1. Criando arquivo .env e .env.local
  • Começe criando um arquivo .env dentro do diretório do servidor e cole as seguintes variáveis:
  • Utilize HMAC Generator caso seja necessário.
DATABASE_URL="mysql://user:password@localhost:3306/databasename"
JWT_SECRET="yourHMACgenerate"
  • Crie um arquivo .env.local dentro do diretório do front e cole a seguinte variável:
NEXT_PUBLIC_API_URL="http://localhost:3333"
  1. Iniciando o Projeto
  • Após configurado a etapa anterior, basta executar os seguintes comandos:
  # Instale as dependências do servidor
  $ cd server && yarn # ou npm install
  # Execute o comando abaixo para criar as tabelas do banco de dados
  $ yarn prisma migrate dev
  # Execute o comando abaixo para seedar o banco de dados
  $ yarn seed
  # Execute o comando abaixo para iniciar o servidor
  $ yarn dev

  # Instale as dependências da aplicação web
  $ cd web && yarn # ou npm install
  # Execute o comando abaixo para iniciar o projeto
  $ yarn dev

💯 Padrões do projeto

  • SOLID
  • MVC
  • Repository Pattern

Documentação da arquitetura

O projeto esta dividido em:

  • Controller
  • Middleware
  • Repositories
  • Validators
  • Routes
  • Helpers

Controller

É responsável por intermediar as requisições enviadas pelo Front com as respostas fornecidas pelo Model, processando os dados que o usuário informou e repassando para outras camadas, utilizando a arquitetura MVC.

Middleware

Responsável por barrar as requisições e manipular as informações. Foi criado 2 middlewares, um se chama authenticateToken sendo responsável por verificar se o usuário esta autenticado na plataforma, o outro se chama errorMiddleware responsável por tratar os erros da aplicação utilizando o padrão apiMessage.

Repositories

Responsável por implementar as regras de negócio no que se refere aos modelos de banco de dados.

Validators

Responsável por tratar e validar as informações enviadas pelo Front.

Routes

Responsável por conter todas as rotas da API.

Helpers

Feito para criar funcões que possam ser usadas mais de uma vez no código e tambem manter o código limpo.


🚧 Lista de Atividades

TO DO SERVER

  • Adding ORM Prisma 10.
  • Create Repository Pattern module.
  • Use SOLID Arquiteture.
  • Create auth routes.
  • Create Middleware authenticate.
  • Implementing tratative errors.
  • Use the default response api.
  • Create sales routes.
  • Create unit tests.
  • Create swagger documentation.

TO DO WEB

  • Create Login page.
  • Create Register page.
  • Create Dashboard page.
  • Configure cypress and automatized tests.
  • Create middleware authenticate private routes.
  • Adding sweet-alert2 for return messages in application.
  • Install axios and configure api.ts

Feito com 💙 por 👾Juniel ® 2022.