Conectando empresas por um futuro sustentável ♻️
EcoNet é uma aplicação web que promove a economia circular, conectando empresas com excesso de materiais a outras que podem reaproveitá-los. Nosso foco é transformar descarte em oportunidade, criando um ciclo produtivo e sustentável.
🌍 Alinhado ao ODS 12 da ONU – Produção e Consumo Responsáveis
Tecnologias utilizadas para o desenvolvimento do projeto:
- Contributing – Guia para colaboração
- Visão do Projeto – Documento de visão do produto e do projeto
- Arquitetura – Documento de arquitetura do projeto
Antes de começar, recomendamos que você utilize o sistema operacional Linux ou Linux WSL (Ubuntu), verifique também se você possui as seguintes ferramentas instaladas em sua máquina:
Clone este repositório em uma pasta da sua máquina local:
git clone https://github.com/FGA0138-MDS-Ajax/2025.1-Algiz.gitCopie .env.example para .env na pasta backend:
cd backend
cp .env.example .envO projeto possui funcionalidades que utilizam serviços externos opcionais. Você pode configurá-los editando o arquivo .env:
nano .env # ou use seu editor preferidoA aplicação suporta essas funcionalidades somente se configuradas no .env ou via CI/CD:
| Variável | Descrição |
|---|---|
RESEND_API_KEY |
Ativa envio de e-mail via Resend |
RECAPTCHA_SECRET_KEY |
Ativa verificação reCAPTCHA |
DEV_RECOVERY_MODE |
Modo desenvolvimento |
Modo desenvolvimento que permite:
- Bypassar reCAPTCHA
- Exibir o código de recuperação direto no log e na resposta da API
- Use caso não consiga acesso as chaves secretas (
RESEND_API_KEYeRECAPTCHA_SECRET_KEY)
Use no .env:
DEV_PASSWORD_RECOVERY_MODE=trueNavegue até a pasta do projeto e execute os seguintes comandos para instalar as dependências do Node.js:
cd 2025.1-ALGIZ
cd backend
npm install
cd ../frontend
npm install
cd ../docs
npm installAbra o terminal, vá até a pasta backend e execute:
cd backend
docker compose up --build🔁 Resetar banco de dados: Se você deseja apagar todo o banco, reconstruir os containers e aplicar os dados do zero (ideal para desenvolvimento), utilize o script abaixo:
./scripts/reset-db.shEste script irá:
- Derrubar os containers e volumes
bash docker compose down -v - Subir tudo novamente
bash docker compose up
💡 Recomendado quando você quer garantir que está usando dados de teste atualizados.
⚙️ Rodar apenas migrations e seeders: Primeiro: Certifique-se de que o backend esteja rodando com os containers Docker. Se já está em execução (containers já estão rodando), você pode apenas aplicar as migrations e popular com os dados iniciais usando:
./scripts/setup-db.shEsse script irá:
- Executar as migrations
bash sequelize-cli db:migrate - Rodar os seeders
bash sequelize-cli db:seed:all
Em outro terminal, vá até a pasta frontend:
cd frontend
npm run devO frontend estará disponível em: http://localhost:5173
Em outro terminal, vá até a pasta docs:
cd docs
npm run startA documentação estará disponível em: http://localhost:3000
-
O backend roda na porta
3001via Docker. -
O frontend utiliza Vite.js e roda na porta
5173. -
A documentação está disponível na porta
3000. -
Certifique-se de que as portas não estejam em uso por outros serviços locais.
-
Se o MySQL não conseguir iniciar:
- Tente
docker compose down -ve depoisdocker compose up --build - Verifique os registros com
docker compose logs db
- Tente
-
Para se conectar ao contêiner do MySQL:
docker exec -it backend-db-1 mysql -u root -pyourpassword