Plataforma completa de telemedicina construída com Next.js e shadcn/ui. O projeto oferece landing page institucional, fluxo de autenticação, dashboards para pacientes, médicos e administradores, gestão de consultas, planos de assinatura, prontuários e notificações – tudo com suporte a temas claro/escuro.
CLIENT, DOCTOR, ADMIN) e páginas protegidas.PENDING_CONFIRMATION, CONFIRMED, REJECTED, IN_PROGRESS, etc.) e notificações automáticas./plans, /subscriptions).primary #4A90E2 e secondary #50E3C2, tipografia Inter e ícones Material Symbols/Lucide.|-- src/
| |-- app/
| | |-- page.tsx # Landing page institucional
| | |-- auth/ # Login e registro
| | |-- dashboard/ # Dashboard do paciente
| | |-- doctor/ # Dashboard para médicos
| | |-- admin/ # Área administrativa
| | |-- consultations/ # Consulta, agendamento e histórico
| | |-- plans/ # Visualização de planos
| | |-- settings/ # Configurações do usuário
| | `-- api/ # API Routes (consultas, planos, notificações...)
| |-- components/ # UI compartilhada e ThemeToggle
| |-- lib/ # Utilidades e helpers
| `-- types/ # Tipagens (ex.: next-auth)
|-- prisma/
| |-- schema.prisma # Modelos: User, Plan, Subscription, Consultation, etc.
| `-- seed.ts # Seed inicial de planos
Consulte SETUP.md para instruções detalhadas de ambiente e MIGRATION_GUIDE.md para o fluxo de confirmação de consultas.
DATABASE_URLClonar o repositório e instalar dependências:
npm install
Criar .env com as variáveis mínimas:
DATABASE_URL="postgresql://user:password@localhost:5432/telemedicina"
DIRECT_URL="postgresql://user:password@localhost:5432/telemedicina?schema=public"
NEXTAUTH_SECRET="sua_secret_key"
NEXTAUTH_URL="http://localhost:3000"
Rodar as migrações:
npx prisma migrate dev
Popular planos padrão (Básico, Premium, Família):
npm run db:seed
Iniciar o servidor de desenvolvimento:
npm run dev
A aplicação ficará disponível em http://localhost:3000.
npm run dev: inicia o servidor em modo desenvolvimento (Turbopack).npm run build: cria a build de produção.npm start: serve a build de produção.npm run lint: executa ESLint.npm run db:seed: popula planos iniciais via Prisma Seed.npx prisma studio: abre o Prisma Studio para visualizar dados.Cliente (CLIENT)
/auth/register, login em /auth/login./plans / /subscriptions./consultations/new e acompanha no /dashboard.Médico (DOCTOR)
/doctor para confirmar ou rejeitar consultas pendentes.CONFIRMED, REJECTED, IN_PROGRESS, COMPLETED conforme atendimento.Administrador (ADMIN)
/admin para gerenciar usuários, consultas, planos e relatórios.O provedor ThemeProvider (arquivo src/components/providers.tsx) utiliza next-themes para aplicar os temas telemedicina. O componente ThemeToggle está presente no header (desktop/mobile) da landing page (src/app/page.tsx) e nos dashboards, garantindo experiência consistente.
src/app/api/consultations/* inclui endpoints para confirmar (POST /api/consultations/[id]/confirm) e rejeitar (POST /api/consultations/[id]/reject).Notification e exibidas aos usuários quando o status muda.MIGRATION_GUIDE.md para detalhes da migração que adiciona os novos status e do fluxo de confirmação médico → paciente.npm run build e, em seguida, npm start.DATABASE_URL, NEXTAUTH_SECRET e demais segredos.main.npm run lint e npm run build passam antes de abrir PR.README.md, SETUP.md, MIGRATION_GUIDE.md) sempre que necessário.Para dúvidas adicionais sobre configuração ou fluxos específicos, verifique os arquivos SETUP.md e MIGRATION_GUIDE.md, ou abra uma issue descrevendo o cenário.