/mais-educacao

CRUD with Vue.js 3, Composition API, Typescript, Vite, Vuetify and Node.js

Primary LanguageTypeScript

Sumário

🔹 Funcionalidades

🔹 Deploy

🔹 Documentação

🔹 Requisitos

🔹 Execute projeto

🔹 Tecnologias utilizadas

🔹 Decisões técnicas

🔹 Autor

🔹 Licença

Funcionalidades

✔️ Listar estudantes

✔️ Exibir estudante

✔️ Salvar estudante

✔️ Atualizar estudante

✔️ Excluir estudante

Deploy

Link do WebApp: https://mais-educacao.tharlei.com

Documentação

Documentação no Postman: https://documenter.getpostman.com/view/4827382/2s7YYr95Q4

Requisitos

⚠️ Node:^16

⚠️ PostgreSQL ou MySQL

Execute projeto

No terminal, clone o projeto

git clone https://github.com/tharlei/mais-educacao.git

Entre na pasta

cd mais-educacao

Instale dependências npm

npm i && npm i --prefix server/

Copie .env.example para .env e preencha com informações

cp .env.example .env && cp server/.env.example server/.env

Execute as migrations

npm run typeorm --prefix server/ -- migration:run

Execute o projeto no modo desenvolvimento

npm run dev

Tecnologias utilizadas

Decisões técnicas

Arquitetura

  • Em único repositório possui dois projetos. Na raiz fica o front-end e dentro pasta "server" na raiz, o back-end.
  • Front-end: Vue.js 3 com Typescript e Composition API, compilado com Vite e biblioteca gráfica Vuetify
  • Back-end: Node.js com Typescript, Express e TypeORM para gerenciamento do banco.

Pastas

  • Pasta "infra" são classes que tem uma externa dependência em algo.
  • Pasta "repository" tem a responsabilidade por manipular banco de dados.
  • Pasta "queries" tem intenção de retornar dados já filtrados ou não do banco de dados.
  • Pasta "services" visa executar alguma lógica antes de enviar para uma dependência externa.
  • Pasta "shared" são lógicas compartilhadas dentro do projeto.

Melhorias futuras

  • Adicionar autenticação com bcrypt e JWT
  • Cacheamento usando o Redis.
  • Ao concluir cadastro, disparar tarefa com Bull para envio de e-mail de bem-vindo.

Autor


Tharlei Aleixo

Licença

The MIT License (MIT)

Copyright ©️ 2022 - challenge-full-stack-web