Skip to content

Backend desenvolvido no Hackathon do Programa de Formação Season 3 da FCamara.

Notifications You must be signed in to change notification settings

Squad-28/back-end

Repository files navigation

Squad 28 Technical Share

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.

Sobre o projeto

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

Repositório do backend

Repositório do frontend

Artigo sobre o projeto

Protótipo de Baixa Fidelidade

Protótipo de Alta Fidelidade

Wireframes de Baixa Fidelidade

Wireframes de Alta Fidelidade

Sumario

Funcionalidades

Desenvolvido

  • 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.

Implementações futuras

  • Login com JWT.
  • Validação dos dados recebidos.

Como usar localmente

Ir para o sumário

Rodando o projeto sem docker

  • 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.

Rodando o projeto com docker

  • /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.

Rodando os testes

  • yarn test

Tecnologias e ferramentas usadas

Ir para o sumário

  • 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.

Sobre a Jornada

Ir para o sumário

Dificuldades encontradas

  • 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.

Aprendizados

  • 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.

Documentos

Ir para o sumário

Tabelas do banco

Screenshots

Ir para o sumário

Time

Ir para o sumário

Fullstack

UX