Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Pró-Mata
  • wiki
  • Wiki
  • Gerencia

Last edited by Saccilotto Oct 19, 2025
Page history

Gerencia

Gerencia

Home Escopo Processo Sprints Design Arquitetura Repositorios Gerencia Banco de Dados

Ultima atualizacao: 19 de Outubro 2025

Visao Geral do Projeto

Termo de Abertura

Titulo do projeto: Pro-Mata

Semestre: 2025/2 - 2a-feira e 4a-feira - 17:30-19:00 (2JK4JK)

Justificativa: A plataforma digital de hotelaria para o Centro de Pesquisas e Protecao da Natureza (CPPN) Pro-Mata justifica-se pela necessidade de oferecer um canal eficiente, acessivel e integrado que facilite a gestao e o acesso aos diversos servicos disponibilizados pelo centro. Especificamente, busca criar uma ferramenta online que permita ampliar o publico, facilitar o processo de reservas, agendamento e planejamento, alem de promover maior transparencia e comodidade para os usuarios.

Objetivos: Desenvolver uma plataforma digital Web de hotelaria para o Centro de Pesquisas e Protecao da Natureza (CPPN) Pro-Mata, visando oferecer um sistema eficiente, acessivel e integrado para a gestao das reservas e servicos do centro.

Descricao em Alto Nivel

No escopo:

  • Identificacao do usuario externo: alunos e professores da PUCRS, alunos e professores de outras universidades e publico geral
  • Modulo administrativo: atualizacao de informacoes da plataforma, elaboracao de relatorios de multiplas reservas e emissao de confirmacoes
  • Modulo de reservas de hospedagem, atividades e demais servicos: usuarios externos e administrativos podem consultar disponibilidade de quartos (individuais e coletivos), laboratorios, salas multiuso e auditorio
  • Agendamento de atividades: trilhas interpretativas, visitas turisticas, retiros espirituais, cursos e eventos academicos
  • Acesso a diversas formas de pagamento com anexacao de comprovantes

Nao esta no escopo:

  • Integracao com portais de pagamento (gateways)

Tecnologia: Web (React 19 + NestJS)

Stakeholder e Orientacao

  • Stakeholder: Prof.Dr. Augusto Mussi Alvim
  • Professor Orientador: Prof.Dr. Edson Moreno

Equipe e Estrutura Organizacional

AGES IV (Gerenciamento de Projeto de Software)

  • Andre Sacilotto Santos
  • Arthur Pizzolatti Igansi
  • Eduarda Lodi Bertiz
  • Lucas Ulsenheimer Lantieri

Responsabilidades: Planejamento estrategico, monitoramento de sprints, facilitacao de cerimonias Scrum, gestao de riscos, documentacao (Wiki GitLab), comunicacao com stakeholder

Entregas: Wiki atualizada, atas de reunioes, retrospectivas documentadas, metricas de sprint, relatorios de progresso

AGES III (Arquitetura de Software)

  • Joao Henrique Pires Bergallo
  • Kayky BalleBoni Casagrande

Responsabilidades: Definicao de arquitetura, setup CI/CD, code review, aprovacao de PRs, definicao de padroes tecnicos, gestao de infraestrutura

Entregas: Documentacao de arquitetura, pipelines CI/CD funcionais, aprovacoes de PRs, padroes de codigo definidos

AGES II (Analise e Projeto de BD)

  • Guilherme Dentzien
  • Henrique Pinho Valente Schultz
  • Jayme Eduardo Fortes
  • Rafaela do Nascimento Mello
  • Samuel Ribeiro Bitdinger

Responsabilidades: Modelagem de banco de dados, analise de requisitos, criacao de migrations, otimizacao de queries, validacao de regras de negocio

Entregas: Modelo ER, schema Prisma, migrations, documentacao de BD, validacao de user stories

AGES I (Desenvolvimento de Software)

  • Felipe Prunes Rambor
  • Matias Stockey Pereira
  • Pedro Costa Widholzer

Responsabilidades: Implementacao de funcionalidades, testes unitarios e de integracao, correcao de bugs, desenvolvimento frontend e backend

Entregas: Codigo funcional, testes com cobertura ≥70%, correcoes de bugs, implementacao de user stories


Matriz de Responsabilidade (RACI)

Atividade AGES I AGES II AGES III AGES IV
Documentacao Wiki I I C R/A
Planejamento Sprint C C C R/A
Analise Requisitos I R C A
Modelagem BD I R/A C I
Arquitetura Sistema I C R/A I
Desenvolvimento Backend R C C I
Desenvolvimento Frontend R C C I
Code Review P P R/A C
Testes Unitarios R C C I
Testes Integracao R C A I
CI/CD Setup I I R/A C
Deploy Producao I I R A
Gestao Riscos C C C R/A
Comunicacao Stakeholder I I C R/A
Retrospectiva P P P R

Legenda:

  • R (Responsavel): Executa a atividade
  • A (Aprovador): Autoridade final de aprovacao
  • C (Consultado): Fornece input especializado
  • I (Informado): Recebe atualizacoes
  • P (Participa): Colabora ativamente

Metodologia Scrum

Framework: Scrum com sprints de ~3 semanas (varia conforme calendario academico)

Cerimônias

Cerimonia Quando Duracao Horario Participantes Responsavel
Planning Inicio da sprint 2h 17:30 Toda equipe AGES IV
Daily 2a, 4a e sab ~10min 17:40 (2a/4a presencial) Equipe dev AGES IV
Review Fim da sprint 1h 17:30 Equipe + Stakeholder AGES IV
Retrospective Apos Review 1h Apos Review Toda equipe AGES IV
Code Review Meeting Sexta pre-entrega 1-1.5h A definir AGES I/II/III AGES III

Daily - 3 Perguntas

  1. O que fiz desde a ultima daily?
  2. O que farei ate a proxima?
  3. Ha impedimentos?

Observacao:

  • Dailys presenciais ocorrem em aulas (2a e 4a-feira, 17:30)
  • Dailys de sabado via Discord por texto (organizadas via eventos Discord em canal especifico)
  • Nao sao diarias como em Scrum tradicional, adaptacao ao calendario academico

Calendario e Sprints

Calendario Academico 2025/2

O projeto segue o calendario academico da PUCRS com sprints de aproximadamente 3 semanas:

Sprint Periodo Duracao Foco
Sprint 0 30/7 - 20/8 4 semanas Planejamento de User Stories e Mockups
Sprint 1 6/8 - 27/8 3 semanas Validacao User Stories e Planejamento/Efetivacao de Arquitetura e Ambientes Dev
Sprint 2 27/8 - 17/9 3 semanas Melhoria de Processos e Artefatos de Entrega e Proposta de novas User Stories
Sprint 3 17/9 - 8/10 3 semanas Melhoria de Processos e Artefatos da ultima entrega e proposta de novas User Stories
Sprint 4 8/10 - 29/10 3 semanas Finalizacao do MVP e Retrospectiva de Aprendizados

Observacoes:

  • Sprint 0 e preparatoria (4 semanas)
  • Sprints 1-4 seguem duracao de ~3 semanas
  • Datas podem variar conforme feriados e calendario academico
  • Code Freeze: 2 dias antes de cada Sprint Review
  • Ver Sprints para detalhamento de cada sprint

Marcos (Milestones)

Marco Sprint Semana Descricao
M1 0 ~4 Arquitetura aprovada + ambiente configurado
M2 1 ~6 Autenticacao + CRUD experiencias funcionais
M3 2 ~9 Fluxo reserva completo (MVP)
M4 3 ~13 Sistema completo com notificacoes
M5 4 ~18 Deploy producao + documentacao

Estrutura Analitica do Projeto (EAP)

