Skip to content

About

Full-stack clinic management web app with React, Node.js, Express and MongoDB for patient records, appointment scheduling and validation rules.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Clinic Scheduler

O React Clinic Scheduler é um sistema web full stack para gerenciamento de pacientes e agendamento de consultas. O projeto combina uma interface em React com uma API REST em Node.js/Express e persistência em MongoDB, mostrando uma evolução prática para aplicações com frontend componentizado, backend separado e banco NoSQL.

Objetivo

A proposta do sistema é organizar o fluxo básico de uma clínica: cadastro de pacientes, controle de consultas, filtros por período/tipo/paciente e validações para evitar conflitos de horários. O projeto foi estruturado para demonstrar domínio de integração entre frontend, API e banco de dados.

Funcionalidades

  • 🧑‍⚕️ Cadastro, edição, listagem e exclusão de pacientes.
  • 📅 Agendamento, edição, conclusão e cancelamento de consultas.
  • 🔎 Filtros de consultas por hoje, semana, mês, ano, atrasadas, tipo e paciente.
  • ⚠️ Validação de conflitos de horário entre consultas.
  • 🚑 Regra especial para consultas de urgência.
  • 🔁 Regra de retorno entre 20 e 30 dias após consulta anterior.
  • 🗂️ Exclusão automática de consultas vinculadas ao paciente removido.
  • 🌐 Integração frontend/backend via Axios.
  • 🍃 Persistência dos dados em MongoDB usando Mongoose.

Tecnologias Utilizadas

  • React
  • React Router DOM
  • Styled Components
  • Axios
  • Node.js
  • Express
  • MongoDB
  • Mongoose
  • date-fns

Arquitetura

flowchart LR
    USER["Usuário"] --> REACT["Frontend React"]
    REACT -->|Axios / HTTP| API["API Node.js + Express"]
    API --> ROUTES["Rotas de Pacientes e Consultas"]
    ROUTES --> CONTROLLERS["Controllers"]
    CONTROLLERS --> MODELS["Models Mongoose"]
    MODELS --> MONGO["MongoDB"]
Loading

Estrutura do Projeto

backend/
  src/
    config/
    controller/
    middlewares/
    model/
    routes/
    index.js
  package.json
  .env.example

frontend/
  public/
  src/
    assets/
    components/
    routes/
    services/
    utils/
    views/
  package.json
  .env.example

Principais Endpoints

Pacientes

  • POST /paciente cria um paciente.
  • GET /paciente/listar lista pacientes.
  • GET /paciente/buscar/:id busca um paciente.
  • PUT /paciente/:id atualiza um paciente.
  • DELETE /paciente/deletar/:id remove um paciente e suas consultas.

Consultas

  • POST /consulta cria uma consulta.
  • GET /consulta/listar lista consultas.
  • GET /consulta/hoje lista consultas do dia.
  • GET /consulta/semana lista consultas da semana.
  • GET /consulta/mes lista consultas do mês.
  • GET /consulta/ano lista consultas do ano.
  • GET /consulta/atrasadas lista consultas atrasadas.
  • GET /consulta/buscar/:id busca uma consulta.
  • PUT /consulta/:id atualiza uma consulta.
  • PUT /consulta/concluida/:id/:termino marca consulta como concluída ou pendente.
  • DELETE /consulta/deletar/:id remove uma consulta.
  • POST /consulta/filtrar/tipo filtra consultas por tipo.
  • GET /consulta/filtrar/paciente/:idPaciente filtra consultas por paciente.

Destaques Técnicos

  • Separação entre frontend e backend.
  • API REST organizada por rotas, controllers, models e middlewares.
  • Uso de Mongoose para modelagem de pacientes e consultas.
  • Validação de regras de negócio no backend.
  • Interface React com componentes reutilizáveis e rotas internas.
  • Configuração por variáveis de ambiente para evitar dados fixos no código.

Higiene do Repositório

O repositório ignora dependências, builds, logs, arquivos temporários e arquivos .env. Isso mantém o GitHub focado no código-fonte e na documentação, sem subir configurações locais ou arquivos gerados.

About

Full-stack clinic management web app with React, Node.js, Express and MongoDB for patient records, appointment scheduling and validation rules.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages