Inspiration
As students, we know how easy it is to miss something important when deadlines are spread across Canvas, course announcements, emails, and syllabi. Job searching creates the same problem: online assessments and interview scheduling messages can get buried in Gmail. We built DueScope to bring those important tasks into one place while still letting the user verify where every deadline came from.
What it does
DueScope imports Canvas assignments, reads pasted course updates, and scans job-related Gmail messages in read-only mode. It creates one dashboard for academic deadlines, online assessments, and interview scheduling tasks.
Instead of automatically trusting every message, DueScope shows the original evidence behind each deadline. If a course deadline changes, the app creates a proposal for the student to review. If a job email includes a deadline, DueScope creates a pending reminder that the user can approve or dismiss before anything is added to Google Calendar.
How we built it
We built the frontend with Next.js, React, TypeScript, Tailwind CSS, and Lucide icons. The backend uses Python, FastAPI, and Pydantic.
We integrated:
Canvas REST API to load courses and import assignment deadlines
Gmail API to read job-related messages without sending, editing, or deleting email
Google Calendar API with OAuth and PKCE to add approved events to a user’s calendar
Ollama with Gemma 3 for local AI-assisted extraction from course announcements, emails, and syllabus text
icalendar to export approved academic deadlines as an .ics calendar file
Challenges we ran into
One challenge was making sure automation did not create more problems than it solved. Dates can be unclear, messages can conflict, and a Gmail message asking someone to choose an interview time is not the same thing as a confirmed interview. We addressed this by keeping source evidence visible, validating timezone-aware dates, and requiring user approval before Google Calendar is changed.
Accomplishments that we're proud of
We built a working end-to-end workflow that connects real Canvas course data, Gmail job messages, and Google Calendar. DueScope can import Canvas deadlines, detect changes in course updates, create reviewable academic deadline proposals, track job application stages, and create pending reminders for online assessments or interview scheduling.
We are especially proud that DueScope does not silently change a student’s calendar. Every important deadline includes source evidence, and Calendar updates require clear user approval.
What we learned
We learned that useful AI products need more than extraction—they need trust. A deadline is only helpful if the user can see the source, understand why it was created, and correct it when needed.
We also learned how to build a full-stack application around external APIs, OAuth flows, structured data validation, reconciliation logic, and user-centered approval steps. Most importantly, we learned that good productivity tools should reduce work without taking control away from the person using them.
What's next for DueScope
Next, we would add persistent storage so deadlines and job records survive backend restarts, scheduled background syncs for Canvas and Gmail, notification preferences, stronger workload forecasting, and support for more student platforms.
Our goal is to make DueScope a trusted layer between the systems students already use: one place to see what changed, verify the source, and act with confidence.
Log in or sign up for Devpost to join the conversation.