Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danmurphy1217/smart-todo
A TODO App built with AI
https://github.com/danmurphy1217/smart-todo
Last synced: 29 days ago
JSON representation
A TODO App built with AI
- Host: GitHub
- URL: https://github.com/danmurphy1217/smart-todo
- Owner: danmurphy1217
- Created: 2024-04-23T17:21:28.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-04-23T17:21:28.000Z (9 months ago)
- Last Synced: 2024-04-23T19:23:32.011Z (9 months ago)
- Size: 1000 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# smart-todo
A TODO App built with AI## Outline
1. backend built with Go
2. frontend built with React
3. general interface used to interact with third-party LLM, using OpenAI as
foundation for this
4. user can input their daily TODOs into frontend and specify some preferences,
this info is fed into the AI LLM and used to determine the ideal time of day
for a task to be completed
5. This app also integrates with a users calendar to determine the best time, we
want to avoid overlaps and also abide by working hours.
6. We can use Cognito or Firebase for authentication and should also think
about Okta for authentication. We can use Okta and JWT for authentication and
translate that internally into an authz## UX
### Auth Flow
-> user authenticates with google, for now we integrate only with google calendar
-> we get access_token from this, user is then redirected to the application
-> we store the access_token in the database
-> we use the access_token to get the users calendar events### User Flow after Authenticated
-> user selects a day from a calendar widget, triggers API request
-> backend retrieves events for that day, returns to frontend
-> user selects which events for the day (from API response) to include or exclude from the "Smart Scheduler". We cannot assume a user must attend all the events scheduled on their calendar.
-> user inputs their TODOs for the day, submits
-> backend communicates with an LLM to determine the best time for each task
-> backend returns updated list of events. If the user approves, we update their calendar for them!