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.git
Copie .env.example
para .env
na pasta backend:
cd backend
cp .env.example .env
O projeto possui funcionalidades que utilizam serviços externos opcionais. Você pode configurá-los editando o arquivo .env
:
nano .env # ou use seu editor preferido
A 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_KEY
eRECAPTCHA_SECRET_KEY
)
Use no .env
:
DEV_PASSWORD_RECOVERY_MODE=true
Navegue 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 install
Abra 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.sh
Este 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.sh
Esse 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 dev
O frontend estará disponível em: http://localhost:5173
Em outro terminal, vá até a pasta docs
:
cd docs
npm run start
A documentação estará disponível em: http://localhost:3000
-
O backend roda na porta
3001
via 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 -v
e 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