{"id":22273668,"url":"https://github.com/prochst/taskappdemo","last_synced_at":"2025-07-19T19:07:45.981Z","repository":{"id":234327810,"uuid":"788665598","full_name":"prochst/TaskAppDemo","owner":"prochst","description":"Ukázková aplikace pro výuku C#, NET Core, Rest API, WinForm a frameworku Blazor","archived":false,"fork":false,"pushed_at":"2024-04-18T21:19:17.000Z","size":86,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"public-version","last_synced_at":"2025-07-04T02:44:50.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prochst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2024-04-18T21:12:10.000Z","updated_at":"2024-04-18T21:18:54.000Z","dependencies_parsed_at":"2024-04-18T22:26:52.232Z","dependency_job_id":"61065fd9-4e12-4d78-83d4-c573983b07f6","html_url":"https://github.com/prochst/TaskAppDemo","commit_stats":null,"previous_names":["prochst/taskappdemo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/prochst/TaskAppDemo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prochst%2FTaskAppDemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prochst%2FTaskAppDemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prochst%2FTaskAppDemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prochst%2FTaskAppDemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prochst","download_url":"https://codeload.github.com/prochst/TaskAppDemo/tar.gz/refs/heads/public-version","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prochst%2FTaskAppDemo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265992715,"owners_count":23860955,"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":[],"created_at":"2024-12-03T13:14:59.590Z","updated_at":"2025-07-19T19:07:45.951Z","avatar_url":"https://github.com/prochst.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TasksApp\n\nUkázková aplikace pro výuku C#, NET Core, Rest API, WinForm a frameworku Blazor\n\n## Vývojové prostředí\n\nPro vývoj bylo použito Visual studio ve verzi 17.4.0\n\nPro obě části je použit .Net Framewor 7.0\n\n## Serverová část\n\nProjekt TaskAPI poskytuje REST API rozhraní pro práci s daty.\n\nK vytvoření je použito [ASP.NET Core Minimal APIs](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-7.0)\n\nRest API rozhraní běží na adrese: `http://localhost:5050/`\n\n### Datový model\n\nPro práci s daty je použit `Microsoft.EntityFrameworkCore.InMemory`\n\n**Úkoly:**\n\n```\nMyTask\n\n    int Id (primary key)\n\n    string Title\n\n    string Description\n\n    string State (enum {New, Processed, Finished, Deleted})\n\n    string Owner\n```\n\nApi endpoints:\n\n```\n    Get:\t\"tasks/\" - všechny úkoly bez úkolů ve stavu Deleted\n\n    Get:\t\"tasks/incdel\" - všechny úkoly\n\n    Get:\t\"tasks/{id}\" - jeden úkol\n\n    Post:\t\"tasks/\" - nový úkol\n\n    Put:\t\"tasks/{id}\" - úprava úkolu\n\n    Delete:\t\"tasks/{id}\" - smazání úkolu\n```\n\n**Komentáře**\n\n```\nComments\n\n    int Id (primary key)\n\n    int MyTaskId\n\n    string UserName\n\n    string Content\n\n    DateTime Create\n```\n\nApi endpoints:\n\n```\n    Get:    \"comments/\" - všechny komentáře\n\n    Get:\t\"comments/{MyTask.Id}\" - všechny komentáře k úkolu\n\n    Post:\t\"comments/\" - nový komentář\n\n    Put:\t\"comments/{id}\" - úprava komentáře\n\n    Delete:\t\"comments/{id}\" - smazání komentáře\n```\n\n**Uživatel**\n\n```\nUser\n\n    string UserName (primary key)\n\n    string Password\n```\n\nMísto hesla se ukládá HASH + salt\n\nApi endpoints:\n\n```\n    Get: \"users/\" - všichni uživatelé\n\n    Get:\t\"users/{id}\" - jeden uživatel\n\n    Get:\t\"users/{username}/{password}\" - ověření hesla\n\n    Post:\t\"users/\" - nový uživatel\n```\n\n### Testovací data\n\nPři spuštění Rest API se do databáze načtou testovací data včetně uživatelů:\n\n```\nadmin (heslo: 54321)\n\nuser1 (heslo: 12345)\n\nuser2 (heslo: 12345)\n```\n\n## Klienská část\n\nKlientskou část tvoří dva projekty:\n- TaskFrm je Windows Form aplikace s frameworkem .NET 7.0\n    ![TaskFrm](./FormClient.png)\n- TaskWeb je webová SPA aplikace napsaná pomocí frameworku Blazor Server App\n    ![TaskWeb](./WebClient.png)\n\n### Uživatelské rozhraní\n\n**Windows Form** aplikace používá výchozí nastavení stylů ovládacích prvků, nebylo cílem ji nějak graficky vylepšovat.\n\nPracuje s jedním hlavním oknem, kde se v levé části zobrazuje seznam úkolů a v právé pak popis a komentáře k vybranému úkolu.\nV pravém horním rohu je zobrazen přihlášený uživatel. Pro editaci a vkládání záznamů jsou použita Dialogová okna.\n\n**Webová SPA** aplikace zobrazuje seznam úkolů a k vybranému úkolu seznam komentářů. \n\nV záhlaví seznamu úkolů je přpínač pro zobrazení i splněných a smazaných úkolů.\nTexty se upravují přímo v input polích, pokud na to má uživatel oprávnění. Popis úkolu se zobrazí po kliknutí na ovládací ikonu v řádku úkolu. V pravém horním rohu je zobrazen přihlášený uživatel  atlačítko pro odhlášení.\n\n### Aplikační logika\n\nUživatel `admin` může editovat všechny úkoly a může mazat úkoly a komentáře (mazat z databáze, ne jen měnit stav)\n\nOstatní uživatelé vídí vše, kromě úkolů ve stavu `Deleted` a mohou vkládat úkoly a komentáře a editovat úkoly, které sami vložili.\n\n### Data\n\nÚkoly se načtou všechny při spuštění aplikace a následně se pracuje z pouze s těmito daty a provádějí se aktualizace databáze přes API.\n\nKomentáře se načítají k vybranému úkolu, vždy když se výběr úkolu změní. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprochst%2Ftaskappdemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprochst%2Ftaskappdemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprochst%2Ftaskappdemo/lists"}