Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

馃殏 RailLink - Passenger Train Management System

Java JUnit 5 Open Source License: MIT

RailLink Logo


馃嚜馃嚫 Espa帽ol | 馃嚞馃嚙 English


馃嚜馃嚫 Espa帽ol

Descripci贸n y Contexto Acad茅mico

Este software fue desarrollado como Proyecto de Aula para la asignatura de Estructuras de Datos en Ingenier铆a de Sistemas e Inform谩tica en la Universidad Pontificia Bolivariana (UPB), durante el primer semestre de 2025 (2025-10). RailLink es un Sistema de Gesti贸n de Trenes de Transporte de Pasajeros dise帽ado con est谩ndares profesionales y arquitect贸nicos de alta calidad.

Caracter铆sticas T茅cnicas

Este proyecto posee un inmenso valor acad茅mico y l贸gico porque NO utiliza java.util para sus colecciones. Cada estructura de datos fue programada 100% desde cero, incluyendo:

  • Listas Enlazadas (Simples, Dobles y Circulares)
  • Pilas y Colas
  • 脕rboles Binarios
  • Tablas Hash (Hashmaps)
  • Grafos

Algoritmo Principal

El sistema cuenta con un algoritmo avanzado de teor铆a de grafos para validar y calcular la ruta m谩s corta entre estaciones, evaluado en kil贸metros. Esto permite la optimizaci贸n autom谩tica del recorrido que debe hacer el tren (y el pasajero) dentro de nuestra red ferroviaria.

Interfaz Gr谩fica / UI Screenshots

A continuaci贸n, mostraremos c贸mo luce el sistema en acci贸n:

Lobby Principal Compra de Boletos Consulta de Rutas y Grafos

Arquitectura y UML

RailLink sigue la rigidad y el desacoplamiento del patr贸n MVC (Modelo-Vista-Controlador):

MVC Diagram

La gesti贸n e interacci贸n de los modelos internos (Boletos, Estaciones, Pasajeros) se representa de la siguiente manera:

Tickets Flow Diagram

Diagrama de Componentes General

Adem谩s, tenemos una vista general de nuestros componentes integrados:

Component Diagram

Grafo de Distancias

El n煤cleo de la l贸gica enrutadora trabaja en base a este dise帽o de grafos en kil贸metros:

Grafo de Distancias

Organizaci贸n del Proyecto

El software sigue una organizaci贸n modular limpia:

  • src/main/java/dataStructures/: Colecciones y Algoritmos desde Cero.
  • src/main/java/model/: Entidades de L贸gica de Negocio.
  • src/main/java/view/: Interfaces Gr谩ficas de Usuario.
  • src/main/java/controller/: Enlace MVC.
  • src/main/java/database/: Persistencia JSON (Gesti贸n y Control).
  • src/test/: Pruebas Unitarias JUnit 5.

Ejecuci贸n de Pruebas y Uso

  1. Clona el repositorio e imp贸rtalo como un proyecto Maven.
  2. Compila el software: mvn clean compile.
  3. Ejecuta nuestra suite extendida de pruebas para validar la integridad de las colecciones customizadas: mvn test


馃嚞馃嚙 English

Description and Academic Context

This software was developed as a Classroom Project for the Data Structures course in Systems and Informatics Engineering at Universidad Pontificia Bolivariana (UPB), during the first semester of 2025 (2025-10). RailLink is a Passenger Train Management System designed with high-quality and professional architectural standards.

Technical Features

This project holds an immense academic and logical value because it DOES NOT use java.util for its collections. Every single data structure was programmed 100% from scratch, including:

  • Linked Lists (Singly, Doubly, and Circular)
  • Stacks and Queues
  • Binary Trees
  • Hash Tables (Hashmaps)
  • Graphs

Main Algorithm

The system features an advanced graph theory algorithm to validate and calculate the shortest path between stations, evaluated in kilometers. This allows for automatic optimization of the route that the train (and the passenger) must traverse inside our railway network.

Interfaz Gr谩fica / UI Screenshots

Here is what the system looks like in action:

Main Lobby Ticket Purchasing Routes and Graph Checking

Architecture and UML

RailLink follows the strictness and decoupling rules of the MVC (Model-View-Controller) pattern:

MVC Diagram

The management and interaction of internal models (Tickets, Stations, Passengers) are illustrated below:

Tickets Flow Diagram

General Components Diagram

Additionally, we have a complete overview of our integrated software components:

Component Diagram

Graph Distances Concept

The core behavior of our shortest-route algorithm relies on the following design based on kilometers:

Grafo de Distancias

Project Organization

The software adheres to a clean modular setup:

  • src/main/java/dataStructures/: Scratch-built Algorithms and Collections.
  • src/main/java/model/: Business Logic Entities.
  • src/main/java/view/: Graphical User Interfaces.
  • src/main/java/controller/: MVC Linker.
  • src/main/java/database/: JSON Persistence capabilities.
  • src/test/: JUnit 5 Unit Tests.

Execution and Testing

  1. Clone the repository and import it as a Maven Project.
  2. Compile the software: mvn clean compile
  3. Execute our extended test suite to validate the integrity of our custom collections: mvn test

About

馃殏 RailLink: Sistema de Gesti贸n de Trenes (MVC). Proyecto de Estructuras de Datos (UPB) con colecciones y grafos desarrollados 100% desde cero sin java.util.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

4 watching

Forks

Releases

Contributors

Languages