Project Info
This project did not submit a demo video on Devpost.
Inspiration
The inspiration for Nova came from the overwhelming volume of emails and tasks that professionals face daily. We aimed to create a solution that simplifies task management and reduces cognitive load, allowing users to focus on what truly matters.
What it does
Nova is an automated email assistant that intelligently processes incoming emails, identifies actionable items, and seamlessly adds them to your calendar. It also sends timely text reminders, ensuring you stay organized and on top of your commitments without the hassle of manual tracking.
How we built it
We built Nova using natural language processing algorithms to analyze email content and extract relevant tasks. By integrating with calendar APIs and SMS services, we created a smooth workflow that automates task management and communication, making it easy for users to manage their schedules.
Challenges we ran into
One of the main challenges was accurately interpreting the context of emails to distinguish between urgent tasks and general information. Additionally, ensuring seamless integration with various calendar platforms and messaging services required extensive testing and refinement.
Accomplishments we're proud of
We are proud of developing a fully functional prototype of Nova that effectively reduces users' daily load by automating task management. Initial user feedback has been overwhelmingly positive, highlighting the assistant's ability to streamline workflows and enhance productivity.
What we learned
Throughout the development process, we learned the importance of user feedback in refining our algorithms and improving the overall user experience. We also gained insights into the complexities of integrating multiple services to create a cohesive solution.
What's next
for Nova Moving forward, we plan to enhance Nova's capabilities by incorporating machine learning to improve task recognition and prioritization. Our goal is to expand its features and ultimately launch it as a comprehensive productivity tool that transforms how users manage their daily tasks.
This repository has no readme, or GitHub could not be reached.
Analysis
View
Metric
- 8
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- FlaskIn code
- OpenAIIn code
- PythonIn code
3 of 3 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
14 KB
Source files
5
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
jpsingaraju/nova-ai
14 files · 819 KB · @ 048e279
Structure
Application logic
8 files · 57%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python100%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 59- aiohappyeyeballs
- aiohttp
- aiohttp-retry
- aiosignal
- annotated-types
- anyio
- attrs
- blinker
- cachetools
- certifi
- charset-normalizer
- click
- distro
- Flask
- frozenlist
- google-api-core
- google-api-python-client
- google-auth
- +41 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Attachment handling from emailsVerified
Processes incoming emails and their content (implied by 'processes incoming emails')
Claimed on readmemedium confidencegmail.py:62— download_attachments fetches attachment parts from Gmail API and writes them to diskmain.py:22— main flow downloads attachments when present on the latest email
Automatic calendar event creationVerified
Seamlessly adds actionable items to your calendar
Claimed on Devposthigh confidencegcal.py:56— create_calendar_event builds event data via GPT and calls service.events().insert to Google Calendarmain.py:27— add_event_to_calendar wires extracted message to create_calendar_event
Flask-based service/API (webhook)Verified
Built with Flask
Claimed on Devposthigh confidencemain.py:9— Flask app defined and a /webhook route registered to drive the email-to-calendar-to-text pipeline
Gmail email ingestionVerified
Nova processes incoming emails via Gmail
Claimed on Devposthigh confidencegmail.py:13— get_latest_message fetches the latest inbox message via Gmail APIauthentication.py:9— GMAIL_SCOPES and OAuth flow authenticate against Gmail APImain.py:18— main webhook route calls get_latest_message and extract_info
Google Calendar API integrationVerified
Integrating with calendar APIs
Claimed on Devposthigh confidenceauthentication.py:10— CALENDAR_SCOPES and authenticate('calendar') build a Google Calendar v3 servicegcal.py:64— service.events().insert directly calls the Calendar API
NLP/GPT based extraction of actionable items from emailsVerified
Uses NLP algorithms to analyze email content and extract relevant tasks
Claimed on Devposthigh confidencegmail.py:88— extract_info calls OpenAI gpt-3.5-turbo to extract structured info from email dictgcal.py:12— determine_message_type uses GPT to classify message as event vs reminder
SMS service integration (Sinch)Verified
Integrating with... messaging services
Claimed on Devposthigh confidencetext_message.py:27— SinchClient instantiated with key_id/key_secret/project_id and used to send SMS
Text/SMS remindersVerified
Sends timely text reminders
Claimed on Devposthigh confidencetext_message.py:25— send_text uses SinchClient sms.batches.send to deliver an SMSmain.py:38— webhook route calls send_text(message) after calendar event creation
Automated end to end workflow (email to calendar to text) without manual trackingCode-supported
Automates task management so users don't need manual tracking
Claimed on Devpostmedium confidencemain.py:34— process_incoming_email webhook chains get_message_and_add_downloads, add_event_to_calendar, and send_text, but relies on an external webhook trigger (e.g. Gmail push notification) that is not configured anywhere in this repo, so full automation is not demonstrated end-to-end
Distinguishing urgent tasks from general informationCode-supported
Accurately interpreting context of emails to distinguish urgent tasks from general information
Claimed on Devpostlow confidencegcal.py:12— determine_message_type classifies messages as 'event' or 'reminder' via GPT, which is a coarse proxy for urgency/priority but there is no explicit urgency classification or prioritization logic
Machine learning based improved task recognition/prioritization (future roadmap)Claimed only
Plans to incorporate machine learning to improve task recognition and prioritization
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.