Partilhar: WhatsApp
aulify · Mini-Projecto
UC UC00664 · T. Desenv. Software, T. Sist. Comp. Redes, T. Multimédia
Versão · Aluno

Mini-Projecto · Sistema com NoSQL

MongoDB + Redis + (opcional Elasticsearch)
⏱ Duração estimada: 16 horas (≈ 10 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma aplicação backend completa que usa NoSQL apropriadamente: MongoDB como BD primária, Redis para cache, e opcionalmente Elasticsearch para search. Cenários:

Requisitos

Funcionais

  1. MongoDB como BD principal (≥ 3 collections com relações).
  2. Redis para pelo menos 2 use cases (cache, sessions, rate limiting, pub/sub, leaderboard).
  3. API REST (Python FastAPI / Node Express / etc.).
  4. CRUD completo em ≥ 2 entidades.
  5. Aggregation pipeline com pelo menos 1 query não-trivial.
  6. Indexes apropriados em MongoDB.
  7. Validação de inputs e error handling.

Não-funcionais

  1. Docker compose para spin up de tudo (Mongo + Redis + app).
  2. Cost monitoring: log de queries lentas.
  3. README com setup, endpoints, exemplos.
  4. Tests mínimos (pytest / jest).
  5. GitHub com commits regulares.
  6. Apresentação + demo.

Fases

Fase 1 · Design + setup (2h)

Fase 2 · MongoDB CRUD (4h)

Fase 3 · Aggregations + indexes (2h)

Fase 4 · Redis cache (2h)

Fase 5 · Redis feature extra (2h)

Fase 6 · Search (opcional Elasticsearch) (2h)

Fase 7 · Tests + README (1h)

Fase 8 · Apresentação (1h)

Critérios de avaliação

Item Peso
Modelagem MongoDB 15%
CRUD + validação 15%
Aggregation + indexes 15%
Redis cache 15%
Redis feature extra 10%
API design 10%
Docker setup 5%
Tests 5%
README + apresentação 10%

Reflexão

Em meia página: como decidiste embed vs reference? Que endpoint beneficiou mais do cache (medir antes/depois)? Que erro de modelagem corrigiste a meio? Sentes que MongoDB substitui PostgreSQL? Em que projecto real escolherias NoSQL vs SQL?