.NET-Graph-Hack-Together
App Live Here
The app has been deployed here but the Speech Recognition function is not working when deployed because Azure Speech SDK has no support for Blazor š« , the todo extraction still works though, I have put in some example conversations there to demo the rest of the app.
It works locally though, here is a video for the demo.
Microsoft.Graph.NET.Hack.Project.mp4
Some pictures:
- Recorded some conversations
- Extracted some todos
- Crud page for projects
If you want to set it up yourself, instructions to do so are below.
Project Details
I decided to work on the Create personal tasks in Microsoft To-Do scenario from the top MS Graph scenarios list but with a twist that I do it through talking about a project.
I made a Blazor Server app that lets you do personal standups on your projects, use AI to extract the tasks and add them to Microsoft To Dos, with each project being a list.
Why I made this
I plan my day every morning, automatically adding these tasks using my voice is way easier than manually typing them down.
Technologies used
- .NET 7
- .NET Blazor Server
- Tailwind CSS + DaisyUI
- Open AI Api
- Microsoft Graph .NET SDK
- SQLite Database
How to run the code
After you clone the project add a applicationsettings.json file to the root of the .net project with this format
{
"SPEECH_KEY": "<SPEECH_KEY_FROM_SPEECH_SERVICE>",
"SPEECH_REGION": "<SPEECH_REGION_FROM_SPEECH_SERVICE>",
"OpenAIServiceOptions": {
"ApiKey": "<OPENAI_API_KEY>",
"Organization": "<OPENAI_ORG_KEY>"
},
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "common",
"ClientId": "<CLIENT_ID>",
"ClientSecret": "<CLIENT_SECRET>",
"ClientCertificates": [],
"CallbackPath": "/signin-oidc"
},
"DownstreamApi": {
"BaseUrl": "https://graph.microsoft.com/v1.0",
"Scopes": "User.Read Tasks.Read Tasks.ReadWrite"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Data Source=graphass.db"
}
}
Replace them keys with your own and run dotnet run
and it should be good to go