{"id":43043132,"url":"https://github.com/petrkucerak/rafting-button","last_synced_at":"2026-01-31T09:16:41.584Z","repository":{"id":64325089,"uuid":"569015879","full_name":"petrkucerak/rafting-button","owner":"petrkucerak","description":"Repozitář s bakalářskou prací, která si klade za cíl vytvořit autonomní zařízení řešící problém konsenzu v distribuovaném systému.","archived":false,"fork":false,"pushed_at":"2025-01-22T19:55:45.000Z","size":44730,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T20:19:56.064Z","etag":null,"topics":["distributed-systems","embeded","esp-idf","esp32","freertos","raft","time-synchronization"],"latest_commit_sha":null,"homepage":"https://petrkucerak.github.io/rafting-button/","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/petrkucerak.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":"2022-11-21T22:36:06.000Z","updated_at":"2023-06-15T08:37:20.000Z","dependencies_parsed_at":"2025-01-14T20:52:48.937Z","dependency_job_id":null,"html_url":"https://github.com/petrkucerak/rafting-button","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/petrkucerak/rafting-button","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrkucerak%2Frafting-button","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrkucerak%2Frafting-button/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrkucerak%2Frafting-button/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrkucerak%2Frafting-button/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petrkucerak","download_url":"https://codeload.github.com/petrkucerak/rafting-button/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrkucerak%2Frafting-button/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28936101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T08:53:31.997Z","status":"ssl_error","status_checked_at":"2026-01-31T08:51:38.521Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["distributed-systems","embeded","esp-idf","esp32","freertos","raft","time-synchronization"],"created_at":"2026-01-31T09:16:41.528Z","updated_at":"2026-01-31T09:16:41.577Z","avatar_url":"https://github.com/petrkucerak.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rafting button\n\nRepozitář s bakalářskou prací, která si klade za cíl vytvořit autonomní zařízení řešící problém konsenzu v distribuovaném systému.\n\nVýslednou softwarovou implementaci je možné nalézt ve složce [code/rafting-button](/code/rafting-button/).\n\nDokumentace finální implementace je dostupná na adrese: https://petrkucerak.github.io/rafting-button/.\n\nVyexportovanou prezentaci k obhajobě bakalářské práce je možné nalézt ve složce [assets/](/assets/slideshow.pdf).\n\nVyexportovaná bakalářská práce je ve [standartním formátu](/assets/thesis.pdf) a ve [formátu určeném pro čtečky](/assets/thesis-ebook-size.pdf) ve složce [assets/](/assets/).\n\n## O projektu\n### Motivace\nUž od útlých dětských let jezdím na letní tábory a přes rok organizuji mládežnické akce. Na *Hudebním týdnu*, jedné z akcí pro mladé, tradičně hráváme hru, ve které jsou různé týmy, které mezi sebou soutěží. Cílem je se jako první přihlásit o slovo a zodpovědět otázku. Doposud se nám nepovedlo vymyslet efektivní způsob, jak určit pořadí týmů. Ve výsledku vždy použijeme zvoneček, který při odpovědí více týmů ve stejný čas není vhodným řešením.\n\n### Popis cíle bakalářské práce\nCílem bakalářské práce je vytvořit koncept hlasovacího tlačítka, které bude fungovat\njako autonomní zařízení v distribuovaném systému. Systém pomocí vhodných algoritmů\nbude řešit problematiku konsenzu, respektive kauzálního uspořádaání stisku tlačítek.\n\n### Popis hlasovacího zařízení\n\nZ uživatelského pohledu by zařízení mělo být kompaktní krabička, kterou si bude moci skupina položit před sebe na stůl.2 Krabička by na sobě měla mít tlačítko, které bude odolné i vůči veliké síle způsobené bouchnutí v zápalu hry. Zařízení bude možné přepínat mezi dvěma módy, tj. *PRESENTER* a *NORMAL*. V módu *NORMAL* bude zařízení řešit,jakém pořadí se týmy přihlásily o slovo. V módu *PRESENTER* navíc pomocí webového serveru vykreslí výsledky.\n\nSamotná hra pak bude probíhat tak, že bude položena otázka, hráči se přihlásí o slovo\nstiskem tlačítka. Informace se rozdistribuujesíti a zařízenímódu *PRESENTER* zobrazí\nvýsledky. Hlasování se vyresetuje dlouhým stisknutím hlasovacího tlačítka na jakémkoliv zařízení\n\n## Struktura\n\n- [samostatny-projekt](/samostatny-projekt/) - složka obsahující veškeré soubory týkající se samostatného projektu\n- [thesis](/thesis/) - složka s bakalářskou prací\n- [code](/code/) - složka s softwarovými implementacemi\n- [assets](/assets/) - složka s relevantními zdroji\n- [slideshow](/slideshow/) - složka s slideshow k závěrečné prezentaci","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrkucerak%2Frafting-button","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetrkucerak%2Frafting-button","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrkucerak%2Frafting-button/lists"}