=======
Projeto open-source desenvolvido pela App Masters para a prefeitura da cidade de Juiz de Fora para auxiliar a transferência de renda para as famílias em situação de vulnerabilidade social cadastradas no Bolsa Família e com dependentes cadastrados na rede municipal de ensino. O sistema é responsável pelo cruzamento dos dados das bases municipais, assim como o registro das compras feitas pelas famílias, permitindo o cálculo do saldo mensalmente da mesma.
As informações sobre o sistema para o público em geral estão no post sobre o projeto e-Benefício no site da App Masters.
Projeto feito utilizando primáriamente node
no backend e react
no frontend.
Clone o projeto e acesse a pasta.
git clone https://github.com/app-masters/e-beneficio.git
cd e-beneficio
Na pasta /backend
crie um arquivo .env
usando o arquivo .env.example
como exemplo, preenchendo com seus dados locais.
Após criar o .env
execute:
cd backend
npm install
npm start
O servidor node será inicalizado e estará servindo o backend localmente.
Você pode ter um banco de dados postgres executando locamente com o docker-compose.
cd backend
docker-compose up
Com o banco online, você deve migrar e criar os registros de testes em sua base dados, executando:
cd backend
npm run migrate
npm run seed
IMPORTANTE:
Ao rodar o seed pela primeira vez, o seed users
irá criar um usuário para cada role existente no sistema, seguindo o seguinte padrão:
Role: admin or manager or financial or operator or cashier
Email: {role}@login.com
Password: {role}
O projeto é separado em três projetos de frontend:
- admin: painel administrativo para gestão dos dados e acesso a relatórios;
- app: webapp usado nas lojas para validar o consumo, também tem relatórios e informações financeiras;
- portal: site por onde as famílias consultam seus saldos e informam seus consumos.
Dentro de cada pasta que for usar, crie o arquivo .env
usando como modelo o arquivo .env.example
, preenchendo com seus dados locais. Em seguida execute:
cd admin # ou portal, ou app
npm install
npm start
No projeto app, você pode autenticar com o usuário admin, financial, ou manager.
A lista de todos os endpoints da API podem ser acessada utilizando o Postman, importando o arquivo /backend/docs/postman
ou por este link.
O código está bem comentando para facilitar a compreensão. Em caso de duvidas abra uma issue.
O projeto é composto por 3 partes:
- Portal (/portal) que é a página onde o cidadão vê informações sobre o programa, consulta seu saldo e informa seu consumo
- Admin (/admin) é por onde os gestores administram o programa
- API (/backend) que é quem mantem as informações e interage com os frontends
Em deployment existem os scripts necessários para realizar o build e deploy de toda a estrututa para a núvem do Google Cloud.
O projeto foi desenvolvido usando containers docker. Se preferir executar todo o projeto sem utilizar códigos, execute as imagens abaixo com as variáveis de ambiente necessárias.
- Portal: gcr.io/e-beneficio-jf/e-beneficio-portal
- Admin: gcr.io/e-beneficio-jf/e-beneficio-admin
- Backend: gcr.io/e-beneficio-jf/e-beneficio-backend
Usamos o nginx-proxy para "mapear" um domínio e diversos subdomínios, em um único docker-compose. Veja um exemplo.
Foi utilizado o lets-encrypt para gerar chaves SSL auto geradas.
Se você é um desenvolvedor e deseja obter suporte técnico no projeto, abra uma issue no projeto.
Se você é uma instituição e deseja obter suporta para implantação completa, fale conosco.