arrow_backBack to WorkVoltar para Projetos
Java · Data Persistence

Sistema de Agendamento

A medical appointment scheduling system featuring patient records, appointment history, advanced time-slot conflict detection, and full data persistence. The most architecturally complex project in the portfolio.Um sistema de agendamento médico com cadastro de pacientes, histórico de atendimentos, detecção avançada de conflitos de horário e persistência completa dos dados. O projeto de arquitetura mais complexo do portfólio.

LanguageLinguagemJava
ContextContextoUniversity — LP2Acadêmico — LP2
ComplexityComplexidadeHighAlta

01 OverviewVisão Geral

This is the most architecturally ambitious project in the portfolio. Medical scheduling is a genuinely hard problem: time-slot conflicts, patient history, cancellation logic, and data that must survive program restarts — all implemented without a database, using Java's serialization and file I/O.Este é o projeto com maior ambição arquitetural do portfólio. Agendamento médico é um problema realmente difícil: conflitos de horário, histórico de pacientes, lógica de cancelamento e dados que precisam sobreviver ao reinício do programa — tudo implementado sem banco de dados, usando serialização Java e I/O de arquivos.

The project was built for the Programming Languages 2 (LP2) course and intentionally pushes beyond what was required, implementing a clean architecture that could plausibly scale to a real clinic context.O projeto foi desenvolvido para a disciplina de Linguagens de Programação 2 (LP2) e intencionalmente vai além do que era exigido, implementando uma arquitetura limpa que poderia escalar para um contexto real de clínica.

02 ArchitectureArquitetura

Scheduling EngineMotor de Agendamento

The core scheduling module validates time-slot availability against existing appointments, handles overlap detection, and enforces business rules (minimum advance booking, maximum appointments per day per doctor).O módulo central de agendamento valida disponibilidade de horários com base nos agendamentos existentes, trata detecção de sobreposição e aplica regras de negócio (antecedência mínima, limite de consultas por dia por médico).

Patient RecordsCadastro de Pacientes

A full CRUD system for patient profiles, including appointment history retrieval sorted by date. History is linked relationally through ID references between serialized objects.Um sistema CRUD completo para perfis de pacientes, incluindo consulta ao histórico de atendimentos ordenado por data. O histórico é ligado relacionalmente por referências de ID entre objetos serializados.

Data PersistencePersistência de Dados

Java object serialization backs all data to disk, with atomic write patterns to prevent corruption on failure. A simple save/load lifecycle ensures consistency across sessions.A serialização de objetos Java grava todos os dados em disco, usando padrões de escrita atômica para evitar corrupção em falhas. Um ciclo simples de salvar/carregar garante consistência entre sessões.

03 Challenges & LearningsDesafios e Aprendizados

_Time-slot conflict detection taught me that domain modeling precision is more important than clever algorithms.A detecção de conflitos de horário me ensinou que precisão no modelo de domínio é mais importante do que algoritmos “espertos”.
_Building persistence without a real DB made me deeply appreciate what databases actually do for you.Construir persistência sem um banco real me fez valorizar profundamente o que os bancos de dados fazem por você.
_This project is why I pursued the SENAC Database Administration course shortly after.Este projeto foi o motivo pelo qual busquei o curso de Administração de Banco de Dados do SENAC logo depois.

Tech UsedTecnologias Utilizadas

Java Serialization File I/O OOP

Key FeaturesPrincipais Recursos

  • Time-slot conflict detectionDetecção de conflito de horários
  • Full patient record CRUDCRUD completo de pacientes
  • Appointment history by patientHistórico de consultas por paciente
  • Java serialization persistencePersistência com serialização Java
  • Atomic write / crash safetyEscrita atômica / segurança contra falhas