|
| [Home](Home) | [**Escopo**](Escopo) | [Processo](Processo) | [Sprints](Sprints) | [Design](Design) | [Arquitetura](Arquitetura) | [Repositórios](Repositórios) | [Banco de Dados](Banco de Dados) |
|
|
# Escopo
|
|
| :----------: | :-------------------------------: | :------------------: | :--------------: | :--------------------------: | :--------------------: | :------------------------: | :--------------: | |
|
|
|
\ No newline at end of file |
|
| [Home](Home) | [**Escopo**](Escopo) | [Processo](Processo) | [Sprints](Sprints) | [Design](Design) | [Arquitetura](Arquitetura) | [Repositorios](Repositorios) | [Gerencia](Gerencia) | [Banco de Dados](Banco-de-Dados) |
|
|
|
|
| :----------: | :-------------------------------: | :------------------: | :--------------: | :--------------------: | :--------------------------: | :------------------------: | :---------------: | :--------------: |
|
|
|
|
|
|
|
|
## Escopo do Projeto
|
|
|
|
|
|
|
|
> Última atualização: 19 de Outubro 2025
|
|
|
|
|
|
|
|
## Visão Geral
|
|
|
|
|
|
|
|
O projeto **Pró-Mata** consiste no desenvolvimento de uma plataforma digital de hotelaria para o Centro de Pesquisas e Proteção da Natureza (CPPN) Pró-Mata, visando oferecer um sistema eficiente, acessível e integrado para a gestão das reservas e serviços do centro.
|
|
|
|
|
|
|
|
## Objetivo do Projeto
|
|
|
|
|
|
|
|
Desenvolver uma plataforma Web que:
|
|
|
|
|
|
|
|
- Facilite o processo de reservas, agendamento e planejamento
|
|
|
|
- Amplie o público alcançado pelo centro
|
|
|
|
- Promova maior transparência e comodidade para os usuários
|
|
|
|
- Otimize a organização interna do CPPN Pró-Mata
|
|
|
|
- Aprimore a experiência do visitante
|
|
|
|
|
|
|
|
## Escopo do Produto
|
|
|
|
|
|
|
|
### No Escopo
|
|
|
|
|
|
|
|
#### 1. Identificação de Usuários
|
|
|
|
|
|
|
|
- **Alunos e professores da PUCRS**: Acesso com identificação institucional
|
|
|
|
- **Alunos e professores de outras universidades**: Cadastro com validação acadêmica
|
|
|
|
- **Público geral**: Cadastro aberto para visitantes
|
|
|
|
|
|
|
|
#### 2. Módulo Administrativo
|
|
|
|
|
|
|
|
- Atualização de informações da plataforma
|
|
|
|
- Elaboração de relatórios de múltiplas reservas
|
|
|
|
- Emissão de confirmações de reserva
|
|
|
|
- Gestão de usuários (criação, edição, inativação)
|
|
|
|
- Gestão de experiências (quartos, espaços, atividades)
|
|
|
|
- Verificação de solicitações de professores
|
|
|
|
|
|
|
|
#### 3. Módulo de Reservas
|
|
|
|
|
|
|
|
**Hospedagem:**
|
|
|
|
|
|
|
|
- Consulta de disponibilidade de quartos individuais e coletivos
|
|
|
|
- Reserva de quartos com datas de check-in/check-out
|
|
|
|
- Visualização de capacidade e características dos quartos
|
|
|
|
|
|
|
|
**Espaços:**
|
|
|
|
|
|
|
|
- Laboratórios
|
|
|
|
- Salas multiuso
|
|
|
|
- Auditório
|
|
|
|
|
|
|
|
**Atividades:**
|
|
|
|
|
|
|
|
- Trilhas interpretativas
|
|
|
|
- Visitas turísticas
|
|
|
|
- Retiros espirituais
|
|
|
|
- Cursos e eventos acadêmicos
|
|
|
|
|
|
|
|
#### 4. Sistema de Pagamento
|
|
|
|
|
|
|
|
- Acesso a diversas formas de pagamento
|
|
|
|
- Anexação de comprovantes de pagamento na submissão das reservas
|
|
|
|
- Armazenamento seguro de comprovantes
|
|
|
|
|
|
|
|
#### 5. Funcionalidades Técnicas
|
|
|
|
|
|
|
|
- Autenticação JWT com controle de papéis (usuário, admin)
|
|
|
|
- Validação de dados com Zod
|
|
|
|
- Documentação API com Swagger
|
|
|
|
- Testes automatizados (≥70% cobertura)
|
|
|
|
- Analytics com Umami (privacy-respecting)
|
|
|
|
- Deploy automatizado (CI/CD GitHub Actions)
|
|
|
|
|
|
|
|
### Fora do Escopo
|
|
|
|
|
|
|
|
- ❌ Integração com portais de pagamento (gateways como PagSeguro, MercadoPago)
|
|
|
|
- ❌ Aplicativo mobile nativo (apenas Web responsivo)
|
|
|
|
- ❌ Sistema de fidelidade ou pontos
|
|
|
|
- ❌ Chat em tempo real com administradores
|
|
|
|
- ❌ Integração com redes sociais
|
|
|
|
- ❌ Sistema de avaliações/reviews de experiências
|
|
|
|
|
|
|
|
## Público-Alvo
|
|
|
|
|
|
|
|
### Perfis de Usuário
|
|
|
|
|
|
|
|
| Perfil | Descrição | Necessidades Principais |
|
|
|
|
|--------|-----------|-------------------------|
|
|
|
|
| **Aluno PUCRS** | Estudante da PUCRS interessado em atividades acadêmicas/recreativas | Acesso rápido, reservas para grupos, preços institucionais |
|
|
|
|
| **Professor PUCRS** | Docente organizando atividades de ensino/pesquisa | Reservas de laboratórios, espaços para eventos, gestão de grupos |
|
|
|
|
| **Aluno/Professor Externo** | Acadêmicos de outras universidades | Validação institucional, informações sobre o centro |
|
|
|
|
| **Público Geral** | Visitantes interessados em ecoturismo/retiros | Informações sobre atividades, processo de reserva simples |
|
|
|
|
| **Administrador** | Funcionários do CPPN Pró-Mata | Gestão completa de reservas, relatórios, confirmações |
|
|
|
|
|
|
|
|
## Requisitos Funcionais (Resumo)
|
|
|
|
|
|
|
|
### RF01 - Autenticação e Cadastro
|
|
|
|
|
|
|
|
- Sistema de login com email e senha
|
|
|
|
- Cadastro de novos usuários (PUCRS e externos)
|
|
|
|
- Recuperação de senha via email (TODO: integração SES)
|
|
|
|
- Perfil de usuário editável
|
|
|
|
|
|
|
|
### RF02 - Gestão de Experiências (Admin)
|
|
|
|
|
|
|
|
- CRUD completo de experiências (quartos, espaços, atividades)
|
|
|
|
- Definição de capacidade, preços, horários disponíveis
|
|
|
|
- Categorização de experiências
|
|
|
|
|
|
|
|
### RF03 - Sistema de Reservas
|
|
|
|
|
|
|
|
- Busca de experiências por categoria, data, capacidade
|
|
|
|
- Carrinho de reservas
|
|
|
|
- Submissão de reserva com upload de comprovante
|
|
|
|
- Visualização de reservas do usuário
|
|
|
|
|
|
|
|
### RF04 - Gestão Administrativa
|
|
|
|
|
|
|
|
- Visualização de todas as reservas
|
|
|
|
- Aprovação/rejeição de reservas
|
|
|
|
- Verificação de solicitações de professores
|
|
|
|
- Geração de relatórios
|
|
|
|
|
|
|
|
### RF05 - Gestão de Usuários (Admin)
|
|
|
|
|
|
|
|
- Listagem de usuários
|
|
|
|
- Criação de usuários administrativos
|
|
|
|
- Inativação de usuários
|
|
|
|
|
|
|
|
## Requisitos Não-Funcionais
|
|
|
|
|
|
|
|
### RNF01 - Desempenho
|
|
|
|
|
|
|
|
- Tempo de resposta de API < 200ms (95th percentile)
|
|
|
|
- Frontend com carregamento inicial < 3s
|
|
|
|
- Suporte a 100 usuários simultâneos
|
|
|
|
|
|
|
|
### RNF02 - Segurança
|
|
|
|
|
|
|
|
- Autenticação JWT com tokens de curta duração
|
|
|
|
- Hashing de senhas com argon2id
|
|
|
|
- Validação de entrada em todas as rotas (Zod)
|
|
|
|
- HTTPS obrigatório em produção
|
|
|
|
|
|
|
|
### RNF03 - Usabilidade
|
|
|
|
|
|
|
|
- Interface responsiva (mobile, tablet, desktop)
|
|
|
|
- Acessibilidade WCAG 2.1 AA (quando aplicável)
|
|
|
|
- Feedback visual claro para ações do usuário
|
|
|
|
|
|
|
|
### RNF04 - Manutenibilidade
|
|
|
|
|
|
|
|
- Cobertura de testes ≥70%
|
|
|
|
- Documentação de API (Swagger)
|
|
|
|
- Código TypeScript com strict mode
|
|
|
|
- Linting e formatação automatizados (ESLint, Prettier)
|
|
|
|
|
|
|
|
### RNF05 - Disponibilidade
|
|
|
|
|
|
|
|
- Uptime desejado: 99% (tolerância a ~7h downtime/mês)
|
|
|
|
- Infraestrutura de backup disponível (RTO < 4h)
|
|
|
|
- Monitoramento com analytics (Umami)
|
|
|
|
|
|
|
|
## Tecnologias
|
|
|
|
|
|
|
|
### Frontend
|
|
|
|
|
|
|
|
- React 19 + TypeScript
|
|
|
|
- Vite 6
|
|
|
|
- TanStack Router + TanStack Query
|
|
|
|
- Tailwind CSS 4
|
|
|
|
- Shadcn/UI + Radix UI
|
|
|
|
- Vitest + Playwright
|
|
|
|
|
|
|
|
### Backend
|
|
|
|
|
|
|
|
- Node.js 22 + NestJS + TypeScript
|
|
|
|
- Prisma ORM + PostgreSQL 15
|
|
|
|
- JWT + argon2
|
|
|
|
- Swagger
|
|
|
|
- Jest
|
|
|
|
|
|
|
|
### Infraestrutura
|
|
|
|
|
|
|
|
- AWS S3 (frontend) + AWS EC2 (backend/database)
|
|
|
|
- Docker + Docker Hub
|
|
|
|
- GitHub Actions (CI/CD)
|
|
|
|
- GitLab (repositórios oficiais + wiki)
|
|
|
|
|
|
|
|
## Entregas
|
|
|
|
|
|
|
|
### Sprint 0 (Concluída)
|
|
|
|
|
|
|
|
- ✅ Arquitetura definida
|
|
|
|
- ✅ Modelagem de banco de dados
|
|
|
|
- ✅ Design das telas (Figma)
|
|
|
|
- ✅ Infraestrutura configurada
|
|
|
|
|
|
|
|
### Sprint 1 (Concluída)
|
|
|
|
|
|
|
|
- ✅ Fluxo de Login e Cadastro
|
|
|
|
- ✅ Home Page
|
|
|
|
- ✅ Tela de Criação de Experiências (Admin)
|
|
|
|
- ✅ Criação de Usuário (Admin)
|
|
|
|
|
|
|
|
### Sprint 2 (Concluída)
|
|
|
|
|
|
|
|
- ✅ Tela de Reservas
|
|
|
|
- ✅ Tela de Solicitações (Admin)
|
|
|
|
- ✅ Tela de Buscar Reservas
|
|
|
|
- ✅ Melhorias na Criação de Experiências
|
|
|
|
|
|
|
|
### Sprint 3 e 4 (Em Andamento/Planejado)
|
|
|
|
|
|
|
|
Ver [Sprints](Sprints) para detalhes atualizados.
|
|
|
|
|
|
|
|
## Restrições
|
|
|
|
|
|
|
|
- **Prazo**: Semestre 2025/2 (até final de Novembro)
|
|
|
|
- **Equipe**: 4 níveis AGES (I a IV) com responsabilidades distintas
|
|
|
|
- **Tecnologia**: Web apenas (sem mobile nativo)
|
|
|
|
- **Orçamento**: Infraestrutura AWS com custos controlados
|
|
|
|
- **Requisitos Institucionais**: Repositórios GitLab + sincronização GitHub
|
|
|
|
|
|
|
|
## Critérios de Aceitação Geral
|
|
|
|
|
|
|
|
O projeto será considerado bem-sucedido quando:
|
|
|
|
|
|
|
|
- ✅ Usuários conseguem se cadastrar e fazer login
|
|
|
|
- ✅ Usuários conseguem visualizar e reservar experiências
|
|
|
|
- ✅ Administradores conseguem gerenciar reservas e usuários
|
|
|
|
- ✅ Sistema está funcional em produção (AWS)
|
|
|
|
- ✅ Cobertura de testes ≥70%
|
|
|
|
- ✅ Documentação completa (Wiki + Swagger)
|
|
|
|
- ✅ Stakeholder valida funcionalidades em Sprint Reviews
|
|
|
|
|
|
|
|
## Próximos Passos
|
|
|
|
|
|
|
|
- [ ] Implementar envio de emails (integração SES)
|
|
|
|
- [ ] Completar funcionalidades de Sprint 3 e 4
|
|
|
|
- [ ] Refinamento de UX/UI baseado em feedback
|
|
|
|
- [ ] Otimizações de performance
|
|
|
|
- [ ] Documentação de manual do usuário
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
**Stakeholder**: Prof. Augusto Mussi Alvim
|
|
|
|
**Orientador**: Edson Moreno
|
|
|
|
**Gerência**: Ver [Gerencia](Gerencia) para estrutura completa da equipe e processos |