1. Pro-Mata
   1.1 Gestao
       1.1.1 Planejamento
       1.1.2 Documentacao (Wiki GitLab)
       1.1.3 Monitoramento (GitLab Issues/GitHub Projects)

   1.2 Arquitetura
       1.2.1 Definicao
       1.2.2 Setup CI/CD (GitHub Actions)
       1.2.3 Deploy AWS (S3 + EC2)
       1.2.4 Infraestrutura Backup (Azure/Terraform - repositorio pessoal)

   1.3 Backend (API REST)
       1.3.1 Autenticacao JWT
       1.3.2 Gestao Reservas
       1.3.3 Gestao Experiencias (Quartos/Espacos/Atividades)
       1.3.4 Gestao Usuarios (PUCRS/Externa)
       1.3.5 Gestao Comprovantes
       1.3.6 Relatorios Administrativos
       1.3.7 Notificacoes
       1.3.8 Analytics (Umami)

   1.4 Frontend (Web)
       1.4.1 Login/Registro
           1.4.1.1 Usuarios PUCRS
           1.4.1.2 Usuarios Externos
       1.4.2 Dashboard Usuario
       1.4.3 Sistema Reservas
           1.4.3.1 Hospedagem (Quartos)
           1.4.3.2 Espacos (Lab, Auditorio, Salas)
           1.4.3.3 Atividades (Trilhas, Eventos)
       1.4.4 Upload Comprovantes
       1.4.5 Painel Administrativo
           1.4.5.1 Gestao Reservas
           1.4.5.2 Relatorios
           1.4.5.3 Confirmacoes
       1.4.6 Responsividade

   1.5 Banco de Dados
       1.5.1 Modelagem
       1.5.2 Migrations (Prisma)
       1.5.3 Seeds (dados teste)

   1.6 Testes
       1.6.1 Unitarios (70%+ cobertura)
       1.6.2 Integracao (Vitest + MSW)
       1.6.3 E2E (Playwright)

   1.7 Documentacao
       1.7.1 Wiki GitLab (manual)
       1.7.2 README repos GitLab/GitHub
       1.7.3 API Docs (Swagger)
       1.7.4 Manual Usuario

Gestao de Tarefas

Workflow: GitLab como Oficial, GitHub como Desenvolvimento

O projeto utiliza GitLab como plataforma oficial (requisito institucional AGES):

GitLab (Oficial - tools.ages.pucrs.br):

  • Repositorios: Codigo-fonte oficial (mirror sincronizado)
  • Wiki: Documentacao centralizada
  • Issues: Mirror automatico das issues do GitHub (sincronizacao simplificada)
  • Requisito: Padrao institucional AGES

GitHub (Desenvolvimento - AGES-Pro-Mata):

  • Repositorios: Desenvolvimento ativo
  • Projects: Kanban privado (restrito a membros da org)
  • Issues: Gestao de tarefas principal
  • CI/CD: GitHub Actions (pipelines de deploy)
  • Code Review: Pull Requests

Sincronizacao Automatica GitHub → GitLab:

  • Codigo: Mirror completo (branches, commits, tags)
  • Issues: Sincronizacao simplificada das issues privadas do GitHub
  • Frequencia: A cada commit/issue criada ou atualizada
  • Link GitLab Issues: https://tools.ages.pucrs.br/groups/pro-mata/-/issues

Motivacao da estrutura hibrida:

  • Equipe utiliza GitHub para desenvolvimento diario (familiaridade, ferramentas, Projects privado)
  • GitLab atende requisitos institucionais AGES (padrao, auditoria, transparencia)
  • Sincronizacao automatica garante conformidade sem duplicar trabalho manual

Board Kanban

