Acesso (produção): https://vitta-production.up.railway.app/
Vitta é um sistema web full‑stack (React frontend + Spring Boot backend + PostgreSQL) focado no apoio à saúde mental através de conversas e questionários básicos para acompanhamento psicológico masculino. O objetivo é oferecer uma interface para que homens possam solicitar atendimento, responder questionários de acompanhamento e conversar com especialistas de forma simples e segura com a clínica que frequenta.
- Cadastro e login de usuários com JWT.
- Perfis distintos:
USUARIO,ESPECIALISTA,ADM. - Solicitação de atendimento por usuário; especialistas recebem notificações em tempo real.
- Chat em tempo real entre usuário e especialista usando STOMP sobre SockJS.
- Questionários e formulários básicos para triagem e acompanhamento (ex.: escalas de humor, checklists de sintomas).
- Histórico de conversas e respostas a questionários para acompanhamento longitudinal (visível para o usuário e, quando autorizado, para o especialista).
- Endpoints administrativos para gestão de especialistas, usuários e conteúdo dos questionários.
- Persistência de dados em PostgreSQL (migrações com Flyway disponíveis no projeto).
- Abra
https://vitta-production.up.railway.app/no navegador. - Usuário final:
- Clique em Registrar para criar uma conta de usuário (forneça CPF, nome, email e senha).
- Faça Login com CPF ou email + senha.
- Responda questionários iniciais ou periódicos sugeridos pelo app para avaliar bem‑estar e sintomas.
- Solicite atendimento usando o botão correspondente na interface. Aguarde um especialista aceitar.
- Especialista:
- Faça login com suas credenciais.
- Visualize solicitações e triagens decorrentes dos questionários.
- Inscreva‑se no tópico de solicitações (
/topic/solicitacoes) — o frontend já faz isso automaticamente. - Aceite solicitações para iniciar conversas com usuários e acompanhe histórico e respostas a questionários para melhor contextualização do atendimento.
- Admin:
- Administradores (
ADM) têm endpoints restritos para criação de especialistas e manutenção.
- Administradores (
POST /api/usuarios/register— Registrar novo usuário (público).POST /api/usuarios/login— Login; retorna token JWT (público).GET /api/usuarios/whoami— Verifica autenticação e retorna info do principal.POST /api/usuarios/admin/create-specialist— Criar especialista (somenteADM).GET /api/usuarios/{cpf}— Buscar usuário por CPF.
Consulte o código em src/main/java/com/example/vitta/controller para a lista completa de endpoints e comportamento.
- Endpoint STOMP (SockJS):
wss(s)://vitta-production.up.railway.app/chat - O frontend usa
new SockJS('/chat')e em seguida STOMP para enviar/receber mensagens. - Autenticação STOMP: inclua o cabeçalho
Authorization: Bearer <token>no frameCONNECT. O servidor decodifica o JWT e atribuiROLE_<tipo>ao usuário. - Tópicos usados:
/topic/solicitacoes— broadcast para especialistas sobre novas solicitações (mensagens de tiposolicitacao,cancel,removed)./topic/chat/{userId}— canal privado de chat para conversa entre usuário e especialista.
Observação: o frontend já cuida da inscrição em tópicos e do envio do header Authorization no CONNECT.
- O sistema armazena conversas e respostas a questionários para fins de acompanhamento clínico; trata‑se de dados sensíveis — mantenha acesso controlado.
- Recomenda‑se configurar variáveis de ambiente e segredos (JWT secret, credenciais DB) no provedor (Railway) e não expor informações sensíveis publicamente.
- Considere políticas de retenção de dados e avisos de privacidade para usuários finais; este projeto não implementa uma política legal automaticamente.
- Contas
ADMpossuemtipo = "ADM"e a autoridadeROLE_ADM. - Existe um utilitário
scripts/create_admin.jsque cria uma conta ADM diretamente no banco (usa bcrypt para hash da senha). Em produção, execute o script apontando para aDATABASE_PUBLIC_URLdo Railway ou crie via SQL com hash bcrypt gerado localmente. - Recomendação: sempre fazer backup do banco antes de manipular dados em produção.
- Use o painel Railway → selecione o serviço
Vitta→Logspara visualizar boot, requests e erros. - Para investigar falhas (403/500), copie o request id mostrado nas respostas e procure o log correspondente no Railway.
VITTA/
├── vitta/ # Backend (Spring Boot)
│ ├── src/main/java/... # Controladores, serviços, config
│ ├── src/main/resources/static/ # arquivos estáticos (frontend build)
│ └── src/main/resources/db/migration/ # Flyway
├── vitta-frontend/ # Código React (origem do build)
├── scripts/
└── README.md
- Desenvolvedor/Manutenção: oustyy — https://github.com/oustyy
