hack-together icon indicating copy to clipboard operation
hack-together copied to clipboard

Project: Magic Note app to plan the day efficiently with AI & MS Graph [Completed]

Open aksoftware98 opened this issue 1 year ago • 6 comments

Project name

Magic Note - Hack Together

Description

Magic Note allows users to plan their days in a joyful and productive way with the power of Microsoft Graph and AI (Of course the implementation is entirely in .NET)

GET IT NOW FOR WINDOWS

Windows

[v1.1.4 Hackathon version for Windows]

Windows App Overview

The Windows app overview: WinUI

The Problem

Most productive people would like to have the upcoming busy day planned carefully the night before. The process is needed but it's tough, why? Well! we have the tasks we want to do in mind but just thoughts, that's why we take notes and create To-Do lists. The problem happens we open the calendar and the To-Do lists app on our smart device and start adding some important events, meetings, tasks, or other reminders for the upcoming day.

How do users do it without Magic Note? Let's see the steps The 10 things to do the next day (3 events, 2 meetings, 5 to-do items) All thoughts in the brain yet

  • Open the Calendar app on the phone
  • Navigate to the next day
  • Click Add New Event
  • Populate the title
  • Define the start time
  • Define the end time
  • Click save
  • Repeat the same for the other 2 events if the user doesn't forget any.
  • Repeat the same for the meetings
  • Open the To-Do app
  • Enter the description of the first to-do item
  • Hit save
  • Repeat the same for the remaining 4 items if the user still remembers all of them.

The process is boring and inefficient.

Writing down everything in mind helps us express our ideas and keep them saved outside our minds, many people write their diaries with a pen and a sheet of paper, that's quick and indestructible. But the paper won't send me a notification 1 hour before the event or send an email for the person I want to meet with if I typed the meeting on that piece of paper.

Here is where Magic Note comes into play. Let's see how the same will be achieved 10x more efficiently using the Magic Note

The Solution

The app is only a single big text box on the left, that's it all. The user starts typing what he/she is up to for the next day in their daily conversational English as if the user is writing his/her diary or a list of tasks on a sheet of paper. The writing is quick, with no text fields to fill, no dates to select, and no save buttons to click. List everything in mind in that text box. Once everything is done, the user clicks Plan. Magic Note will send that text to the server, understand its content using AI (SEE BELOW FOR TECHNOLOGY DETAILS), and build a plan out of the ideas inside (creating an event at this time, creating a meeting with a person, adding a to-do item ..etc.). After the server prepares the plan, the user will see a set of cards each representing either an event to be added to the calendar, scheduling a meeting with someone, or adding a to-do item. Instead of the user having to open every app (Calendar, Teams, and To-Do) to insert them, the user now has a plan in front and he/she should decide if this is correct and make adjustments if needed. Once the user is satisfied with the plan, click Submit and the Magic Note will use Microsoft Graph to populate all this stuff. The user starts the next day with the To-Do app populated, the calendar full of the events and the meeting needed to be done in that day.

How the App Technically Works with Graph API

Magic note technical diagram

Microsoft Graph API which is the core of the #HackTogether hackathon is used as a main component in the system. The majority of users worldwide use Microsoft accounts to manage their meetings, and events, store contacts, and keep tracking of their progress using Microsoft To-Do but the process of adding those resources through this app on a daily bases and in a consistent fashion is tough. So, how Magic Note is utilizing Graph to make people more productive?

  1. When the user mentions in the note that he/she wants to schedule a meeting and mentions a name, the app during the planning the app is trying to search for the mentioned names in the Contacts of the user, and if Graph returns that the name is found, it automatically populates the email and the name in the result.
  2. After the user reviews the plan and makes sure everything is great, the user clicks Looks good to me, then the app is using Graph API to:
    • Fetch the user timezone
    • Fetch the Tasks list in the user's to-do
    • Create a batch content
    • Group all the requests to submit the To-Do items in the batch
    • Group all the requests to add the meetings to the batch
    • Group all the requests to submit the events in the batch
    • Post the batch in a single request

Technologies Used

Because this Hackathon is for fun, learning, and everything Microsoft and because I'm the biggest Microsoft fan ever. I decided to build this demo strictly for MICROSOFT PEOPLE (Users and Developers) 😂😎 The is built with .NET and Azure and divided into the following:

  • Client-side desktop: WinUI app for Windows 10 & 11
  • Client-side mobile: .NET MAUI app for Android only and for Microsoft Surface Duo specifically (The app suits the two screens approached perfectly, write on the left and see the plan on the right)
  • Server-side: Set of ASP.NET Core Minimal API
  • Microsoft Graph API
  • For language understanding AI: I used Azure Conversation Language Service

More details about the architecture are available in the repo 🚀🚀🚀

Repo URL

https://github.com/aksoftware98/hack-together23

Team members

Ahmad Mozaffar (GitHub: aksoftware98)

aksoftware98 avatar Mar 11 '23 21:03 aksoftware98