-made using react,fastapi,google-adk and postgresql
-the core feature of this app is the ability to manage your gmail tasks, like sending and organizing your emails using LLM(AI).
-used Google Oauth2 for authorization for gmail access and OIDC for user authentication.(maybe could have just used Oauth2)
-currently,it is only possible to send emails using LLM.
-you can also chat with the your LLM.
-The chatbot maintains session memory because the entire conversation history is persisted in a database.
- The WebSocket connection currently lacks an authentication layer. This means that if a malicious user could guess or obtain a valid user_id and conversation_id, they could potentially establish a connection.
- The client-side establishes a WebSocket connection as soon as a user switches to a conversation, and this connection remains open even if the user is idle. This isn't an efficient use of server resources, as it maintains open connections unnecessarily. This could be improved by establishing WebSocket connection only when user sends a message.
- The google jwt id_token expires after 1 hour of login, making user login frequently. I will implement custome refresh token in future to prevent this.
- The code is messy. Could be structured better.