Uma aplicação web moderna para gerenciamento de atividades acadêmicas, desenvolvida com Next.js (frontend) e Node.js/Express (backend), utilizando PostgreSQL como banco de dados. O projeto segue arquitetura MVC e oferece uma interface moderna com design glassmorphism.
A AdaLove é a plataforma oficial de estudos do Inteli, usada diariamente por todos os estudantes da faculdade.
O AdaLove 2.0 é uma reimaginação completa da plataforma original, focada em proporcionar uma experiência superior para gestão de atividades de autoestudo. A aplicação permite que estudantes do Inteli importem dados do AdaLove 1.0 e gerenciem suas atividades através de uma interface moderna e intuitiva.
- Interface Moderna: Design glassmorphism com cores da marca AdaLove
- Importação de Dados: Suporte completo para arquivos do AdaLove 1.0
- Visualizações Múltiplas: Timeline e tabela para diferentes necessidades
- Filtros Avançados: Por tipo, status, semana, instrutor e busca textual
- Processamento em Background: Importação de grandes volumes de dados
- Responsivo: Funciona perfeitamente em desktop, tablet e mobile
- Node.js 16.x ou superior
- PostgreSQL 12.x ou superior
- npm ou yarn
- Node.js 18.x ou superior (para Next.js 15)
- npm ou yarn
git clone https://github.com/seu-usuario/adalove-cards-reimaginated.git
cd adalove-cards-reimaginated# Navegar para o diretório do servidor
cd server
# Instalar dependências
npm install
# Configurar variáveis de ambiente
cp .env.example .envEdite o arquivo .env com suas configurações:
# Configurações do Banco de Dados
DB_USER=seu_usuario_postgres
DB_HOST=localhost
DB_DATABASE=adalove2_db
DB_PASSWORD=sua_senha
DB_PORT=5432
DB_SSL=false
# Configurações do Servidor
PORT=3000
JWT_SECRET=seu_jwt_secret_muito_seguro# Em um novo terminal, navegar para o diretório do cliente
cd client
# Instalar dependências
npm install# Executar as migrações
npm run init-dbEste comando criará todas as tabelas necessárias conforme o esquema do AdaLove 2.0.
- Sistema de Login/Registro com validação robusta
- Autenticação JWT com tokens seguros de 7 dias
- Gerenciamento de Perfil com atualização de dados pessoais
- Alteração de Senha com verificação de senha atual
- Dashboard Interativo com estatísticas em tempo real
- Cards de Progresso mostrando atividades por status
- Visualização Timeline cronológica das atividades
- Visualização em Tabela para análise comparativa
- Navegação por Semanas com indicadores visuais de progresso
- Filtros por Tipo de Atividade (Orientação, Instrução, Autoestudo, Artefatos)
- Filtros por Status (A fazer, Fazendo, Feito)
- Filtros por Semana (1-10 semanas do curso)
- Busca por Instrutor com correspondência parcial
- Busca Textual em nomes e descrições de atividades
- Upload de Arquivos JSON com validação rigorosa
- Processamento em Background para grandes volumes
- Monitoramento de Progresso em tempo real
- Histórico de Importações com status detalhado
- Rate Limiting para proteção contra abuso
- Gráficos de Progresso Semanal com dados agregados
- Distribuição por Tipo de Atividade
- Tendências Mensais de conclusão
- Estatísticas Personalizadas por usuário
- Design Glassmorphism moderno e elegante
- Cores da Marca AdaLove (#E30614, #F24444)
- Interface Responsiva para todos os dispositivos
- Estados de Loading e feedback visual
- Empty States com orientações claras
- Animações Suaves e transições fluidas
- API RESTful completa com documentação
- Validação de Dados client-side e server-side
- Tratamento de Erros robusto
- Logs de Sistema com Winston
- Testes Automatizados com Jest
- CORS Configurado para desenvolvimento e produção
Terminal 1 - Backend:
cd server
npm run dev
# Servidor rodando em http://localhost:3000Terminal 2 - Frontend:
cd client
npm run dev
# Interface rodando em http://localhost:3001Backend:
cd server
npm startFrontend:
cd client
npm run build
npm startnpm start- Inicia o servidor em modo produçãonpm run dev- Inicia com nodemon (desenvolvimento)npm run init-db- Inicializa o banco de dados
npm run dev- Inicia em modo desenvolvimento (porta 3001)npm run build- Gera build de produçãonpm start- Inicia build de produçãonpm run lint- Executa linting do código
adalove-cards-reimaginated/
├── client/ # Frontend Next.js
│ ├── src/
│ │ ├── app/ # App Router do Next.js
│ │ │ ├── components/ # Componentes React reutilizáveis
│ │ │ │ ├── ui/ # Componentes de interface
│ │ │ │ ├── selfstudy/ # Componentes específicos de autoestudo
│ │ │ │ └── dashboard/ # Componentes do dashboard
│ │ │ ├── dashboard/ # Página do dashboard
│ │ │ ├── login/ # Página de login
│ │ │ ├── register/ # Página de registro
│ │ │ ├── selfstudy/ # Página de autoestudos
│ │ │ └── globals.css # Estilos globais
│ │ ├── contexts/ # Contextos React (Auth, Theme)
│ │ └── lib/ # Utilitários e APIs
│ ├── public/ # Arquivos estáticos
│ ├── package.json # Dependências do frontend
│ └── tailwind.config.js # Configuração do Tailwind CSS
│
├── server/ # Backend Node.js/Express
│ ├── config/ # Configurações (banco, JWT)
│ ├── controllers/ # Controladores (lógica de negócio)
│ │ ├── authController.js # Autenticação e perfil
│ │ ├── studentActivityController.js # Atividades de estudante
│ │ ├── sectionController.js # Seções/turmas
│ │ └── dataImportController.js # Importação de dados
│ ├── models/ # Modelos de dados
│ │ ├── userModel.js # Modelo de usuários
│ │ ├── studentActivityModel.js # Modelo de atividades
│ │ ├── sectionModel.js # Modelo de seções
│ │ └── activityModel.js # Modelo de atividades base
│ ├── routes/ # Rotas da API
│ │ ├── authRoutes.js # Rotas de autenticação
│ │ ├── studentActivityRoutes.js # Rotas de atividades
│ │ ├── sectionRoutes.js # Rotas de seções
│ │ └── dataRoutes.js # Rotas de importação
│ ├── migrations/ # Scripts SQL do banco
│ ├── scripts/ # Scripts utilitários
│ ├── package.json # Dependências do backend
│ └── server.js # Arquivo principal do servidor
│
├── documentos/ # Documentação do projeto
│ ├── assets/ # Imagens e diagramas
│ └── wad.md # Web Application Document
│
├── readme.md # Este arquivo
└── test_apis.sh # Script de teste das APIsO AdaLove 2.0 utiliza PostgreSQL com um esquema otimizado para suportar a estrutura oficial do AdaLove 1.0:
users- Informações dos usuários (id UUID, username, email, senha hash)sections- Seções/turmas do AdaLove (projetos, orientadores, datas)activities- Atividades base de cada seção (nome, descrição, instrutor)student_activities- Relação estudante-atividade (status, notas, avaliações)activity_types- Tipos: Orientação, Instrução, Autoestudo, Artefatosstatus_types- Status: A fazer, Fazendo, Feito
- UUIDs como chaves primárias (compatibilidade com AdaLove 1.0)
- Relacionamentos bem definidos com foreign keys
- Índices otimizados para consultas frequentes
- Constraints para integridade dos dados
- Suporte a SSL para conexões seguras
Documentação Completa: Web Application Document (WAD)
- Next.js 15 - Framework React com App Router
- React 19 - Biblioteca de interface de usuário
- Tailwind CSS - Framework de estilização
- Framer Motion - Animações e transições
- Recharts - Gráficos e visualizações
- Axios - Cliente HTTP para APIs
- Node.js - Runtime JavaScript
- Express.js - Framework web
- PostgreSQL - Banco de dados relacional
- JWT - Autenticação com tokens
- bcrypt - Hash de senhas
- Multer - Upload de arquivos
- Winston - Sistema de logs
- ESLint - Linting de código
- Nodemon - Desenvolvimento com hot reload
- CORS - Configuração de segurança
- Rate Limiting - Proteção contra abuso
- WAD - Web Application Document - Documentação técnica completa
- API Documentation - Endpoints e exemplos
- Interface Documentation - Guia da interface
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
AdaLove 2.0 - Autoestudar ficou mais fácil!
