Projeto exemplar de gestão de utilizadores e tarefas, implementado em TypeScript. Inclui operações básicas (CRUD), associação de tarefas a utilizadores, e um conjunto de utilitários genéricos com testes unitários.
- Gestão de utilizadores (CRUD)
- Gestão de tarefas (CRUD)
- Associação de tarefas a utilizadores
- Utilitários genéricos (cache, favoritos, tags, paginação, etc.)
- Testes unitários com Vitest
- TypeScript
- Javascript
- Node JS
- Mysql Database
- Vitest (testes)
main.ts— ponto de entradaindex.html— template HTMLsrc/— código fonteassets/— imagens e recursos (incl. favicon)styles/— arquivos CSSmodels/— entidades (User, Task, etc.)tasks/— implementações de tarefas (BugTask, FeatureTask, Task)utils/— utilitários genéricos (EntityList, SimpleCache, Paginator...)services/— serviços da aplicaçãoui/— componentes e interface do utilizadorlogs/,notifications/,security/, etc.
testes/— testes unitários (Vitest)tsconfig.json— configuração TypeScriptvitest.config.ts— configuração de testesdist/— build compilado (gerado comnpm run build)
server.js— servidor Node.js/Expresspackage.json— dependênciasroutes/— rotas da APIusers.jstasks.jsprojects.jssprints.jscomments.jsnotifications.js
connectionsDB/— configuração de base de dadosconnectionDatabase.jsconnectionOptions.json
git clone https://github.com/dsanches06/M5_Mini_Projeto.git
cd M5_Mini_Projetocd frontend
npm installnpm run buildIsto irá:
- Compilar o TypeScript com
tsc - Copiar automaticamente
src/assets/esrc/styles/paradist/src/
cd backend
npm installEdite o arquivo backend/connectionsDB/connectionOptions.json com as credenciais da sua base de dados:
{
"host": "localhost",
"port": 3306,
"user": "seu_usuario",
"password": "sua_senha",
"database": "nome_da_database"
}O servidor conectará automaticamente à base de dados ao iniciar.
npm run startO servidor será iniciado em http://localhost:3000 (ou a porta configurada) e a base de dados conectada automaticamente.
O backend expõe as seguintes rotas (endpoints) para gerir utilizadores, tarefas, projetos e notificações:
GET /api/users— listar todos os utilizadoresGET /api/users/:id— obter um utilizador específicoPOST /api/users— criar novo utilizadorPUT /api/users/:id— atualizar utilizadorDELETE /api/users/:id— eliminar utilizador
GET /api/tasks— listar todas as tarefasGET /api/tasks/:id— obter uma tarefa específicaPOST /api/tasks— criar nova tarefaPUT /api/tasks/:id— atualizar tarefaDELETE /api/tasks/:id— eliminar tarefa
GET /api/projects— listar todos os projetosPOST /api/projects— criar novo projetoPUT /api/projects/:id— atualizar projetoDELETE /api/projects/:id— eliminar projeto
GET /api/sprints— listar todos os sprintsPOST /api/sprints— criar novo sprintPUT /api/sprints/:id— atualizar sprint
GET /api/comments— listar comentáriosPOST /api/comments— criar comentárioDELETE /api/comments/:id— eliminar comentário
GET /api/notifications— listar notificaçõesPOST /api/notifications— criar notificaçãoPUT /api/notifications/:id— marcar como lida
Danilson Sanches — @upskill217