Skip to content

melendez17/PortafolioPOO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Gestión de Parqueo

Descripción

Sistema completo de gestión de parqueos desarrollado en Java con arquitectura en capas. Permite administrar parqueos, vehículos, clientes, espacios, tarifas y tickets de estacionamiento.

Arquitectura del Proyecto

El proyecto sigue una arquitectura en capas con el package base cr.ac.ucenfotec:

carParking/
├── src/
│   └── cr/
│       └── ac/
│           └── ucenfotec/
│               ├── Main.java             # Punto de entrada
│               ├── bl/                   # Business Logic Layer
│               │   ├── entities/         # Entidades del dominio
│               │   │   ├── Vehiculo.java # Clase abstracta
│               │   │   ├── Auto.java
│               │   │   ├── Moto.java
│               │   │   ├── Cliente.java
│               │   │   ├── Parqueo.java
│               │   │   ├── Espacio.java
│               │   │   ├── Tarifa.java
│               │   │   ├── Ticket.java
│               │   │   └── Usuario.java
│               │   └── logic/
│               │       ├── Gestor.java       # Lógica de negocio
│               │       └── AuthService.java  # Autenticación
│               ├── dl/                   # Data Layer
│               │   └── Data.java         # Gestión de datos
│               ├── tl/                   # Transaction Layer
│               │   └── Controller.java   # Controlador principal
│               └── ui/                   # User Interface
│                   ├── UI.java           # Interfaz base
│                   ├── UIAdmin.java      # Interfaz administrador
│                   ├── UILogin.java      # Interfaz login
│                   └── UIUsuario.java    # Interfaz usuario
└── parqueo.iml                           # Archivo de proyecto IntelliJ
┌─────────────────────────────────────┐
│           Main.java                 │  ← Punto de entrada
└──────────────┬──────────────────────┘
               │
               ↓
┌─────────────────────────────────────┐
│      Controller (tl)                │  ← Controlador
│  - Coordina UI y Gestor             │
└──────┬──────────────────────┬───────┘
       │                      │
       ↓                      ↓
┌─────────────┐      ┌─────────────────┐
│   UI (ui)   │      │  Gestor (logic) │  ← Lógica
│ - Menús     │      │  - Operaciones  │
│ - Entrada   │      │  - Validaciones │
└─────────────┘      └────────┬────────┘
                              │
                              ↓
                     ┌─────────────────┐
                     │   Data (dl)     │  ← Datos
                     │ - Colecciones   │
                     │ - Búsquedas     │
                     └────────┬────────┘
                              │
                              ↓
                     ┌─────────────────┐
                     │  Entities (bl)  │  ← Entidades
                     │ - 8 clases      │
                     └─────────────────┘

Características

Gestión de Entidades

  • Parqueos: Registrar parqueos con nombre, dirección y capacidad
  • Vehículos: Registrar autos y motos con sus características específicas
  • Clientes: Gestionar información de clientes y sus vehículos
  • Espacios: Crear espacios para autos, motos o discapacitados
  • Tarifas: Definir tarifas por hora, diarias y mensuales

Operaciones

  • Registro de Entrada: Asignar vehículo a un espacio disponible
  • Registro de Salida: Calcular tiempo y costo de estacionamiento
  • Procesamiento de Pagos: Gestionar pagos de tickets
  • Consultas: Listar parqueos, vehículos, clientes, espacios, tarifas y tickets

Requisitos

  • Java 8 o superior
  • IntelliJ IDEA (recomendado)

Uso del Sistema

Menú Principal

El sistema presenta un menú con las siguientes opciones:

Registro (1-6)

  1. Registrar Parqueo
  2. Registrar Auto
  3. Registrar Moto
  4. Registrar Cliente
  5. Registrar Espacio
  6. Registrar Tarifa

Asignaciones (7-9)

  1. Asignar Vehículo a Cliente
  2. Asignar Espacio a Parqueo
  3. Asignar Tarifa a Parqueo

Operaciones (10-12)

  1. Registrar Entrada de Vehículo
  2. Registrar Salida de Vehículo
  3. Procesar Pago

Consultas (13-20)

  1. Listar Parqueos

  2. Listar Vehículos

  3. Listar Clientes

  4. Listar Espacios

  5. Listar Espacios Disponibles

  6. Listar Tarifas

  7. Listar Tickets

  8. Listar Tickets Activos

  9. Salir

Flujo de Trabajo Típico

  1. Configuración Inicial

    • Registrar un Parqueo
    • Registrar Espacios
    • Registrar Tarifas
    • Asignar Espacios al Parqueo
    • Asignar Tarifa al Parqueo
  2. Registro de Clientes y Vehículos

    • Registrar Cliente
    • Registrar Vehículo (Auto o Moto)
    • Asignar Vehículo al Cliente
  3. Operación Diaria

    • Registrar Entrada (genera ticket)
    • Registrar Salida (calcula costo)
    • Procesar Pago

Ejemplo de Uso

1. Registrar Parqueo: "Parqueo Central", "Calle 123", capacidad: 50
2. Registrar Espacio: "A-01", tipo: AUTO
3. Registrar Tarifa: "Tarifa Estándar", $2.50/hora, $20/día, $400/mes
4. Asignar Espacio A-01 al Parqueo Central
5. Asignar Tarifa al Parqueo
6. Registrar Auto: Placa "ABC123", Toyota Corolla, etc.
7. Registrar Entrada: Vehículo ABC123 en Espacio A-01 → Genera Ticket
8. Registrar Salida: Ticket TKT-0001 → Calcula costo según horas
9. Procesar Pago: Ticket TKT-0001 → Marca como pagado

Cálculo de Tarifas

El sistema calcula automáticamente el costo según:

  • < 24 horas: Tarifa por hora × número de horas
  • ≥ 24 horas: Tarifa diaria × días + tarifa por hora × horas restantes
  • ≥ 720 horas (30 días): Tarifa mensual

Características de POO Implementadas

  • Encapsulamiento: Todas las clases siguen principios de POO
  • Herencia: Vehiculo es clase abstracta, Auto y Moto heredan
  • Polimorfismo: Método getTipoVehiculo() implementado diferente en cada clase
  • Abstracción: Clases y métodos bien definidos para cada entidad

Autor

Joaquin Alberto Pappa Larreal.

About

Sistema de parqueo para portafolio de POO

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages