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.

Built With

Share this project:

Updates

Submission history