AI Canvas Planner
Its highkey broken,I can’t fix it for now and the ui sucks but this is my newest project! AI Canvas Planner is a full stack web application that automatically turns my Canvas assignments into an intelligent study schedule. Instead of just copying due dates onto a calendar, it connects to my Google Calendar, sees my existing schedule (school, rowing, appointments, etc.), and builds personalized study sessions around my free time. Right now it’s designed for my own workflow, but once it’s polished I plan to make it public so other students can use it too.
Features::
- 📚 Connects to Canvas to import assignments and courses
- 📅 Connects to Google Calendar to see existing events and availability
- 🧠 Automatically makes study sessions around your schedule
- ⚡ Prioritizes missing assignments, upcoming deadlines, and important work
- 🎯 Designed to be fully configurable so everyone can customize how their schedule is built
- 🔄 One-click assignment synchronization
- 🔐 Secure Google OAuth authentication
- 📱 Modern responsive interface with real-time updates
- 🚀 Planned public release after the scheduling engine is fully completed
Built With:
- Next.js
- React
- TypeScript
- FastAPI
- Python
- SQLite (development)
- Docker & Docker Compose
- Google Calendar API
- Google OAuth 2.0
- Canvas LMS API
- Alembic
- SQLAlchemy
- Vitest
- Playwright
- Pytest
APIs & Services:
- Google Calendar API
- Google OAuth
- Canvas LMS REST API
- Docker
- GitHub
Biggest Challenges So Far
One of the hardest parts has been getting multiple APIs to work together. Google OAuth, Google Calendar, and Canvas all have different authentication flows and edge cases. I also spent a long time fixing down timezone bugs where Canvas timestamps and SQLite stored dates differently, causing assignments to crash until I normalized everything to UTC.
Another frustrating bug happened after I connected Canvas successfully. The backend was working perfectly, but the frontend kept thinking it was still in demo mode, so it showed that Canvas wasn’t connected even though all of the API requests were succeeding. Bugs like these have taught me a lot about debugging full-stack applications and how frontend and backend state can get out of sync.
What I Learned
- Building a full-stack web application from scratch
- Implementing secure OAuth authentication
- Working with multiple REST APIs at the same time
- Designing database schemas and migrations
- Debugging frontend and backend communication
- Managing Docker containers and local development environments
- Writing automated tests for both frontend and backend
- Handling timezones and date serialization correctly
- Building software that solves a real problem I deal with every day
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.