Registro de citas médicas – java

Este pequeño programa backend desarrollado como práctica de mis estudios en Java SE, presenta una plataforma para registrar datos de pacientes médicos: fecha, horario y motivos de consulta. Con una interfaz de menú que permite añadir, mostrar, editar y eliminar registros.

Usando el IDE Intellij IDEA los conceptos básicos de programación y lógica aplicada como lo son: variables de diferentes tipos, condicionales, bucles, switch, Try-catch y librerías para conectar y almacenar los datos en una BD Sql alojada en web.

herramientas utilizadas

IDE: Intellij IDEA
Lenguaje: Java SE
Base de datos: MySQL
Servicio de Hosting: Hostinger

Fragmento de código del proyecto
				
					import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        CitaDAO citaDAO = new CitaDAO();
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("\n--- Menú de Citas ---");
            System.out.println("1. Agendar cita");
            System.out.println("2. Ver todas las citas");
            System.out.println("3. Editar cita");
            System.out.println("4. Eliminar cita");
            System.out.println("5. Salir");
            System.out.print("Seleccione una opción: ");
            int opcion = scanner.nextInt();
            scanner.nextLine();

            switch (opcion) {
                case 1:
                    agendarCita(citaDAO, scanner);
                    break;
                case 2:
                    verTodasLasCitas(citaDAO);
                    break;
                case 3:
                    editarCita(citaDAO, scanner);
                    break;
                case 4:
                    eliminarCita(citaDAO, scanner);
                    break;
                case 5:
                    System.out.println("Saliendo...");
                    scanner.close();
                    return;
                default:
                    System.out.println("Opción no válida. Intente de nuevo.");
            }
        }
    }

    private static void agendarCita(CitaDAO citaDAO, Scanner scanner) {
        System.out.print("Nombre del paciente: ");
        String nombre = scanner.nextLine();

        System.out.print("Fecha de la cita (YYYY-MM-DD): ");
        String fecha = scanner.nextLine();

        System.out.print("Hora de la cita (HH:MM): ");
        String hora = scanner.nextLine();

        System.out.print("Motivo de la cita: ");
        String motivo = scanner.nextLine();

        Cita nuevaCita = new Cita(nombre, fecha, hora, motivo);
        citaDAO.insertarCita(nuevaCita);
        System.out.println("Cita agendada con éxito!");
    }

    private static void verTodasLasCitas(CitaDAO citaDAO) {
        List<Cita> citas = citaDAO.obtenerTodasLasCitas();
        for (Cita cita : citas) {
            System.out.println("ID: " + cita.getId());
            System.out.println("Paciente: " + cita.getNombrePaciente());
            System.out.println("Fecha: " + cita.getFechaCita());
            System.out.println("Hora: " + cita.getHoraCita());
            System.out.println("Motivo: " + cita.getMotivo());
            System.out.println("-----------------------------");
        }
    }

    private static void editarCita(CitaDAO citaDAO, Scanner scanner) {
        System.out.print("Ingrese el ID de la cita a editar: ");
        int id = scanner.nextInt();
        scanner.nextLine();

        // Obtener la cita actual
        Cita cita = citaDAO.obtenerCitaPorId(id);
        if (cita == null) {
            System.out.println("No se encontró una cita con el ID proporcionado.");
            return;
        }

        System.out.println("Editando la cita: " + cita.getNombrePaciente());

        // Solicitar nuevos datos
        System.out.print("Nuevo nombre del paciente: ");
        String nombre = scanner.nextLine();
        System.out.print("Nueva fecha de la cita (YYYY-MM-DD): ");
        String fecha = scanner.nextLine();
        System.out.print("Nueva hora de la cita (HH:MM): ");
        String hora = scanner.nextLine();
        System.out.print("Nuevo motivo de la cita: ");
        String motivo = scanner.nextLine();

        // Actualizar la cita
        cita.setNombrePaciente(nombre);
        cita.setFechaCita(fecha);
        cita.setHoraCita(hora);
        cita.setMotivo(motivo);
        citaDAO.editarCita(cita);

        System.out.println("Cita actualizada con éxito!");
    }

    private static void eliminarCita(CitaDAO citaDAO, Scanner scanner) {
        System.out.print("Ingrese el ID de la cita a eliminar: ");
        int id = scanner.nextInt();
        scanner.nextLine();

        // Confirmar eliminación
        System.out.print("¿Está seguro de que desea eliminar esta cita? (s/n): ");
        String confirmacion = scanner.nextLine();
        if (confirmacion.equalsIgnoreCase("s")) {
            citaDAO.eliminarCita(id);
            System.out.println("Cita eliminada con éxito!");
        } else {
            System.out.println("Eliminación cancelada.");
        }
    }
}

				
			
				
					public class Cita {
    private int id;
    private String nombrePaciente;
    private String fechaCita;
    private String horaCita;
    private String motivo;

    //Constructor, getters y setters
    public Cita(String nombrePaciente, String fechaCita, String horaCita, String motivo) {
        this.nombrePaciente = nombrePaciente;
        this.fechaCita = fechaCita;
        this.horaCita = horaCita;
        this.motivo = motivo;
    }

    //Getters y Setters
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombrePaciente() {
        return nombrePaciente;
    }

    public void setNombrePaciente(String nombrePaciente) {
        this.nombrePaciente = nombrePaciente;
    }

    public String getFechaCita() {
        return fechaCita;
    }

    public void setFechaCita(String fechaCita) {
        this.fechaCita = fechaCita;
    }

    public String getHoraCita() {
        return horaCita;
    }

    public void setHoraCita(String horaCita) {
        this.horaCita = horaCita;
    }

    public String getMotivo() {
        return motivo;
    }

    public void setMotivo(String motivo) {
        this.motivo = motivo;
    }
}

				
			
				
					import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

//Credenciales Base de Datos
public class ConexionBd {
    private static final String URL = "servidor";
    private static final String USER = "Base de datos";
    private static final String PASSWORD = "Contraseña";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}