{"id":50646629,"url":"https://github.com/OpenRailAssociation/netzgrafik-editor-frontend","last_synced_at":"2026-07-12T14:00:46.381Z","repository":{"id":232468528,"uuid":"747239300","full_name":"OpenRailAssociation/netzgrafik-editor-frontend","owner":"OpenRailAssociation","description":"The Netzgrafik-Editor is a powerful software that enables the creation, modification, and analysis of regular-interval timetable.  ","archived":false,"fork":false,"pushed_at":"2026-07-10T09:47:58.000Z","size":12276,"stargazers_count":82,"open_issues_count":150,"forks_count":29,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-07-10T10:09:05.391Z","etag":null,"topics":["analytics","angular","designed-to-make-better-decisions","editor","frontend","planning","regular-interval-timetable","timetable","typescript"],"latest_commit_sha":null,"homepage":"https://openrailassociation.github.io/netzgrafik-editor-frontend/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenRailAssociation.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-23T14:46:09.000Z","updated_at":"2026-07-10T09:48:06.000Z","dependencies_parsed_at":"2026-01-20T10:02:12.707Z","dependency_job_id":null,"html_url":"https://github.com/OpenRailAssociation/netzgrafik-editor-frontend","commit_stats":null,"previous_names":["schweizerischebundesbahnen/netzgrafik-editor-frontend","openrailassociation/netzgrafik-editor-frontend"],"tags_count":76,"template":false,"template_full_name":"SchweizerischeBundesbahnen/open-source-repo-template","purl":"pkg:github/OpenRailAssociation/netzgrafik-editor-frontend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fnetzgrafik-editor-frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fnetzgrafik-editor-frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fnetzgrafik-editor-frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fnetzgrafik-editor-frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenRailAssociation","download_url":"https://codeload.github.com/OpenRailAssociation/netzgrafik-editor-frontend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenRailAssociation%2Fnetzgrafik-editor-frontend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35393398,"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-12T02:00:06.386Z","response_time":87,"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":["analytics","angular","designed-to-make-better-decisions","editor","frontend","planning","regular-interval-timetable","timetable","typescript"],"created_at":"2026-06-07T13:00:30.181Z","updated_at":"2026-07-12T14:00:46.373Z","avatar_url":"https://github.com/OpenRailAssociation.png","language":"TypeScript","funding_links":[],"categories":["Transport and Mobility"],"sub_categories":[],"readme":"# Netzgrafik-Editor\n\n\u003cdetails\u003e\n\u003csummary\u003e\nNetzgrafik-Editor – designed to make better decisions.\n\u003c/summary\u003e\n \n\u003cbr\u003e\nThe product vision is to accelerate the planning and sizing of transport systems by creating an intuitive and powerful platform that uses smart projections and analyses. This will enable timetable variations or service options to be created, compared, and optimized very easily, with maximum support for the human planner during their creative process. The goal is to ensure that decisions can be made based on data-driven insights, to guarantee a smooth mobility for the future that is fast, efficient, and goal-oriented.\n\u003cbr\u003e\u003cbr\u003e\n\n\u003e **Flexible level of detail** - start with a rough sketch, continuously add more detail.\n\u003e\n\u003e Applicable across **different industries** - bus, train, plane.\n\u003e\n\u003e **Scales with your use-case** - from hobbyist timetabling to professional planning.\n\u003e\n\u003e **Human-centric** - timetable planning is a very complex and creative process. Netzgrafik-Editor\n\u003e supports the user by digitalizing the previously paper-driven process, while providing instant\n\u003e analysis capabilities.\n\u003e\n\u003e **Excellent and intuitive UX** - using Netzgrafik-Editor should be as easy and natural as drawing\n\u003e on a whiteboard. No training required. Analysis happens in real time.\n\n\u003c/details\u003e\n\n## Introduction\n\nThe Netzgrafik-Editor is a powerful software that enables the creation, modification, and analysis\nof regular-interval timetable.\n\n\u003cdetails\u003e\n\u003csummary\u003e\nRegular-interval timetable\n\u003c/summary\u003e\n\n\u003cbr\u003e\n\n\u003e Regular-interval timetables were first developed in Germany at the beginning of the 20th century\n\u003e to coordinate urban traffic in large cities such as Berlin.\n\u003e\n\u003e The regular schedules aim to increase the attractiveness of public transport because they’re\n\u003e easier to memorise for passengers and because the patterns make the planning of resources easier.\n\u003e\n\u003e Such constant schedules may also improve services during off-peak hours.\n\u003e\n\u003e The Dutch were in 1970 credited with the first junction system, which then was the basis for the\n\u003e Swiss regular-interval timetable in 1982.\n\u003e\n\u003e [History - The regular-interval timetable](https://houseofswitzerland.org/swissstories/history/nation-railway-enthusiasts-history-swiss-railways)\n\u003e\n\u003e [clock-faced schedules](https://en.wikipedia.org/wiki/Clock-face_scheduling)\n\u003e\n\u003e [Source](https://www.swissinfo.ch/eng/to-the-second_the-swiss-timetable-is-due-to-meticulous-planning/34102496)\n\n\u003c/details\u003e\n\n![Netzgrafik-Editor](./documentation/images/Overview_Editor_Screenshot_001.PNG)\n\nIt offers various functions to enhance the efficiency and optimization of the logistics network.\nSome of the key features include:\n\n- **Interactive drawing tool to edit the Netzgrafik:** A user-friendly and interactive graphical\n  editor for creating and editing regular-interval timetables. It provides a\n  visual interface to easily visualize and adjust the logistics network.\n\n- **Graphic timetable (Streckengrafik):**\n  All lines (trainruns) defined in the Netzgrafik can be transferred into a graphical timetable\n  representation (Streckengrafik).\n\n- **Perlenkette trainrun editing:** Planners can manually draw and edit the trainruns as a chain,\n  allowing them\n  to define crucial aspects of the logistics network and tailor it\n  to specific requirements and constraints.\n\n- **Logistical Information Extraction:** The software extracts important logistical information from\n  the regular-interval timetable,\n  such as departure and destination stations, departure and arrival times, and train frequency.\n\n- **Logistics Network Analysis:** Planners can analyze the logistics network based on the timetable\n  representation.\n  The software provides insights into connection coordination, transfer times, and logistical\n  connections, facilitating optimization and efficiency improvement.\n\n- **Infrastructure Requirement Estimation:** Infrastructure requirements can be estimated based on\n  the entered timetable representation,\n  aiding in infrastructure planning and decision-making.\n\n## Origin and Open Source Collaboration\n\nThe Netzgrafik-Editor, initially developed as an internal innovation project at the\n[Swiss Federal Railways (SBB CFF FFS)](https://www.sbb.ch).\nThe project started with a clickable prototype. From this early stage of the project,\nthere are still ideas and concepts that have not yet been realised, so it is always worth taking a\nlook [at this document](https://xd.adobe.com/view/e4664ae0-be8f-40e4-6a55-88aec9eafd8d-9257/).\nThe entire project has now reached a mature stage and evolved into a powerful tool with applications\nbeyond railways. It can now be utilized in any domain that requires regular-interval timetables as a\nplanning basis.\n\nThe versatility of the editor makes it suitable for various logistics planning scenarios, enabling\nefficient timetable creation and analysis. The software's key features can be leveraged in a broader\ncontext, such as:\n\n- **Public Transportation Systems:** Other public transport networks can utilize the editor's\n  flexibility and features to effectively visualize and plan their transportation systems,\n  leading to improved efficiency and better services.\n\n- **Educations:** The editor's capabilities can be utilized in educational institutions to demonstrate\n  how to create integrated timetables and what properties need to be considered during the planning\n  process in order to enable efficient scheduling\n\n\u003cdetails\u003e\n\u003csummary\u003emore ...\n\u003c/summary\u003e\n\nBy extending the scope of its application beyond railways, the Netzgrafik-Editor has the potential\nto become a valuable tool in numerous sectors,\nproviding comprehensive control, optimization, and synchronization of time-based planning.\n\nDue to these diverse applications of the Netzgrafik-Editor and its increasing value in various\nareas,\nthe decision was made to release it as open source software.\nThis is intended to promote broad use and collaboration at the planning level,\nas well as actively support the further development of new ideas from different industries so that\nthe editor constantly improves and,\nin the best case, establishes itself as a standard tool across different public transportation\nindustries.\n\n\u003c/details\u003e\n\nCommunity [participation and collaboration](CONTRIBUTING.md)\nin the development process is extremely important and desired to ensure that the editor gains\ndiversity\nand functionality and meets the needs and challenges of different application domains.\nThe openness of the project encourages innovation, expertise from different sectors and continuous\nimprovements to optimize the\nplanning processes.\n\nFeel free to join our [Matrix room](https://matrix.to/#/#nge:osrd.fr) if you want to chat with other Netzgrafik-Editor developers.\n\n## Roadmap\n\nGet an insight into the plan and future [ROADMAP.md](ROADMAP.md).\n\n## User Manual\n\nThe user manual can be found here [USERMANUAL.md](documentation/USERMANUAL.md)\n\n## Online Demo\n\n[Extern: nge.flatland.cloud](https://nge.flatland.cloud) - powered by [Flatland Association](https://www.flatland-association.org/)\n\n( [Sample Netzgrafik](https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-frontend/blob/main/src/app/sample-netzgrafik/Demo_Netzgrafik_Fernverkehr_2024.json) - [How to Import JSON](https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-frontend/blob/main/documentation/technical/DATA_MODEL_JSON.md) )\n\n## Packages\n\nNetzgrafik-Editor is published:\n\n- [As a Docker image](https://github.com/OpenRailAssociation/netzgrafik-editor-frontend/pkgs/container/netzgrafik-editor-frontend), for use in a Docker environment\n- [As a NPM package](https://www.npmjs.com/package/@openrail/netzgrafik-editor-frontend), for integration in another webapp\n\n## Setup Local Demo Environment with Docker Compose\n\nUse [extern: netzgrafik-editor-docker-compose](https://github.com/flatland-association/netzgrafik-editor-docker-compose) for a one-line setup based\non [Docker Compose](https://docs.docker.com/compose/) - powered by [Flatland Association](https://www.flatland-association.org/).\n\n## Getting-Started\n\n### Development setup\n\nFor a working local development setup, you also need to start\nthe [backend](https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-backend)!\n\n```shell\n# clone project from https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-frontend\ngit clone https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-frontend.git\n\n# switch into folder\ncd netzgrafik-editor-frontend\n\n```\n\n```shell\n# install all npm dependencies\nnpm install\n\n# start ng server (connects to local backend, make sure it is set up and running)\nnpm run start\n```\n\n#### The dockerized variant\n\n```shell\n# install\napt install docker\napt install docker-compose-plugin\n\n# build\ndocker compose build\n\n# run\ndocker compose up\n```\n\n#### Access to Netzgrafik-Editor frontend\n\n\u003e open address in browser http://localhost:4200/\n\u003e\n\u003e Login with username **user** and password **user**\n\n#### For Nix Package Manager users\n\nNix users can use the `flake.nix` file to setup a development environment.\n\nTo use the flake, the Nix experimental features `nix-command` and `flakes` are required.\n\nSee [official Nix documentation](https://nixos.wiki/wiki/Flakes) for more information.\n\nCombined with the `direnv` tool, the following commands can be used to setup the development environment each time the project folder is entered:\n\n```shell\n# allow direnv to use the flake\necho \"use flake\" \u003e\u003e .envrc \u0026\u0026 direnv allow\n```\n\nSee [official direnv documentation](https://direnv.net/) for more information.\n\n### Linting\n\n```sh\n# to fix the eventual lint issues\nnpm run lint\n\n# to check that the code is correctly linted\nnpm run lint:fix\n```\n\n### Formatting\n\nSince we use Prettier as formatter, you can freely setup you favorite IDE to support you in the way. For example, if you use VSCode, follow these steps:\n\n- install the [Prettier extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)\n- (optionnal: install Prettier via npm `npm install --global prettier`)\n- now, if you try left-click and select \"Format Document\", you'll be able to format manually using Prettier\n\nNice to have: Format on Save\n\n- you can enable this functionnality by opening VSCode \"Settings\" and activate \"Editor: Format on Save\" (this way, your code will be formatted each time your file is saved)\n- alternatively, you can just add these lines in `settings.json` (open using `Cmd` + `shift` + `p` and search \"Open User Settings (JSON)\")\n\n```json\n{\n  \"editor.formatOnSave\": true,\n  \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n}\n```\n\n```sh\n# to check that the code is correctly formatted\nnpm run format:check\n\n# to format the code according to Prettier rules\nnpm run format\n```\n\n### Testing\n\n```sh\n# just run all tests once\nnpm run test\n\n# re-run tests when a file changes\nnpm run test -- --watch\n\n# run tests in a Chrome browser window\nnpm run test -- --browsers Chrome\n\n# run tests with Chromium instead of Chrome\nnpm run test -- --browsers ChromiumHeadless\n```\n\n## Backend API code generation\n\nThe backend API is specified using [OpenAPI](https://swagger.io/specification/) (\nsee `api-docs.json`).\nAngular Services for the communication with the backend API are generated based on this\nspecification using [openapi-generator](https://github.com/openapitools/openapi-generator) and added\nto the repo (see `src/app/api/generated`).\n\n### Update the API Version\n\nIn order to update the API Version start the local backend server.\nThe new spec can then be downloaded at \u003chttp://localhost:8080/v3/api-docs/\u003e.\n\nThe new API Service files can be generated using the following command:\n\n```shell\nnpm run generate:api\n```\n\n## Documentation\n\nPlease consider the following information:\n\n- [DATA MODEL](./documentation/technical/DATA_MODEL.md)\n\n- [CODING_STANDARDS.md](CODING_STANDARDS.md)\n- [CONTRIBUTING.md](CONTRIBUTING.md)\n\nand check the\nopen [issues](https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-frontend/issues)\nand [pull requests](https://github.com/SchweizerischeBundesbahnen/netzgrafik-editor-frontend/pulls).\n\n## License\n\nThis project is licensed under [Apache 2.0](LICENSE).\n\n## Contributing\n\nOpen-source projects thrive on collaboration and contributions from the community. All\ncontributors are requested to read the [CONTRIBUTING.md](CONTRIBUTING.md) file as it outlines how to\ncontribute to the project, including how to submit bug reports, feature requests, and pull requests.\n\n## Coding Standards\n\nAll contributors are requested to read the [CODING_STANDARDS.md](CODING_STANDARDS.md) file that\noutlines the coding standards that you should follow when contributing to the project.\n\n## Code of Conduct\n\nTo ensure that the project is a welcoming and an inclusive environment for all contributors, you, it\nhas established a good [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).\n\n## Credits\n\nMany thanks to all contributors for their engagement and contribution, without which this project\nwould not have been possible. Thank you for your current and future contribution!\n\n[CREDITS.md](CREDITS.md)\n\n## Continuous Integration\n\nThis repository uses [release-please](https://github.com/googleapis/release-please) for CHANGELOG generation, the creation of GitHub releases, and version bumps for your projects.\nSee [CI.md](CI.md) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenRailAssociation%2Fnetzgrafik-editor-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOpenRailAssociation%2Fnetzgrafik-editor-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenRailAssociation%2Fnetzgrafik-editor-frontend/lists"}