{"id":15060935,"url":"https://github.com/compositionalit/safe-dojo","last_synced_at":"2025-04-09T05:09:07.090Z","repository":{"id":30998327,"uuid":"126517968","full_name":"CompositionalIT/SAFE-Dojo","owner":"CompositionalIT","description":"An introductory dojo to learn how to develop full stack web applications in F#","archived":false,"fork":false,"pushed_at":"2024-09-24T05:00:08.000Z","size":1718,"stargazers_count":380,"open_issues_count":1,"forks_count":125,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-09T05:08:59.913Z","etag":null,"topics":["dojo","fsharp","safe","web-programming"],"latest_commit_sha":null,"homepage":"","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/CompositionalIT.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":"2018-03-23T17:29:27.000Z","updated_at":"2025-03-27T02:50:38.000Z","dependencies_parsed_at":"2024-01-26T13:37:16.668Z","dependency_job_id":"d5695061-4aeb-4b71-bafd-16de0eda5066","html_url":"https://github.com/CompositionalIT/SAFE-Dojo","commit_stats":{"total_commits":240,"total_committers":36,"mean_commits":6.666666666666667,"dds":0.6625,"last_synced_commit":"80530ddb683d65ef306918ea160877ea28ee1c51"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompositionalIT%2FSAFE-Dojo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompositionalIT%2FSAFE-Dojo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompositionalIT%2FSAFE-Dojo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompositionalIT%2FSAFE-Dojo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CompositionalIT","download_url":"https://codeload.github.com/CompositionalIT/SAFE-Dojo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980837,"owners_count":21027808,"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":["dojo","fsharp","safe","web-programming"],"created_at":"2024-09-24T23:06:54.876Z","updated_at":"2025-04-09T05:09:07.073Z","avatar_url":"https://github.com/CompositionalIT.png","language":"F#","readme":"# SAFE Dojo\n\nThis self-study repository is designed to allow you to experience the SAFE stack based on a ready-made application that you can build on top of. It will take around 90 minutes for you to complete if you have no experience in any of these technologies.\n\nThe `master` branch contains the dojo to complete. Please read the [instructions.md](Instructions.md) for a guide on completing this dojo, to learn all about the [SAFE Stack](https://safe-stack.github.io/) and F#. There is a \"completed\" version in the `suggested-solution` branch.\n\n## Install pre-requisites\n\nYou'll need to install the following pre-requisites in order to build SAFE applications\n\n* [.NET SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) 8.0\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\nOpen the editor:\n\n```bash\ncode .\n```\n\nBuild and run in watch mode using the following command:\n\n```bash\ndotnet run\n```\n\n\u003e NOTE: You may have to allow `dotnet` or `Server` access to your public and/or private network.\n\nThen open `http://localhost:8080` in your browser. Arrange the windows so you can see both Code editor and the web browser.\n\n## Use the app\n\nType a UK postcode into the web app, e.g. \"SW1A 2AA\". Press \"Fetch\"\n\n## Completing the tasks\n\nSearch files (Ctrl+Shift+F or Edit --\u003e Find in Files) and search through for \"Task 1\" to start completing the Dojo.\n\nSee [Instructions.md](Instructions.md) for further details and hints about the tasks.\n\n## Going further: bundling your app\n\nThere is `Bundle` to package your app:\n\n```bash\ndotnet run -- Bundle\n```\n## Going further: deploying to Azure\n\nThis requires these prerequisites:\n* [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)\n\nFirst time run\n\n    az login\n\nThen set the name of your app in Build.fs. The name must be globally unique and contain only alphanumeric or hyphen characters.\n\n```\n    let web = webApp {\n        name \"my-cool-app\" // set the name of your app here\n    ...\n```\n\nTo deploy to Azure:\n\n```bash\ndotnet run -- Azure\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/)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompositionalit%2Fsafe-dojo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompositionalit%2Fsafe-dojo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompositionalit%2Fsafe-dojo/lists"}