Computadores-Para-Todos / computers-4-all-manager

Gestor de equipamentos, pessoas e processos do projeto "Computadores para todos"
4 stars 1 forks source link

Computers for all - manager

O Computadores para todos é um projeto social que recebe doação de computadores usados, os renova, e doa para jóvens de comuinidades menos favorecidas. Atualmente o projeto acontece apenas em Juiz de Fora, mas, através deste sistema, poderá expandir para outras cidades.

Este repositório

Este repositório contém dois projetos; a API (backend node) e o sistema de gestão (frontend react).

Como colaborar

O primeiro é assistir (mesmo que por alto) o video abaixo para entender o projeto, entender o sistema e saber como serão geridas as tarefas. Clique para abrir no Youtube.

Video do Youtube

Vantagens de participar

Como participar

Como começar

Você precisará rodar a API e o frontend em dois terminais diferentes, ao mesmo tempo, para ver o projeto funcionar. Opcionalmente você pode executar o Storybook, que é onde todos os componentes estão organizados.

Segue um passo a passo para rodar o projeto localmente:

1 - Clone o projeto

git clone https://github.com/Computadores-Para-Todos/computers-4-all-manager.git

2 - Instale o NVM (ou garanta que esteja usando o node versão 11.x)

https://github.com/nvm-sh/nvm

3 - Vá para o branch dev, e criae um novo branch para a issue que está. Exemplo:

git checkout dev
git checkout -b 12-criar-form-usuario

Setup da API

1 - Instalar pacotes da API

cd api
npm install

2 - Criar uma cópia o arquivo .env.sample para .env

cp .env-sample .env 

3 - Criar database local e informar os parâmetros de conexão no arquivo .env (caso tenha Docker/Compose instalado, pode usar e configurar o banco de desenvolvimento no arquivo api/docker-compose.yml - npm run database)

4 - Rodar a API

nvm use
npm run dev

5 - 🎉🎉🎉 - Neste momento seu terminal deve dizer que a API está rodando em http://localhost:3001/, e informando sucesso ou falha em conexão com o banco de dados.

Para gerar um build de produção e executá-lo, basta rodar:

npm run build
npm start

Setup do frontend

1 - Instalar pacotes do front

cd pwa
npm install

2 - Criar uma cópia o arquivo .env.sample para .env

cp .env-sample .env 

3 - Rodar o PWA

nvm use
npm start

4 - 🎉🎉🎉 - Seu terminal irá iniciar o servidor local do frontend react e abrirá http://localhost:3000/ em seu navedor.

Executar o Storybook

1 - Abra um novo terminar na mesma pasta do PWA e execute:

npm run storybook

2 - 🎉🎉🎉 - Seu terminal irá iniciar o servidor local do storybook e abrirá http://localhost:9009/ em seu navedor.

Mais detalhes técnicos e ferramentas

Lint

O projeto tem um padrão de códigos que é imposto pelo ESLint, é preciso ativar o ESLint e o Prettier na sua IDE para que ela te avise quando algo estiver faltando ou fora do padrão. Todos alertas devem ser resolvidos, porque o Husky não irá deixar subir código fora do padrão.

Estas são as regras em uso:

ESLint backend

ESLint frontend

JSDoc

O ESLint irá pedir que use comentários em vários lugares, seguindo o padrão JSDoc, pedindo para informar os tipos de parâmetros, retornos, etc.

dotenv

O projeto utiliza o dotenv para carregar os arquivos de configurações (.env) em cada um dos projetos.

Rollbar

Os erros do projeto (em produção) serão logados no Rollbar, que é uma ferramenta bem útil. Não é obrigado utilizar em desenvolvimento.

Husky

O Husky irá validar todas as regras do ESLint antes de cada commit, e só deixará subir códigos que estejam 100% dentro das regras definidas.

Semantic Ui

A interface está sendo construída usando Semantic Ui.

Integração contínua

Foi utilizado o Github Actions para algumas ações relevantes: