EdTech é uma plataforma de software para digitalizar, armazenar e auditar publicações científicas, relatórios de pesquisa e datasets de laboratórios acadêmicos. O sistema foi projetado com foco em rastreabilidade, controle de acesso baseado em perfis e integridade de dados.
📖 Portal Oficial da Documentação: pedrohpsantos.github.io/EdTech
O EdTech centraliza o ciclo de vida de documentos acadêmicos em um único repositório auditável, eliminando o uso de soluções ad hoc (e-mail, pen drives, planilhas compartilhadas) para gestão de arquivos científicos.
- Rastreabilidade: Cada operação relevante é registrada em trilha de auditoria imutável.
- Governança de Acesso: Controles de autorização por perfil — Pesquisador, Orientador e Auditor.
- Segurança: Autenticação via JWT (Bearer Token), armazenado no Local Storage, anulando riscos de CSRF, com comunicação exclusivamente via HTTPS em produção.
| Módulo | Responsabilidade | Stack |
|---|---|---|
| 🎨 Frontend (UI) | Interface SPA responsiva para os usuários da plataforma. | React 19, Vite 8, Vanilla CSS |
| ⚙️ Backend (API) | API RESTful com regras de negócio, segurança e persistência. | Java 21, Spring Boot 4.1 |
| ☁️ Infraestrutura | Orquestração de containers e configuração de infraestrutura em nuvem. | GCP, Terraform, Docker Compose |
| 📄 Documentação | Portal de documentação técnica e arquitetural (Docs-as-Code). | MkDocs Material |
| 📊 Scripts | Scripts de telemetria e análise para o Orientador. | Python, Pandas |
| 🕵️ Testes | Testes de integração, carga e qualidade da plataforma. | Playwright, K6 |
| Status | Item |
|---|---|
| ✅ | Autenticação JWT via cabeçalho Authorization Bearer |
| ✅ | CI/CD via GitHub Actions e deploy no Cloud Run |
| ✅ | Migrações de banco gerenciadas pelo Flyway |
| ✅ | Armazenamento de arquivos no GCS (Google Cloud Storage) |
| ✅ | Upload de documentos PDF e datasets CSV/JSON |
| ✅ | Exportação CSV da trilha de auditoria por documento |
| ✅ | Rate limiting nas rotas de autenticação (Bucket4j) |
| ✅ | Backup automático diário do banco de dados (Cloud Scheduler) |
| ✅ | Painel analítico dedicado para o Orientador |
| 🚧 | Scan de malware em uploads (ClamAV) |
| Método | Endpoint | Autenticação | Descrição |
|---|---|---|---|
POST |
/api/v1/auth/login |
❌ | Autentica o usuário e retorna o token JWT |
GET |
/api/v1/documents |
✅ | Lista os documentos paginados (conforme perfil) |
POST |
/api/v1/documents/upload |
✅ | Realiza o upload de novo documento para o GCS |
POST |
/api/v1/documents/{id}/review |
✅ | (Orientador) Aprova ou rejeita uma submissão |
📌 Para a especificação OpenAPI completa, inicie a API localmente e acesse o Swagger UI, ou explore a coleção pronta na pasta
.postman/.
O ambiente de desenvolvimento completo pode ser iniciado via Docker Compose, sem necessidade de instalar dependências individualmente.
# Clone o repositório
git clone https://github.com/pedrohpsantos/EdTech.git
cd EdTech
# Configure as variáveis de ambiente locais
cp infra/.env.example infra/.env
# Edite o arquivo infra/.env com os valores adequados
# Suba os serviços
cd infra
docker compose up --build -d- Frontend:
http://localhost:5173 - Backend:
http://localhost:8080
Consulte os documentos abaixo antes de contribuir com o projeto:
- 📖 Como Contribuir
- 📜 Código de Conduta
- 🔒 Política de Segurança
- ⚖️ Licença — MIT
Todos os commits devem seguir o padrão Conventional Commits. PRs sem testes associados serão rejeitados pelo CI.
