{"id":25772915,"url":"https://github.com/pirito10/taquillavirtual-sinf-uvigo","last_synced_at":"2026-07-10T03:31:13.999Z","repository":{"id":276664707,"uuid":"929912988","full_name":"Pirito10/TaquillaVirtual-SINF-UVigo","owner":"Pirito10","description":"Virtual Ticketing System Database project for the course \"Sistemas de Información\" in the Telecommunications Engineering Degree at the Universidad de Vigo (2023 - 2024)","archived":false,"fork":false,"pushed_at":"2025-02-09T22:52:05.000Z","size":5911,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T07:21:18.188Z","etag":null,"topics":["java","relational-database","sql","ticketing-system"],"latest_commit_sha":null,"homepage":"https://teleco.uvigo.es/es/asignaturas/gett/sistemas-de-informacion-2/","language":"SQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pirito10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-09T17:31:24.000Z","updated_at":"2025-02-09T22:52:08.000Z","dependencies_parsed_at":"2025-06-03T13:58:50.614Z","dependency_job_id":"e3df6352-f6a0-4a69-993b-05c88a66310a","html_url":"https://github.com/Pirito10/TaquillaVirtual-SINF-UVigo","commit_stats":null,"previous_names":["pirito10/taquillavirtual-sinf-uvigo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pirito10/TaquillaVirtual-SINF-UVigo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirito10%2FTaquillaVirtual-SINF-UVigo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirito10%2FTaquillaVirtual-SINF-UVigo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirito10%2FTaquillaVirtual-SINF-UVigo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirito10%2FTaquillaVirtual-SINF-UVigo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pirito10","download_url":"https://codeload.github.com/Pirito10/TaquillaVirtual-SINF-UVigo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirito10%2FTaquillaVirtual-SINF-UVigo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35319810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","relational-database","sql","ticketing-system"],"created_at":"2025-02-27T04:28:28.987Z","updated_at":"2026-07-10T03:31:13.976Z","avatar_url":"https://github.com/Pirito10.png","language":"SQL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Taquilla Virtual\n_Taquilla Virtual_ is a **Virtual Ticketing System Database** developed as part of the course \"[Sistemas de Información](https://secretaria.uvigo.gal/docnet-nuevo/guia_docent/?centre=305\u0026ensenyament=V05G301V01\u0026assignatura=V05G301V01309\u0026any_academic=2023_24)\" in the Telecommunications Engineering Degree at the Universidad de Vigo (2023 - 2024).\n\n## About The Project\nThis project implements the database system for an online ticketing service, supporting event management, ticket reservations, and purchase processing. The system integrates key concepts of relational databases, such as referential integrity, stored procedures, triggers, and transactional consistency, ensuring data accuracy and efficient query execution.\n\nThe project features:\n- Structured relational database model designed for scalability and efficiency.\n- Stored procedures for ticket purchases, cancellations, and event management. \n- Integrity constraints to ensure data consistency and prevent invalid operations.\n- Custom validation rules for seat availability, refund penalties, and audience restrictions.\n- User access management with role-based permissions for different user types.\n\n## How To Run\n### Data Generator\n#### Compilation\nMake sure you have a [Java JDK](https://www.oracle.com/java/technologies/downloads/) installed on your system. Then compile the Java class and generate the `.class` file with:\n```bash\njavac -d bin src/GeneradorDatos.java\n```\nThis command creates the compiled file inside the `bin/` directory.\n\n#### Execution\nOnce compiled, you can run the generator with:\n```bash\njava -cp bin GeneradorDatos \u003cnum_espectaculos\u003e \u003cnum_clientes\u003e \u003cminGradas\u003e \u003cmaxGradas\u003e \u003cminUbicaciones\u003e \u003cmaxUbicaciones\u003e \u003cfichero\u003e\n```\n| Option | Description | Example |\n|--------|-------------|---------|\n| `num_espectaculos` | Number of events to create | `200` |\n| `num_clientes` |Number of clients to create | `1000` |\n| `minGradas` | Minimum stands per venue | `1` |\n| `maxGradas` | Maximum stands per venue | `8` |\n| `minUbicaciones` | Minimum seats per stand | `10` |\n| `maxUbicaciones` | Maximum seats per stand | `100` |\n| `fichero` | Output SQL file | `datos.sql` |\n\n##### Example\n```bash\njava -cp bin GeneradorDatos 200 1000 1 8 10 100 test/datos.sql\n```\n\n### Database\n#### Requirements\nMake sure you have [MySQL](https://www.mysql.com) installed on your system.\n\n#### Setup\nOpen MySQL and execute the following scripts to initialize the database schema, stored procedures, and user accounts:\n```sql\n\\. src/esquema.sql\n\\. src/procedimientos/realizarCompra.sql\n\\. src/procedimientos/anularCompra.sql\n\\. src/procedimientos/crearEspectaculo.sql\n\\. src/procedimientos/eliminarEspectaculo.sql\n\\. src/procedimientos/requisitos/verificarAnularCompra.sql\n\\. src/procedimientos/requisitos/verificarLimiteAnulaciones.sql\n\\. src/procedimientos/requisitos/verificarLimiteEntradas.sql\n\\. src/procedimientos/requisitos/verificarPenalizacion.sql\n\\. src/procedimientos/requisitos/verificarPublicoPermitido.sql\n\\. src/procedimientos/requisitos/verificarRealizarCompra.sql\n\\. src/procedimientos/consultas/espectaculos.sql\n\\. src/procedimientos/consultas/recintos.sql\n\\. src/procedimientos/consultas/clientes.sql\n\\. src/procedimientos/consultas/localidades.sql\n\\. src/usuarios.sql\n```\n\n#### Usage\nAfter setting up the database, you can populate it, for example:\n```sql\n\\. test/datos.sql\n```\nThis script will insert randomized sample events, clients, and venue data.\nRefer to [`test.txt`](test/test.txt) for more realistic test cases.\n\n## About The Code\nRefer to [`Especificaciones.pdf`](docs/Especificaciones.pdf), [`Justificaciones.pdf`](docs/Justificaciones.pdf), and [`Diagramas.jpg`](docs/Diagramas.jpg) for an in-depth explanation of the project, how the system works, the database schema and table relationships, the implemented queries and procedures, and more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirito10%2Ftaquillavirtual-sinf-uvigo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpirito10%2Ftaquillavirtual-sinf-uvigo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirito10%2Ftaquillavirtual-sinf-uvigo/lists"}