netcenter

🌐 NetCenter

NetCenter é uma aplicação web desenvolvida como projeto acadêmico para atuar como um hub centralizador de ferramentas de diagnóstico de redes. O objetivo principal do projeto é aplicar conceitos modernos de desenvolvimento full-stack, incluindo estruturação de APIs robustas em Express, persistência relacional com Prisma ORM e SQLite, autenticação JWT segura, e manipulação dinâmica de DOM no front-end.


🚀 Tecnologias Utilizadas

Front-End:

Back-End:


🎯 Requisitos Atendidos (Rubrica de Avaliação)

Este projeto foi estruturado para atender plenamente a todos os critérios acadêmicos exigidos:

1. Back-end com Express.js

2. Integração Front-end ↔ Back-end

3. Banco de Dados e Persistência

4. Autenticação e Controle de Acesso

5. Configuração e Recursos do Sistema


📂 Estrutura do Projeto

netcenter/
├── api/                    # Consumo da API no front-end
│   ├── index.js            # Chamada de ferramentas pública
│   └── auth.js             # Chamadas autenticadas (auth, run-tool, reports)
├── prisma/                 # Banco de dados e ORM
│   ├── schema.prisma       # Modelagem das entidades relativas ao banco
│   ├── seed.js             # Script de população do banco
│   └── migrations/         # Histórico de migrations SQL versionadas
├── server/                 # Backend Node/Express
│   ├── db.js               # Inicialização de diretórios e seeding das ferramentas
│   ├── controllers/        # Controladores responsáveis pelas requisições
│   ├── middlewares/        # Middlewares de Auth e Error handling
│   ├── models/             # Queries ao banco via Prisma Client
│   ├── routes/             # Definição dos endpoints REST
│   └── utils/              # Funções auxiliares (criação e validação JWT)
├── .env.example            # Modelo de exemplo de variáveis de ambiente
├── index.html              # Tela inicial com motor de busca
├── login.html              # Tela de Login
├── register.html           # Tela de Cadastro
├── tools.html              # Painel do terminal com Auth Guard
├── reports.html            # Tela de visualização de relatórios do usuário
├── main.js                 # JS da tela principal (DOM e autenticação)
├── server.js               # Servidor Express principal
└── package.json            # Scripts de inicialização, migrations e dependências

📚 Documentação da API

A API agora conta com uma documentação básica em OpenAPI disponível em docs/openapi.yaml.

Também foram incluídos artefatos de organização para desenvolvimento assistido por IA em AGENTS.md e na pasta specs.

🧪 Testes Automatizados

Execute os testes com:

npm test

⚙️ Como Executar o Projeto

Para rodar a aplicação localmente, siga os passos abaixo:

  1. Instale as dependências:
    npm install
    
  2. Configure as variáveis de ambiente: Copie o arquivo .env.example e crie um arquivo .env na raiz do projeto:
    cp .env.example .env
    

    Ajuste as chaves conforme necessário (um JWT_SECRET forte é recomendado).

  3. Inicie o servidor (ele aplicará as migrations e o seed automaticamente):
    npm start
    
  4. Acesse a aplicação: Abrir http://localhost:3000 no seu navegador.

🐳 Uso com Docker

  1. Crie o arquivo .env a partir de .env.example:
    cp .env.example .env
    
  2. Suba o contêiner com Docker Compose:
    docker compose up --build
    
  3. Acesse a aplicação em http://localhost:3000.

O container expõe a porta 3000 e carrega as variáveis de ambiente do arquivo .env.