Os comandos SQL, diagramas e etc, estão no diretório
docs
.
Para a visualização do diagrama, instale a extensão Draw.io Integration do vscode ou abra a imagem.
Technical Share é uma API com o objetivo de facilitar o encontro entre pessoas com conhecimentos específicos e para ter uma possível comunicação (através do campo de email) para tirar dúvidas, ter troca de conhecimentos.
O projeto foi desenvolvido em 15 dias no Hackathon da FCamara.
Link para o backend em produção
Link para o frontend em produção
Wireframes de Baixa Fidelidade
- Sobre o projeto
- Funcionalidades
- Como usar localmente
- Tecnologias e ferramentas usadas
- Sobre a jornada
- Documentos
- Screenshots
- Time
- Rota
GET /users
para buscar todos os usuários cadastrados. - Rota
GET /users/:id
para buscar um usuário cadastrado pelo id. - Rota
POST /users
para cadastrar um usuário. - Rota
/api-docs
para visualizar a documentação com Swagger.
- Login com JWT.
- Validação dos dados recebidos.
yarn yarn --frozen-lockfile
.- no arquivo
.env.example
coloque as credenciais do seu banco. - renomeie de
.env.example
para.env
. - crie o banco de dados
squad_28_technical_share
.CREATE DATABASE squad_28_technical_share; USE squad_28_technical_share;
.
yarn dev
.- abra o navegador e digite na url
http://localhost:3333/api-docs
.
/bin/bash run-init.sh
.- abra o navegador e digite na url
http://localhost:3333/api-docs
. - para rodar somente o backend
docker-compose exec backend yarn dev
. - caso queira rodar o phpmyadmin.
docker-compose -f dc.phpmyadmin.yml up -d
.
yarn test
- Node.js, Typescript, Typeorm e MySQL.
- Docker e Docker Compose para teste local.
- Pipeline CI/CD com GitHub Actions para testar e fazer deploy no Heroku.
- Hospedagem no Heroku e provisionamento do banco de dados MySQL com ClearDB.
- Testes automatizados com Jest, Supertest e SQLite.
- Documentação da API Rest com Swagger.
- Pretty e Editorconfig para padronizar código.
- Configuração inicial.
- Organização de tarefas para cada uma pessoa.
- Trabalhar em conjunto com o time de UX, frontend e backend.
- Padronizar os dados que serão trocados entre frontend e backend para tirar a dependência de ambos e o time do frontend conseguir trabalhar independente do que o time do backend está fazendo.
- Modelar a ideia do banco de dados, das rotas do backend e as funcionalidade.
- Trabalhar em equipe e como organizar o que cada um irá fazer.
- Muita comunicação para estar sempre atualizado do que cada um está fazendo.
- Uso do git em equipe, trabalhando com branches e lidando com conflitos de merge.
- Tecnologias aprendidas.
Tabelas do banco
- Lucas Morais
- Pablo Henrique
- Rafael Borges
- Sérgio Deiró