Finalizado

Sorriso Harmony

Sorriso Harmony é um site web-back-end, onde os pacientes poderão conhecer os serviços oferecidos, ver fotos e vídeos de procedimentos, além de agendar consultas de forma prática escolhendo o dentista e o horário disponível, enquanto a clínica terá uma agenda organizada com confirmações e lembretes automáticos.

Next.jsASP.NET CoreAzure SQL ServerGoogle OAuth

Visão Geral

Sistema de agendamento de consultas para clinicas odontologicas, com controle de pacientes, agendamentos, consultas, fichas anamnese, equipe, conversão de pacientes e dashboard administrativo.

PROBLEMA

Clinicas pequenas e medias no Brasil ainda dependem de planilhas e sistemas legados para gerenciar agendamentos, pacientes e faturamento. A falta de integração entre esses processos gera perda de tempo, erros e dificuldade na conversão de agendamentos e controle de pacientes.

OBJETIVOS

  • Centralizar gestão de pacientes, conversão de agendamentos e controle de consultas.
  • Oferecer dashboard com métricas em tempo real para tomada de decisão.
  • Garantir que o cliente consiga agendar ou cancelar suas consultas de forma autônoma.
  • Controle de equipe e dentistas.
  • Localização de clientes por geolocalização, melhorando a eficácia do marketing.

PÚBLICO-ALVO

Administradores e recepcionistas de clinicas odontológicas de pequeno e médio porte.

FUNCIONALIDADES PRINCIPAIS

  • Agendamento em tempo real com notificações
  • Ficha anamnese para pacientes
  • Dashboard com gráfico de geolocalização para marketing
  • Controle de equipe e dentistas
  • Visualização de antes e depois de alguns procedimentos
  • Autonomia de paciente visualizar suas consultas passadas e futuras
FRONTEND
Next.jsReactTypeScriptTailwind CSS
BACKEND
C#ASP.NET Core
DATABASE
Azure SQL Database
INFRA
Azure App ServiceAzureGitHub Actions

Arquitetura

Arquitetura baseada em Clean Architecture com separação de microsserviço e padronização MVC. O front-end Next.js/React se comunica com a API ASP.NET via REST. O back-end segue o padrão C# com ASP.NET Core.

ESTRUTURA DE PASTAS

src/
├── sorriso-harmony-frontend/                 # Next.js/React - Frontend
│   ├── app/
│   │   ├── admin/
│   │   ├── api/analytics
│   │   ├── dentists
│   │   ├── google/callback
│   │   ├── login
│   │   ├── patient
│   │   ├── perfil
│   │   ├── reset-password
│   │   ├── testemonials
│   │   ├── layout.tsx
│   │   └── page.tsx
│   ├── components/
│   │   ├── dashboard/
│   │   ├── perfil/
│   │   └── ui/
│   ├── lib/
│   │   ├── api.ts
│   │   ├── auth.ts
│   │   ├── categories-api.ts
│   │   ├── conflicts.ts
│   │   ├── crypto.ts
│   │   ├── geo.ts
│   │   ├── interested.ts
│   │   ├── jwt.ts
│   │   ├── procedures.ts
│   │   └── utils.ts
│   └── service/
│       ├── relatorioService.ts
│       └── userService.ts

├── sorriso-harmony-api/                       # C# + ASP.NET Core - Backend
│   ├── Controllers/
│   ├── Data/
│   ├── Infrastructure/
│   ├── Data/
│   ├── Middleware/
│   ├── Migrations/
│   ├── Models/
│   ├── Properties/
│   ├── Services/
│   ├── Settings/
│   ├── Shared/
└── └── Program.cs

Segurança

ESTRATÉGIA DE AUTENTICAÇÃO

Autenticação via JWT e OAuth2 opcional com Google para login social.

ROLES / RBAC

AdministradorDentistaRecepcionistaPaciente

Configuração e Ambiente

Variaveis de ambiente separadas entre front-end (NEXT_PUBLIC_*) e back-end (appsettings.json). Secrets nunca sao expostos no client-side. Em produção, secrets foram gerenciados via Azure App Service.

Deploy

ESTRATÉGIA

Front-end deployado no Vercel com automatic previews por PR. Back-end rodando em Azure App Service. Azure SQL Server para banco de dados.

CI/CD PIPELINE

1. Trigger via push na branch main ou execução manual (workflow_dispatch)
2. Pipeline CI com GitHub Actions
3. Build da aplicação ASP.NET Core (.NET 8)
4. Publicação e geração de artefatos
5. Armazenamento do build como artifact
6. CD com deploy automatizado no Azure App Service

MONITORAMENTO

Sentry para error tracking em ambos front-end e back-end. Azure Monitor para logs da infra Azure. Uptime Robot para monitoramento de disponibilidade.

Lições Aprendidas

O QUE DEU CERTO

  • Clean Architecture facilitou adicionar novos módulos sem afetar existentes
  • Azure Logs flexibilizou consultas de logs
  • Deploy com GitHub Actions facilitou o deploy

O QUE MELHORAR

  • Adicionar HttpOnly cookies para autenticação
  • Implementar tempo de expiração de sessão
  • Foram adicionado testes unitários na maioria das funcionalidades, mas ainda é preciso implementar o restante para garantir a qualidade do sistema

Contato

Quer um projeto parecido?

Entre em contato para discutir seu projeto. Posso te ajudar!