{"id":23757534,"url":"https://github.com/petrubraha/RR-application","last_synced_at":"2026-03-17T10:30:16.257Z","repository":{"id":264591405,"uuid":"893779220","full_name":"petru-braha/RR-application","owner":"petru-braha","description":"A client-server application developed on Linux, which provides digital communication for the transport industry","archived":false,"fork":false,"pushed_at":"2025-02-01T19:20:52.000Z","size":5719,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-01T20:25:34.715Z","etag":null,"topics":["command-design-pattern","concurency","multiplexing","protocols","socket-communication","thread-synchronization"],"latest_commit_sha":null,"homepage":"https://edu.info.uaic.ro/computer-networks/","language":"C","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/petru-braha.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-11-25T07:42:15.000Z","updated_at":"2025-02-01T19:20:55.000Z","dependencies_parsed_at":"2024-12-16T22:45:42.183Z","dependency_job_id":"55131c8a-f561-489d-bf9e-b928c459ecc2","html_url":"https://github.com/petru-braha/RR-application","commit_stats":null,"previous_names":["petru-braha/romanian-railways","petru-braha/rr-application"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2FRR-application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2FRR-application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2FRR-application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2FRR-application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petru-braha","download_url":"https://codeload.github.com/petru-braha/RR-application/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239927846,"owners_count":19719836,"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":["command-design-pattern","concurency","multiplexing","protocols","socket-communication","thread-synchronization"],"created_at":"2024-12-31T19:48:41.648Z","updated_at":"2026-03-17T10:30:16.210Z","avatar_url":"https://github.com/petru-braha.png","language":"C","readme":"# Romanian railways application\n\nYou can find the romanian version of this document [here](./docs/README_RO.md).\n\nhttps://github.com/user-attachments/assets/b17811d2-45a2-4e7a-8d8b-987f20e0e028\n\n## Main files\n\n- [official documentation](./docs/RR_documentation.pdf)\n- [client application](./client.c)\n- [server application](./server.c)\n\n## Technologies\n\n- C - socket(), bind(), connect(), pthread_t\n- C++ - std::mt1337\n- libxml2 - [official page](https://gitlab.gnome.org/GNOME/libxml2)\n\n## Features\n\n### The communication protocol\n\nPlease consult some definitions from [here](./docs/brainstorm.md)\n\n- [id_train, time_departure, time_arrival, status] routes(location_departure, location_arrival);\n- [id_train, time_departure, location_arrival] departures(location_departure);\n- [id_train, time_arrival, location_departure] arrivals(location_arrival);\n- bool report(id_train, minutes);\n- bool quit();\n\n### Speed\n\t\n- prethreaded execution\n- create thread for each client\n- i/o multiplexing with non-blocking calls\n\n### Correctness\n\n- client uses tcp to server when sending data\n- client uses udp to server when sending queries\n- server uses tcp to client when sending data\n\n### Security\n\n- specific procedures for possible errors\n- solutions if one party stops responding\n- test driven-development\n\n## Limitations\n\n- only 1024 users can be connected at once\n- not Windows portable\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrubraha%2FRR-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetrubraha%2FRR-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrubraha%2FRR-application/lists"}