{"id":24901556,"url":"https://github.com/pgalias/train-ticket-machine","last_synced_at":"2026-04-18T06:37:05.425Z","repository":{"id":36977076,"uuid":"307490122","full_name":"pgalias/train-ticket-machine","owner":"pgalias","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-16T04:06:25.000Z","size":2051,"stargazers_count":0,"open_issues_count":38,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T18:19:22.419Z","etag":null,"topics":["tailwindcss","typescript","vue"],"latest_commit_sha":null,"homepage":"https://train-ticket-machine.netlify.app","language":"TypeScript","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/pgalias.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}},"created_at":"2020-10-26T20:01:04.000Z","updated_at":"2021-08-26T08:24:34.000Z","dependencies_parsed_at":"2023-01-17T11:16:42.291Z","dependency_job_id":null,"html_url":"https://github.com/pgalias/train-ticket-machine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pgalias/train-ticket-machine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ftrain-ticket-machine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ftrain-ticket-machine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ftrain-ticket-machine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ftrain-ticket-machine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgalias","download_url":"https://codeload.github.com/pgalias/train-ticket-machine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ftrain-ticket-machine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31959881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["tailwindcss","typescript","vue"],"created_at":"2025-02-01T21:16:35.959Z","updated_at":"2026-04-18T06:37:05.405Z","avatar_url":"https://github.com/pgalias.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build](https://github.com/pgalias/train-ticket-machine/workflows/Check%20commit/badge.svg?branch=main)\n[![codecov](https://codecov.io/gh/pgalias/train-ticket-machine/branch/main/graph/badge.svg?token=6FEa5sKzOz)](undefined)\n\nSee application [here](https://train-ticket-machine.netlify.app)\n\n## Table of Contents\n\n* [About the project](#about-the-project)\n    * [Built with](#built-with)\n* [Getting started](#getting-started)\n    * [Prerequisites](#prerequisites)\n    * [Installation](#installation)\n    * [Available commands](#available-commands)\n    * [More information](#more-information)\n* [Running application](#running-application)\n* [Further changes](#further-changes)\n* [Contact](#contact)\n\n## About the project\n\n![application appearance](./application.png)\n\nThis is a small user interface of a train ticket machine. These machine has a direct but unreliable connection to the\ncentral system and use a touchscreen display which works as follows.\nAs the user types each character of the station's name on the touchscreen, the display should:\n1. Update keyboard to show all valid choices for the next character.\n2. List of possible matching stations.\n\n### Built with\n\n- [Typescript](https://www.typescriptlang.org/)\n- [Vue 3](https://v3.vuejs.org/)\n- [Vite](https://github.com/vitejs/vite) as a project bundler and webserver\n- [Tailwind](https://tailwindcss.com/)\n- [Jest](https://jestjs.io/) for unit tests\n- [Cypress](https://www.cypress.io/) for e2e tests\n\n## Getting started\n\n### Prerequisites\n\nTo use this project there is `yarn` package manager needed.\n\n### Installation\n\nTo install all dependencies just run `yarn` command.\n\n### Available commands\n\n- `dev` it runs dev server with HMR\n- `build` it creates dev bundle\n- `test:unit` it runs unit tests with jest\n- `test:e2e` it runs e2e tests with cypress\n- `test` it runs two above commands at once\n- `lint:scripts` it runs eslint\n- `lint:styles` it runs stylelint\n- `lint` it runs two above commands at once\n- `cypress:open` it opens cypress application\n- `build-to-branch` it builds application and deploy it to gh-pages branch\n\n### More information\n\nProject has [husky](https://github.com/typicode/husky) attached to check every commit. It is running eslint, stylelint\nand [commit lint](https://github.com/conventional-changelog/commitlint). Husky is also running unit tests on every push\ncommand.\n\n## Running application\n\n1. Run application: `yarn dev`\n2. Navigate to `localhost:3000`\n\n## Further changes\n\n- Add dependency injection library to improve service maintenance\n- Make list component more common\n- Change static texts in component to translatable texts\n- Add virtual list for stations list to improve performance\n- Add router\n- Add state manager\n\n## Contact\n\nPawel Galias - [linkedin](https://linkedin.com/in/pawgalias) - [pawel@galias.me](pawel@galias.me)\n\nProject Link: [https://github.com/pawgalias/train-ticket-machine](https://github.com/pawgalias/train-ticket-machine)\n\nProject Demo: [https://train-ticket-machine.netlify.app](https://train-ticket-machine.netlify.app)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgalias%2Ftrain-ticket-machine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgalias%2Ftrain-ticket-machine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgalias%2Ftrain-ticket-machine/lists"}