{"id":13431035,"url":"https://github.com/DanielRBowen/TimeMage","last_synced_at":"2025-03-16T06:32:02.812Z","repository":{"id":116710370,"uuid":"270798729","full_name":"DanielRBowen/TimeMage","owner":"DanielRBowen","description":"A Blazor PWA which has Timers, Stopwatches, and Interval Timers.","archived":false,"fork":false,"pushed_at":"2023-11-14T20:46:43.000Z","size":1608,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-01T02:27:37.959Z","etag":null,"topics":["aot","azure-cognitive-services","blazor","cache-storage","csharp","css","download","howler","howlerjs","html","interval-timer","json","netcore","netcore6","pwa","stopwatch","timer","user-secrets","wasm"],"latest_commit_sha":null,"homepage":"","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/DanielRBowen.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}},"created_at":"2020-06-08T19:26:25.000Z","updated_at":"2023-06-21T21:35:28.000Z","dependencies_parsed_at":"2024-01-18T14:41:11.526Z","dependency_job_id":"c9a4ebc5-53a5-4a13-b8ff-67aa0ba676ae","html_url":"https://github.com/DanielRBowen/TimeMage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielRBowen%2FTimeMage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielRBowen%2FTimeMage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielRBowen%2FTimeMage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielRBowen%2FTimeMage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanielRBowen","download_url":"https://codeload.github.com/DanielRBowen/TimeMage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221656503,"owners_count":16858784,"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":["aot","azure-cognitive-services","blazor","cache-storage","csharp","css","download","howler","howlerjs","html","interval-timer","json","netcore","netcore6","pwa","stopwatch","timer","user-secrets","wasm"],"created_at":"2024-07-31T02:00:59.970Z","updated_at":"2024-10-27T09:31:29.071Z","avatar_url":"https://github.com/DanielRBowen.png","language":"C#","funding_links":[],"categories":["Sample Projects"],"sub_categories":["Others"],"readme":"# TimeMage\nA Blazor PWA which has Timers, a Stopwatch, and Interval Timers.\n\nI made this to learn Blazor and make a multiple timer application and interval timer to do High-Intensity Interval Training (HIIT) workouts \nwithout having to pay $5 for an interval timer app or see ads on a multiple timer app.\n\nYou will need [.Net 6](https://dotnet.microsoft.com/download/dotnet/6.0) installed for this project. And the latest [Visual Studio 2022 Preview](https://visualstudio.microsoft.com/vs/preview/)\n\nThis project uses [Azure Cognitive Speech Services](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/)\nwhich you can see a quick start [here](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/text-to-speech-basics?tabs=import\u0026pivots=programming-language-csharp).\n\nI stored the subscription key and region of the Azure Cognitive Speech Services as [user-secrets](https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-6.0\u0026tabs=windows).\nI placed them in appsettings.json when publishing to Azure. Like this:\n\n```\n \"Speech\": {\n    \"SubscriptionKey\": \"[Your Subscription Key]\",\n    \"Region\": \"[Your Region]\"\n  },\n```\n\nAlso, uses [BlazorAudioPlayer](https://github.com/soend/BlazorAudioPlayer)\nYou will need to install [node.js](https://nodejs.org/en/download/) and then in a cli (ctrl + ` to open in Visual Studio) navigate to the BlazorAudioPlayer and to run \"npm install\" before running the TimeMage.Server as startup project.\n\nThis uses [BlazorStrap](https://github.com/chanan/BlazorStrap) for modals.\n\nUses [NoSleep.js](https://richtr.github.io/NoSleep.js/) to make it so the display will not turn off when running an IntervalSet on a mobile device. \n\nIt uses [DistributedCache](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-5.0) for caching the audio blob on the server and [Blazored.LocalStorage](https://github.com/blazored/LocalStorage) for caching on the client.\n\nPreloaded IntervalSets are from [ATHLEAN-X™](https://www.youtube.com/user/JDCav24)\n\n## [Demo](https://timemage.azurewebsites.net/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDanielRBowen%2FTimeMage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDanielRBowen%2FTimeMage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDanielRBowen%2FTimeMage/lists"}