{"id":22735531,"url":"https://github.com/nfdi4plants/helpdesk","last_synced_at":"2025-03-30T02:27:20.305Z","repository":{"id":51687742,"uuid":"455170080","full_name":"nfdi4plants/helpdesk","owner":"nfdi4plants","description":"DataPLANT helpdesk as SPA website with server for creating MS Teams issues.","archived":false,"fork":false,"pushed_at":"2024-05-06T11:27:41.000Z","size":1997,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-05T04:51:18.536Z","etag":null,"topics":["fable","fsharp","safe-stack"],"latest_commit_sha":null,"homepage":"https://helpdesk.nfdi4plants.org","language":"F#","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/nfdi4plants.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-02-03T13:11:32.000Z","updated_at":"2024-07-31T07:43:03.000Z","dependencies_parsed_at":"2024-05-06T12:55:26.902Z","dependency_job_id":null,"html_url":"https://github.com/nfdi4plants/helpdesk","commit_stats":null,"previous_names":["nfdi4plants/helpdesk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2Fhelpdesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2Fhelpdesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2Fhelpdesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2Fhelpdesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nfdi4plants","download_url":"https://codeload.github.com/nfdi4plants/helpdesk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246267861,"owners_count":20750015,"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":["fable","fsharp","safe-stack"],"created_at":"2024-12-10T21:11:22.939Z","updated_at":"2025-03-30T02:27:20.289Z","avatar_url":"https://github.com/nfdi4plants.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nfdi-helpdesk\n\nThis project is a helpdesk implementation based on the SAFE stack framework for the nfdi4plants/DataPLANT organisation. Some of it's features are:\n- Full keyboard support, through nested dropdowns.\n- Setting title with entry url query.\n- dotnet native and fully customizable image captcha logic.\n- Writing input to Microsoft Teams planner tasks.\n\n# Procedure\n\n```mermaid\n---\ntitle: DataPLANT Helpdesk\nconfig:\n    sequence:\n        showSequenceNumbers: true\n---\nsequenceDiagram\n    actor User\n    participant Frontend\n    participant Backend\n    participant MSTeams\n    Note over Frontend,Backend: SAFE stack\n    User -\u003e\u003e Frontend: Fill Form\n    User -\u003e\u003e Frontend: Write Captcha\n    Frontend -\u003e\u003e Backend: Verify Captcha\n    Backend -\u003e\u003e Frontend: Confirm Captcha\n    User -\u003e\u003e Frontend: Submit\n    Frontend -\u003e\u003e Backend: Submit\n    Backend-\u003e\u003eMSTeams: Send to task planner\n    create actor DataStewards \n    MSTeams -\u003e\u003e DataStewards : Notify\n    DataStewards --) DataStewards: Distribute to correct member\n    Backend -\u003e\u003e Frontend: Confirm successful submit\n    Frontend -\u003e\u003e User: Confirm successful submit\n    link Frontend: Page @ https://helpdesk.nfdi4plants.org/\n    link Frontend: React @ https://reactnative.dev/\n    link Frontend: ProgrammingLanguage (F#, Fable) @ https://fable.io/\n    link Backend: aspnetcore @ https://learn.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-8.0\n    link Backend: ProgrammingLanguage (F#) @ https://safe-stack.github.io/\n\n```\n\n## Dev\n\n### Run in development\n\n#### Install pre-requisites\n\nYou'll need to install the following pre-requisites in order to build SAFE applications\n\n* [.NET Core SDK](https://www.microsoft.com/net/download) 6.0 or higher\n* [Node LTS](https://nodejs.org/en/download/)\n\n#### Starting the application\n\nBefore you run the project **for the first time only** you must install dotnet \"local tools\" with this command:\n\n```bash\ndotnet tool restore\n```\n\nTo concurrently run the server and the client components in watch mode use the following command:\n\n```bash\ndotnet run\n```\n\nThen open `http://localhost:8080` in your browser.\n\nThe build project in root directory contains a couple of different build targets. You can specify them after `--` (target name is case-insensitive).\n\n#### Test on native mobile device\n\nInstall [localtunnel](https://github.com/localtunnel/localtunnel)\n\n```bash\nnpm install -g localtunnel\n```\n\nOpen port on localtunnel api\n\n```bash\nlt --port 8080\n```\n\n**Tests not implemented**\n\nTo run concurrently server and client tests in watch mode (you can run this command in parallel to the previous one in new terminal):\n\n```bash\ndotnet run -- RunTests\n```\n### Docker Publish\n\nStart docker then use: \n\n```bash \ndotnet run docker-publish\n```\n\n__OR__\n\n\u003cdetails\u003e\u003csummary\u003eStep by step\u003c/summary\u003e\n\u003cp\u003e\n\n1. Create image \n```bash\ndocker build -t nfdi-helpdesk .\n```\n\n2. Test image \n```bash\ndocker run -it -p 8085:8085 nfdi-helpdesk\n```\n\n3. Create tag for image\n```bash\ndocker tag nfdi-helpdesk:latest freymaurer/nfdi-helpdesk:X.X.X\n```\n\nRemember to replace \"X.X.X\" with the correct next SemVer version.\n\n4. Push the image\n```bash\ndocker push freymaurer/nfdi-helpdesk:X.X.X\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n### Bundle\n\n#### Fonts for captcha creation\n\nAdd fonts as itemgroup to Server.fsproj as such:\n\n```xml\n\u003cItemGroup\u003e\n    \u003cContent Update=\"Fonts\\arial.ttf\"\u003e\n      \u003cCopyToOutputDirectory\u003eAlways\u003c/CopyToOutputDirectory\u003e\n    \u003c/Content\u003e\n    \u003cContent Update=\"Fonts\\times.ttf\"\u003e\n      \u003cCopyToOutputDirectory\u003eAlways\u003c/CopyToOutputDirectory\u003e\n    \u003c/Content\u003e\n    \u003cContent Update=\"Fonts\\verdana.ttf\"\u003e\n      \u003cCopyToOutputDirectory\u003eAlways\u003c/CopyToOutputDirectory\u003e\n    \u003c/Content\u003e\n  \u003c/ItemGroup\u003e\n```\n\n## SAFE Stack Documentation\n\nIf you want to know more about the full Azure Stack and all of it's components (including Azure) visit the official [SAFE documentation](https://safe-stack.github.io/docs/).\n\nYou will find more documentation about the used F# components at the following places:\n\n* [Saturn](https://saturnframework.org/)\n* [Fable](https://fable.io/docs/)\n* [Elmish](https://elmish.github.io/elmish/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfdi4plants%2Fhelpdesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfdi4plants%2Fhelpdesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfdi4plants%2Fhelpdesk/lists"}