Sistema completo de gerenciamento de clínicas médicas desenvolvido com Next.js, oferecendo uma solução moderna e eficiente para o agendamento de consultas e administração de estabelecimentos de saúde.
O DoutorAgenda é uma plataforma web robusta projetada para simplificar a gestão de clínicas médicas. O sistema permite que administradores de clínicas gerenciem médicos, pacientes e agendamentos de forma intuitiva e eficiente, proporcionando uma experiência completa de administração hospitalar.
-
🔐 Autenticação Segura
- Login com email e senha
- Autenticação via Google OAuth
- Sessões seguras com Better Auth
-
🏢 Gerenciamento de Clínicas
- Cadastro e configuração de estabelecimentos
- Perfis personalizados para cada clínica
-
👨⚕️ Gestão de Médicos
- Cadastro completo de profissionais
- Definição de especialidades
- Configuração de horários de disponibilidade
- Preços de consulta personalizados
-
👥 Administração de Pacientes
- Registro detalhado de pacientes
- Histórico de consultas
- Informações de contato e dados pessoais
-
📅 Sistema de Agendamentos
- Agendamento inteligente de consultas
- Verificação automática de disponibilidade
- Gestão de horários em tempo real
- Calendário interativo
-
📊 Dashboard Analítico
- Visão geral da clínica
- Estatísticas de receita e agendamentos
- Gráficos de performance
- Relatórios de médicos e especialidades mais procuradas
-
💳 Sistema de Assinaturas
- Integração com Stripe para pagamentos
- Planos de assinatura flexíveis
- Gerenciamento de cobrança automática
- Next.js 15.3.2 - Framework React com renderização server-side
- React 19 - Biblioteca para interfaces de usuário
- TypeScript - Tipagem estática para JavaScript
- Tailwind CSS - Framework CSS utilitário
- Shadcn/UI - Componentes de interface modernos
- Radix UI - Primitivos de UI acessíveis
- Lucide React - Ícones modernos
- Drizzle ORM - ORM type-safe para TypeScript
- PostgreSQL - Banco de dados relacional
- Neon Database - Plataforma de banco serverless
- Better Auth - Sistema de autenticação moderno
- Next Safe Action - Validação segura de ações server-side
- Zod - Validação de esquemas TypeScript
- Stripe - Processamento de pagamentos
- @stripe/stripe-js - SDK JavaScript do Stripe
- TanStack Query - Gerenciamento de estado servidor
- React Hook Form - Formulários performáticos
- Date-fns & Day.js - Manipulação de datas
- Recharts - Gráficos e visualizações
- Sonner - Notificações toast elegantes
- ESLint - Linting de código
- Prettier - Formatação de código
- Drizzle Kit - Ferramentas de migração de banco
- Node.js 18.0.0 ou superior
- npm ou yarn ou pnpm
- PostgreSQL 12 ou superior (ou conta no Neon Database)
- Conta no Google Cloud (para OAuth)
- Conta no Stripe (para pagamentos)
# Database
DATABASE_URL="postgresql://..."
# Authentication
BETTER_AUTH_SECRET="your-secret-key"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# Stripe
STRIPE_SECRET_KEY="sk_test_..."
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_test_..."
STRIPE_WEBHOOK_SECRET="whsec_..."
# App
NEXT_PUBLIC_APP_URL="http://localhost:3000"git clone https://github.com/seu-usuario/doutor-agenda.git
cd doutor-agendanpm install
# ou
yarn install
# ou
pnpm installcp .env.example .env.local
# Edite o arquivo .env.local com suas configurações# Execute as migrações
npm run db:migrate
# ou
npx drizzle-kit migratenpm run dev
# ou
yarn dev
# ou
pnpm devA aplicação estará disponível em http://localhost:3000
- Acesse a aplicação e faça login
- Complete o formulário de criação de clínica
- Configure os dados básicos do estabelecimento
// Exemplo de dados para cadastro de médico
const novoMedico = {
name: "Dr. João Silva",
email: "joao.silva@email.com",
phone: "(11) 99999-9999",
specialty: "Cardiologia",
availableFromWeekDay: 1, // Segunda-feira
availableToWeekDay: 5, // Sexta-feira
availableFromTime: "08:00",
availableToTime: "18:00",
appointmentPriceInCents: 15000 // R$ 150,00
}- Selecione o médico desejado
- Escolha a data disponível
- Selecione um horário livre
- Confirme o agendamento
Contribuições são sempre bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
- Siga os padrões de código estabelecidos (ESLint + Prettier)
- Escreva testes para novas funcionalidades
- Documente mudanças significativas
- Mantenha commits claros e descritivos
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Para dúvidas, sugestões ou reportar problemas:
- Email: victormts.s1@gmail.com
- GitHub: @SoulHiro
- LinkedIn: Victor M.
Desenvolvido com ❤️ para modernizar a gestão de clínicas médicas
© 2024 DoutorAgenda. Todos os direitos reservados.