Skip to content

FGA0138-MDS-Ajax/2025.1-Algiz

🌱 EcoNet – Plataforma de Sustentabilidade Corporativa

Conectando empresas por um futuro sustentável ♻️

License Contributors Stars Last Commit Forks Views


📘 Visão Geral

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:

JavaScript Node.js React HTML5 CSS3 TailwindCSS MySQL Docker AdminJS GitHub Docusaurus

🔗 Documentos importantes


Contribuidores ✨

Ana Beatriz C Wirthmann
Ana Beatriz C Wirthmann

📖
Arthur de Lima Sobreira
Arthur de Lima Sobreira

💻
CauaNicolas
CauaNicolas

💻
Diogo
Diogo

💻
Gabriel Augusto
Gabriel Augusto

💻 📖 🎨 ⚠️
Gabriel Pereira
Gabriel Pereira

📖
João Victor Sousa
João Victor Sousa

💻
João Pedro Sampaio
João Pedro Sampaio

💻
juliapat18
juliapat18

💻 ⚠️
marianagonzaga0
marianagonzaga0

📖 💻
Rafael Siqueira Soares
Rafael Siqueira Soares

💻 ⚠️
TiagoSTdeLyra
TiagoSTdeLyra

💻

🔃 Como Rodar Localmente?

Pré-requisitos

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:

  • Node.js (versão 20 ou superior)
  • npm (gerenciador de pacotes do Node.js)
  • Docker

Passo a Passo:

1: Clonar o repositório

Clone este repositório em uma pasta da sua máquina local:

git clone https://github.com/FGA0138-MDS-Ajax/2025.1-Algiz.git

2: Primeira configuração

Copie .env.example para .env na pasta backend:

cd backend
cp .env.example .env

Configuração de chaves opcionais

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

⚙️ Funcionalidades Opcionais:

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

🧪 DEV_RECOVERY_MODE

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 e RECAPTCHA_SECRET_KEY)

⚠️ Não ative em produção!

Use no .env:

DEV_PASSWORD_RECOVERY_MODE=true

3: Instalar dependências

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

4: Iniciar o servidor

Backend (usando Docker)

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

Frontend

Em outro terminal, vá até a pasta frontend:

cd frontend
npm run dev

O frontend estará disponível em: http://localhost:5173

Documentação (Docusaurus)

Em outro terminal, vá até a pasta docs:

cd docs
npm run start

A documentação estará disponível em: http://localhost:3000


Observações

  • 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 depois docker compose up --build
    • Verifique os registros com docker compose logs db
  • Para se conectar ao contêiner do MySQL:

    docker exec -it backend-db-1 mysql -u root -pyourpassword

Packages

No packages published

Contributors 13

Languages