Ferramenta: GitHub Projects (privado - https://github.com/orgs/AGES-Pro-Mata/projects/1)

Colunas do Board

Backlog → To Do → In Progress → Review → Done

Observacao: Board visivel apenas para membros da organizacao AGES-Pro-Mata no GitHub.


Git Flow e Processos

Estrutura de Branches

main (producao)
  ↑
develop (integracao)
  ↑
feature/[id]-[descricao]

Nao usamos: hotfix/* (ajustes vao na proxima sprint)

Workflow de Desenvolvimento

  1. Criar branch (GitHub): git checkout -b feature/t42-login-jwt
  2. Desenvolver com commits semanticos
  3. Push: git push origin feature/t42-login-jwt
  4. Abrir PR (GitHub) para develop
  5. Code Review: Minimo 2 aprovacoes (AGES III/IV)
  6. CI passa: GitHub Actions valida testes
  7. Merge e delete da branch
  8. Sincronizacao: GitHub → GitLab (automatica via GitHub Actions)

Commits Semanticos (Conventional Commits)

feat: nova funcionalidade
fix: correcao de bug
docs: documentacao
style: formatacao (sem mudanca logica)
refactor: refatoracao de codigo
test: adicao/correcao de testes
chore: manutencao (deps, config)

Exemplos:

  • feat: adiciona autenticacao JWT no backend
  • fix: corrige validacao de datas em reservas
  • docs: atualiza README com instrucoes de setup

Code Review - Checklist

Revisores devem verificar:

  • Codigo limpo e legivel
  • Testes adequados (cobertura mantida/aumentada)
  • Documentacao necessaria (README, comentarios complexos)
  • Segue padroes do projeto (ESLint, Prettier)
  • Tratamento de erros adequado
  • Validacoes de entrada
  • Concordancia com criterios de aceitacao/padroes de desenvolvimento
  • Documentacao Swagger atualizada (endpoints de API)
  • Acessibilidade verificada (frontend)

SLA: PRs abertos ate 2 dias antes da entrega serao revisados a tempo.


CI/CD - GitHub Actions

Pipeline de CI

Trigger: Push em qualquer branch, PR para develop ou main

Jobs:

  1. Lint: ESLint + Prettier
  2. Test:
    • Backend: Jest (unit + integration)
    • Frontend: Vitest (unit + integration com MSW)
  3. Build: Compilacao TypeScript

Requisito: Pipeline deve passar (green) para merge.

Pipeline de CD

Trigger: Merge em main

Deploy Atual (AWS Simplificado):

  • Frontend: AWS S3 static hosting (TanStack Router file-based routing)
  • Backend: AWS EC2 (Docker container)
  • Database: PostgreSQL (container na EC2)
  • Outros Servicos: Umami, Metabase (containers na EC2)
  • Publicacao: Imagens Docker publicadas no Docker Hub a cada deploy

Motivacao da transicao:

  • Simplificacao operacional (reducao de complexidade de manutencao)
  • Vantagens do S3 para aplicacoes SPA (React + TanStack Router)
  • Descentralizacao de conhecimento (infraestrutura anterior concentrada em AGES IV)
  • Facilidade de manutencao para equipe

Infraestrutura de Backup (Azure/AWS Multi-Cloud)

Repositorio: https://github.com/Saccilotto/pro-mata-infra (pessoal - André Sacilotto)

Stack:

  • IaC: Terraform (provisionamento VMs/EC2)
  • CaC: Ansible (configuracao Docker Swarm)
  • Orquestracao: Docker Swarm (multi-cloud)
  • Proxy/LB: Traefik v3 (reverse proxy + SSL)
  • Observabilidade: Prometheus + Grafana
  • Dominio: Cloudflare + registro.br
  • Multi-Cloud: Azure VMs (Terraform state em Blob Storage) + AWS EC2 (state em S3)

Status:

  • Standby: Backup funcional, nao utilizado em producao atual
  • Ativacao: Configuracao de variaveis apontando para Azure ou AWS
  • Sincronizacao: Consome imagens Docker Hub atualizadas pelo CI/CD principal
  • Tolerancia a Falhas: Redundancia geografica multi-cloud disponivel se necessario

Observacao sobre Gestao de Riscos:

  • Risco Mitigado: Falha critica em infraestrutura AWS (baixa probabilidade, alto impacto)
  • Estrategia: Infraestrutura backup pronta para ativacao (Recovery Time Objective < 4h)
  • Trade-off: Decisao de simplificar operacao atual vs. manter redundancia ativa
  • Aprendizado: Importancia de descentralizar conhecimento critico (bus factor)

Sincronizacao GitHub → GitLab

Automatica via GitHub Actions:

  • Trigger: Push em main ou develop
  • Action: Mirror para GitLab (tools.ages.pucrs.br/pro-mata)
  • Frequencia: A cada commit

Comunicacao

Plano de Comunicacao

Evento Responsavel Envolvidos Frequencia Duracao Plataforma
Kickoff Projeto AGES IV Todos + Stakeholder Inicio semestre 2h Presencial
Daily (2a/4a) AGES IV Equipe dev 2x semana 15min Presencial (aula)
Daily (Sab) AGES IV Equipe dev Semanal 15min Discord (texto)
Sprint Planning AGES IV Toda equipe Inicio sprint 2h Presencial/Meet
Sprint Review AGES IV Todos + Stakeholder Fim sprint 1h Discord Discord/Meet
Retrospectiva AGES IV Toda equipe Fim sprint 1h Discord/Meet
Code Review Meeting AGES III AGES I/II/III Sexta pre-entrega 1-1.5h Discord
Reuniao Stakeholder AGES IV AGES IV + Stakeholder Ad-hoc 30min-1h Email/Meet

Canais de Comunicacao

  • GitHub Issues/PR: Comunicacao tecnica assincrona
  • Discord: Chat rapido, duvidas, avisos, dailys de sabado (eventos + canal texto)
  • WhatsApp: Comunicacao urgente
  • Email: Comunicacao formal com stakeholder/orientador
  • GitLab Wiki: Documentacao centralizada

Reunioes com Stakeholder

  • Frequencia: Sprint Review (fim de cada sprint) + ad-hoc quando necessario
  • Formato: Demo ao vivo + Q&A + Validacao proximo ciclo
  • Duracao: 1h (Review), 30min-1h (ad-hoc)
  • Presenca: Prof. Augusto Mussi Alvim

Riscos e Mitigacoes

Matriz de Riscos

# Risco Prob. (0-10) Impacto (0-10) Exposicao Responsavel Mitigacao
R1 Mudancas de escopo 6 8 48 AGES IV Backlog bem definido, validacao constante com stakeholder, revisao em Review
R2 Dificuldades tecnicas 6 6 36 AGES III Pareamento (pair programming), suporte AGES III/IV, documentacao detalhada
R3 Indisponibilidade membros (provas/trabalhos academicos) 8 6 48 AGES IV Calendario academico compartilhado, tarefas distribuidas, documentacao codigo
R4 Atraso entregas 6 8 48 AGES IV Monitoramento daily, sprints 3 semanas permitem ajustes, buffer em marcos
R5 Bugs producao 4 9 36 AGES III Testes automatizados (70%+), code review obrigatorio (2 aprovacoes)
R6 Integracao PUCRS falhar 3 6 18 AGES III Mock de dados, testes sem dependencias externas, validacao early
R7 Calendario academico 8 5 40 AGES IV Sprints flexiveis (3 semanas), buffer em marcos, adaptacao cerimônias
R8 Falha infraestrutura AWS 2 9 18 AGES III Backup multi-cloud (Azure) standby, monitoramento (Prometheus/Grafana)
R9 Concentracao conhecimento 7 7 49 AGES IV Documentacao detalhada, code review disseminando conhecimento, pareamento
R10 Comunicacao stakeholder 4 7 28 AGES IV Reviews regulares, comunicacao proativa, validacao incremental

Escala:

  • Probabilidade: 0 (improvavel) - 10 (certo)
  • Impacto: 0 (insignificante) - 10 (catastrofico)
  • Exposicao: Probabilidade × Impacto
  • Atencao: Exposicao ≥40 requer monitoramento ativo

Plano de Respostas a Riscos

R1 - Mudancas de Escopo (Exposicao: 48)

Estrategia: Mitigar

  • Backlog bem definido e priorizado com stakeholder
  • Validacao constante em Sprint Reviews
  • Change control: mudancas significativas requerem aprovacao formal
  • Responsavel: AGES IV

R3 - Indisponibilidade de Membros (Provas/Trabalhos Academicos) (Exposicao: 48)

Estrategia: Aceitar + Mitigar

  • Calendario academico compartilhado (provas G1/G2, entregas outras disciplinas)
  • Distribuicao de tarefas criticas entre multiplos membros
  • Documentacao de decisoes tecnicas na Wiki
  • Pareamento para disseminar conhecimento
  • Planejamento considerando periodos de sobrecarga academica
  • Responsavel: AGES IV

R4 - Atraso em Entregas (Exposicao: 48)

Estrategia: Mitigar

  • Monitoramento diario de progresso (burndown)
  • Sprints de 3 semanas permitem ajustes mid-sprint
  • Buffer de 2-3 dias em marcos criticos
  • Priorização rigorosa de backlog
  • Responsavel: AGES IV

R9 - Concentracao de Conhecimento (Exposicao: 49)

Estrategia: Mitigar

  • Documentacao detalhada de arquitetura e decisoes tecnicas
  • Code review obrigatorio (2 aprovacoes) para disseminar conhecimento
  • Pareamento em tarefas criticas
  • Rotacao de responsabilidades quando possivel
  • Nota: Infraestrutura backup criada para mitigar dependencia de unico membro (Andre Sacilotto)
  • Responsavel: AGES IV

Metricas e Monitoramento

Metricas de Sprint

Velocity (Story Points por Sprint):

  • Meta: Estabilizar apos 2-3 sprints
  • Medicao: Total de story points completados por sprint
  • Uso: Planejamento de capacidade futura

Burndown Chart:

  • Medicao: Story points restantes por dia de sprint
  • Uso: Identificar desvios early, ajustar scope mid-sprint

Lead Time de Issues:

  • Definicao: Tempo de "To Do" → "Done"
  • Meta: ≤ 7 dias para issues de tamanho medio
  • Uso: Identificar gargalos no fluxo

Metricas de Qualidade

Cobertura de Testes:

  • Meta: ≥70% linhas/funcoes, ≥60% branches
  • Medicao: Vitest (frontend), Jest (backend)
  • Bloqueio: PR nao pode diminuir cobertura

Taxa de Aprovacao em Code Review:

  • Meta: ≥90% PRs aprovados na primeira revisao
  • Medicao: PRs aprovados / PRs totais
  • Uso: Avaliar qualidade do codigo antes de PR

Tempo de Code Review:

  • Meta: ≤2 dias uteis
  • SLA: PRs abertos ate 2 dias antes de entrega
  • Medicao: Tempo entre abertura e merge de PR

Metricas de Deploy

Frequencia de Deploy:

  • Medicao: Merges em main por semana
  • Meta: 1-2 deploys por sprint (entregas incrementais)

Taxa de Sucesso de Deploy:

  • Meta: ≥95% deploys sem rollback
  • Medicao: Deploys bem-sucedidos / total deploys

Tempo de Recovery (MTTR):

  • Meta: ≤4h (infraestrutura backup disponivel)
  • Medicao: Tempo entre falha detectada e restauracao do servico

Satisfacao

Stakeholder:

  • Medicao: Feedback qualitativo apos cada Sprint Review
  • Acao: Ajustes de backlog baseados em feedback

Equipe:

  • Medicao: Retrospectiva com acoes documentadas
  • Acao: Implementacao de melhorias de processo

Review Metricas: A cada retrospectiva (fim de sprint)


Stack Tecnologico

Frontend

  • Framework: React 19
  • Linguagem: TypeScript (strict mode)
  • Build Tool: Vite 6
  • Roteamento: TanStack Router (file-based routing)
  • Estado:
    • Server State: TanStack Query
    • UI State: Zustand
  • Estilizacao: Tailwind CSS 4
  • Componentes UI: Shadcn/UI + Radix UI
  • Formularios: React Hook Form + Zod
  • HTTP Client: Axios (interceptor JWT)
  • Testes:
    • Unit/Integration: Vitest
    • Mocking: MSW (Mock Service Worker)
    • E2E: Playwright
  • Lint/Format: ESLint + Prettier
  • Analytics: Umami (privacy-respecting)

Backend

  • Runtime: Node.js 22+
  • Framework: NestJS
  • Linguagem: TypeScript (strict mode)
  • ORM: Prisma (PostgreSQL)
  • Autenticacao: JWT (@nestjs/jwt)
  • Hashing: argon2 (argon2id)
  • Validacao: Zod + nestjs-zod
  • Documentacao API: Swagger (@nestjs/swagger)
  • Testes: Jest + ts-jest + supertest
  • Lint/Format: ESLint + Prettier
  • Analytics: @umami/node

Banco de Dados

  • SGBD: PostgreSQL 15
  • ORM: Prisma
  • Migrations: Prisma Migrate
  • Modelagem: Ver Banco de Dados

Infraestrutura (Producao Atual)

  • Hospedagem Frontend: AWS S3 static hosting
  • Hospedagem Backend: AWS EC2 (Ohio - us-east-2)
  • Containerizacao: Docker
  • Banco de Dados: PostgreSQL (container EC2)
  • Servicos Adicionais:
    • Umami Analytics (container EC2)
    • Metabase BI (container EC2)
  • CI/CD: GitHub Actions
  • Registry: Docker Hub (imagens publicas)
  • Repositorios Desenvolvimento: GitHub (AGES-Pro-Mata)
  • Repositorios Oficiais: GitLab (tools.ages.pucrs.br/pro-mata)
  • Documentacao: GitLab Wiki

Infraestrutura de Backup (Standby)

  • IaC: Terraform (Azure Blob Storage / AWS S3 state)
  • CaC: Ansible
  • Orquestracao: Docker Swarm
  • Proxy/LB: Traefik v3 (reverse proxy + SSL Let's Encrypt)
  • Observabilidade: Prometheus + Grafana
  • Multi-Cloud: Azure VMs + AWS EC2
  • CDN/WAF: Cloudflare
  • Dominio: registro.br
  • Repositorio: https://github.com/Saccilotto/pro-mata-infra (pessoal)

Ferramentas de Gestao

  • Board: GitHub Projects (privado - AGES-Pro-Mata org)
  • Issues: GitHub Issues (desenvolvimento)
  • Wiki: GitLab Wiki (oficial)
  • Chat: Discord (dailys sabado, code review) + WhatsApp (urgencias)
  • Reunioes: Discord Voice + Presencial
  • Email: Comunicacao formal stakeholder/orientador

Links Rapidos

Repositorios Oficiais (GitLab - tools.ages.pucrs.br)

  • Frontend: https://tools.ages.pucrs.br/pro-mata/frontend
  • Backend: https://tools.ages.pucrs.br/pro-mata/backend
  • Infraestrutura: https://tools.ages.pucrs.br/pro-mata/infrastructure
  • Wiki: https://tools.ages.pucrs.br/pro-mata/wiki/-/wikis/home

Repositorios Desenvolvimento (GitHub - AGES-Pro-Mata)

  • Frontend: https://github.com/AGES-Pro-Mata/frontend
  • Backend: https://github.com/AGES-Pro-Mata/backend
  • Projects: https://github.com/orgs/AGES-Pro-Mata/projects/1 (privado)

Infraestrutura Backup

  • Infra Multi-Cloud: https://github.com/Saccilotto/pro-mata-infra (pessoal - Andre Sacilotto)

Wiki (GitLab)

  • Home
  • Escopo
  • Processo
  • Sprints
  • Design
  • Arquitetura
  • Repositorios
  • Banco de Dados

Links Externos

  • Site AGES
  • CPPN Pro-Mata
  • Projeto Pro-Mata AGES

Convencoes e Padroes

Nomenclatura

Branches:

  • feature/[numero-issue]-[descricao-curta]
  • Exemplo: feature/42-login-jwt

Commits:

  • Seguir Conventional Commits
  • Mensagens em ingles
  • Imperativo (add, fix, update)

Issues:

  • Titulo claro e objetivo
  • Labels apropriadas
  • Criterios de aceitacao definidos

Qualidade de Codigo

  • Linting: ESLint (erros = bloqueio)
  • Formatacao: Prettier (automatico)
  • TypeScript: Strict mode habilitado
  • Documentacao: JSDoc para funcoes complexas
  • Cobertura Testes: ≥70% linhas/funcoes, ≥60% branches

Definicao de Pronto (DoD)

Uma task so esta DONE quando:

  • Codigo implementado e funcional
  • Testes unitarios/integracao escritos e passando
  • Cobertura de testes mantida ou aumentada (≥70%)
  • Code review aprovado (minimo 2 aprovacoes)
  • CI pipeline passando (green)
  • Documentacao Swagger atualizada (endpoints de API)
  • Merge realizado em develop
  • Issue/PR fechada no GitHub
  • Sincronizacao confirmada no GitLab (mirror)

Proximos Passos

Imediatos (Concluidos)

  • Estruturar repositorios GitLab/GitHub
  • Configurar GitHub Projects (Kanban)
  • Setup CI/CD (GitHub Actions)
  • Criar pagina de gerencia (Wiki GitLab)
  • Definir horarios fixos das cerimonias
  • Criar template de issues/PRs
  • Popular backlog inicial

Sprint 0 (Concluidos)

  • Levantamento detalhado de requisitos
  • Definir arquitetura tecnica
  • Setup ambiente desenvolvimento
  • Criar mockups iniciais (Figma)
  • Modelagem banco de dados

Sprint 1 (To Do)

Pendencias e Melhorias

  • Criar EAP visual (diagrama - Miro/Lucidchart)
  • Formalizar Termo de Abertura em PDF
  • Adicionar metricas de velocity ao monitoramento
  • Documentar retrospectivas de cada sprint
  • Revisar e atualizar matriz de riscos a cada sprint

Clone repository
  • Arquitetura
  • Banco de Dados
  • Design
  • Escopo
  • Gerencia
  • Home
  • Processo
  • Repositórios
  • Sprints