{"id":15134465,"url":"https://github.com/akshayanmohandas/concurrent-ticketing-system","last_synced_at":"2026-02-09T17:35:23.406Z","repository":{"id":242156713,"uuid":"808837112","full_name":"AkshayanMohandas/Concurrent-Ticketing-System","owner":"AkshayanMohandas","description":"A concurrent ticketing system in Java, focusing on synchronizing multiple threads to manage ticket printing and resource refilling operations.","archived":false,"fork":false,"pushed_at":"2025-01-11T23:12:57.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-12T00:19:20.451Z","etag":null,"topics":["concurrency","concurrent-programming","intellij","java","java-thread","multithreading","oop","synchronization","thread","ticket-machine","ticket-management-system","ticketing-system"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AkshayanMohandas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-05-31T23:57:24.000Z","updated_at":"2025-01-11T23:13:01.000Z","dependencies_parsed_at":"2024-06-01T01:22:25.134Z","dependency_job_id":"74cedd97-320e-4a6e-8400-a36f90f3f058","html_url":"https://github.com/AkshayanMohandas/Concurrent-Ticketing-System","commit_stats":null,"previous_names":["akshayanmohandas/concurrent-ticketing-system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayanMohandas%2FConcurrent-Ticketing-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayanMohandas%2FConcurrent-Ticketing-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayanMohandas%2FConcurrent-Ticketing-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkshayanMohandas%2FConcurrent-Ticketing-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AkshayanMohandas","download_url":"https://codeload.github.com/AkshayanMohandas/Concurrent-Ticketing-System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236598791,"owners_count":19175003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["concurrency","concurrent-programming","intellij","java","java-thread","multithreading","oop","synchronization","thread","ticket-machine","ticket-management-system","ticketing-system"],"created_at":"2024-09-26T05:21:12.957Z","updated_at":"2026-02-09T17:35:23.378Z","avatar_url":"https://github.com/AkshayanMohandas.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Concurrent Ticketing System\n\n## Project Overview\nThis project is a **Concurrent Ticketing System** developed as part of my BEng Software Engineering coursework at the **University of Westminster**. The system is implemented in Java and models a real-world ticketing scenario involving passengers and technicians interacting with a shared Ticket Machine. The project also incorporates **Finite State Processes (FSP)** to design and verify the system using the **LTSA tool**.\n\nI achieved an **exceptional score of 96/100** for this project, highlighting its quality and adherence to concurrency best practices.\n\n---\n\n## Features\n- **Multi-threaded Design**: Simulates concurrent interactions between passengers and technicians.\n- **Thread Safety**: Ensures mutual exclusion for shared resources (paper and toner).\n- **FSP Modeling**: Modeled system behavior using FSP and verified with LTSA.\n- **Resource Management**: Implements realistic scenarios of paper and toner exhaustion and replenishment.\n- **Randomized Delays**: Simulates real-world timing differences between operations.\n\n---\n\n## System Components\n### 1. Ticket Machine\n- Manages resources: paper and toner.\n- Handles ticket printing requests with synchronization to avoid conflicts.\n- Allows refilling of resources by technicians.\n\n### 2. Passenger\n- Represents a user purchasing tickets from the Ticket Machine.\n- Requests multiple tickets and waits for the machine to be ready if resources are insufficient.\n\n### 3. Ticket Paper Technician\n- Refills the Ticket Machine with paper when required.\n- Attempts refilling up to three times, with randomized delays.\n\n### 4. Ticket Toner Technician\n- Replaces the toner cartridge in the Ticket Machine.\n- Attempts replacement up to three times, with randomized delays.\n\n### 5. Finite State Processes (FSP)\n- Models the system's behavior for verification.\n- Includes processes for the Ticket Machine, Passengers, and Technicians.\n- Verified and animated using the LTSA tool.\n\n---\n\n## Skills Gained\n- **Concurrency and Multithreading**: Hands-on experience in designing and implementing thread-safe systems.\n- **Problem-Solving**: Tackled challenges like mutual exclusion and deadlock prevention.\n- **Formal Verification**: Modeled and verified system behavior using the LTSA tool.\n- **Java Programming**: Advanced proficiency in Java threading and synchronization.\n\n--- \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayanmohandas%2Fconcurrent-ticketing-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshayanmohandas%2Fconcurrent-ticketing-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayanmohandas%2Fconcurrent-ticketing-system/lists"}