You are browsing as a guest. Sign up (or log in) to start making projects!

Canvas Sweeper

  • 19 Devlogs
  • 120 Total hours

Canvas Sweeper is a planning app that connects Canvas and Google Calendar to help students organize assignments, manage deadlines, and create smarter study schedules.

Ship #1

Canvas Sweeper is officially shipped.

canvassweeper.com

The problem I wanted to solve was pretty simple:
Canvas tells you what assignments you have, but it does not tell you how to fit all of that work into your actual life.

Canvas Sweeper connects to Canvas, pulls your courses and assignments, tracks due dates and missing work, prioritizes what matters most, and turns everything into an actual study schedule based on your routines, school schedule, preferred study times, workload limits, and other commitments.

It also includes:

  • Google login
  • Canvas connection + assignment sync
  • assignment workspace
  • smart prioritization
  • automatic study plan generation
  • recurring routines for school, rowing, clubs, commute, meals, sleep, work, and custom blocks
  • student profile + study preferences
  • Google Calendar integration
  • Canvai ( Canvas ai )
  • account/privacy controls
  • account deletion
  • AI history deletion
  • settings
  • security checks, testing, Docker, CI/CD, and a self-hosted Ubuntu deployment

3 major quality-of-life improvements

1. Turns Canvas into an actual plan
Instead of seeing a giant list of assignments and figuring everything out yourself, Canvas Sweeper decides when there is actually time to work on each assignment.

2. Plans around your real life
School, practices, clubs, commute, sleep, meals, work, and other routines can all be added so it does not schedule homework when you are busy.

3. Automatically prioritizes important work
Deadlines, missing assignments, tests, workload, and your preferences are considered so the most important work gets attention first.

Why this is a QoL improvement

The goal is to remove a bunch of repetitive planning. Instead of checking Canvas, checking your calendar, thinking about everything due, finding free time, and manually deciding what to work on, Canvas Sweeper brings those steps together.

Working project

The app is live and usable. Google login works, Canvas connection works, assignments can sync, routines/preferences can be configured, and the planning system can turn active assignments into a schedule.

The Canvas integration is complete.

Google Calendar can be connected, but its public OAuth configuration is still going through Google’s verification process, which can take a few weeks. Google may currently show an unverified-app warning during that connection flow, and testers can continue through the advanced option if they choose to.

One note about the demo video: I currently have no active Canvas assignments, so there is nothing for Canvas Sweeper to turn into a study schedule in the recording.

Effort / execution

This ended up becoming way bigger than I originally expected. I built the frontend and backend, Canvas and Google integrations, database, authentication, planning logic, security systems, testing, Docker setup, CI/CD, and deployment.

I also decided to self-host the actual application on my own Ubuntu server instead of using a normal app hosting platform, so I ended up learning Linux, Docker, networking, HTTPS, OAuth, APIs, databases, security, and production deployment along the way.

Definitely a lot of hours went into this.

Canvas Sweeper is live!!! Thanks for watching the journey!!

  • 19 devlogs
  • 120h
  • 11.90x multiplier
  • 1426 Stardust
  • Frictionless
Try project → See source code →
Open comments for this post

18m logged

finally found the issue - i set up google auth wrong and accidentally made it so only one person could sign up fixing that tomorrow, hopefully nothing else breaks.

0
0
48
Open comments for this post

1h 58m logged

Canvas Sweeper - Authentication Testing( Devlog #16 )

Had to reconnect Supabase today, which took a bit longer than expected. I’m now testing the full authentication flow with Google OAuth and fixing the last few signup/login issues.

If everything goes smoothly, Canvas Sweeper will probably launch over the weekend 👀

0
0
32
Open comments for this post

4h 48m logged

Unfortunately I have somehow gone in a complete circle trying to launch this

I have never deployed anything before, so I guess there’s a first time for everything.

97.3% chance Canvas Sweeper launches tomorrow.

Sorry for the delay. Was definitely not part of the plan.

0
0
30
Open comments for this post

3h 18m logged

Canvas Sweeper Launch Prep ( Devlog #15 )

Today I finished the final prep for launching canvas sweeper online. I spent most of the time making sure everything was secure, stable, and ready instead of rushing.

I completed the Docker setup, hardened the frontend and backend containers, added security checks, verified the deployment pipeline, and prepared the Ubuntu server deploymen. I also finished the final testing, image verification, and release preparation needed before putting the app online.

What’s Next

  • Finish the final server setup
  • Connect the deployment
  • Launch Canvas Sweeper online tomorrow

THANKS FOR READING!!!!

0
0
19
Open comments for this post

6h 46m logged

Canvas Sweeper Deployment ( Devlog #14 )

I’m finally getting Canvas Sweeper ready to go online. I’m going to host it on my own Ubuntu server using Docker, then connect the frontend, backend, database, HTTPS, and the public URL.

Since I already have the server, I won’t pay for hosting like Vercel or Render, which is pretty cool because I can run the whole thing myself and keep upgrading it later.

Today I worked on getting the release ready and security. I added and tested rate limits, user isolation, secret scanning, CodeQL, Gitleaks, container scanning, safer Docker builds, and a full GitHub release pipeline. I also spent a lot of time fixing random CI issues that only showed up once everything started running in GitHub.

What’s Next

  • Finish the last security checks
  • Set up the server
  • Connect the domain
  • Put Canvas Sweeper online
0
0
27
Open comments for this post

9h 2m logged

Canvas Sweeper - Beta Security & Release Preparation ( Devlog #13 )

Features / Improvements

Added AI safety improvements:

  • AI claim grounding so canvai cannot make stupid academic conclusions
  • Structured ai responses tied to real evidence
  • Prompt injection protection
  • Ai context and replay safety improvements

Added AI privacy controls:

  • ai enable/disable preference
  • ai history deletion
  • Account deletion system
  • Updated ai disclosures and privacy explanations

Added security protections:

  • User isolation testing to prevent students from accessing other users data
  • Rate limiting for authentication, Canvas, Calendar, planning, and Canvai ai
  • Request size limits to prevent abuse
  • Operation locks to prevent duplicate expensive tasks
  • Error and logging sanitization
  • Security headers and authenticated response cache protection
  • Secret scanning and CI security improvements

Added deployment and release preparation:

  • Beta deployment configuration
  • Secure Docker boundaries
  • CI/CD security improvements
  • Dependency and supply chain checks
  • Updated privacy policy and terms of service
  • Data retention and deletion documentation

Security Work Completed

  • Authentication hardening
  • Authorization and user isolation testing
  • API abuse protection
  • ai security review
  • Provider security boundaries
  • Data lifecycle controls
  • Account deletion testing
  • Privacy and legal preparation

What’s Next!!!!

  • Finish final deployment steps
  • Connect the beta URL
  • Prepare Canvai for its first public users

The first public beta release should be ready tomorrow.!!!!!

THANKS FOR READING!!!

0
0
49
Open comments for this post

8h 51m 56s logged

Canvas Sweeper — Beta Preparation & AI Upgrade ( Devlog # 12 )

Recently, I finished a lot of the final polish before letting other people test it. All major pages and workflows have been added, and I have been focusing on making the experience feel like a real product.

the most annoying bugs I fixed was the Canvas connection status. I probably spent 4 hours fixing a tiny red connection box that was not turning green. It ended up being sync states, cached data, and different parts of the app interpreting connection status differently.

What’s Next
Before releasing a beta, I’m focusing on making Canvas Sweeper safe and ready for real users:

  • Improving security and protecting student data
  • Creating privacy policies and terms of service
  • Improving AI privacy, safety, and transparency
  • Testing user data isolation
  • Preparing the app for a private beta launch

THANKS FOR READING!!!

0
0
28
Open comments for this post

8h 4m logged

Canvai AI - Making Canvas Smarter ( Devlog # 11 )

Canvai has grown a lot since the last update. I finished building the foundation for Canvai ai and started preparing the next phase of the project.

Features

  • Complete Canvas assignment integration
  • Automatic study planning with Google Calendar
  • Student modeling based on completed work and feedback
  • Adaptive Planning with workload analysis, simulations, and recommendations
  • Canvai ai foundation with NVIDIA ai integration
  • Safe ai architecture with read-only tools and evidence-based responses
  • Redesigned Adaptive Planning experience to match
    the final product design

What I Learned

  • Designing ai systems around existing data instead of replacing them
  • Building safe ai features with strict boundaries ( so nobody drains my pockets )
  • Creating large full stack applications with many connected systems
  • Improving user experience through design reviews and testing
  • How much work goes into turning a prototype into a real product

What’s Next

I’m currently working on redesigning Canvai Assistant and making the ai features feel like a real assistant. The goal is to let students ask questions about their assignments, schedules, risks, and progress while keeping everything evidence based and safe.

THANKS FOR READING!! Page of free Nvidia ai APIs

1
0
78
Open comments for this post

5h 34m logged

Canvas Sweeper - Building the Brain( Devlog #10 )

Canvas Sweeper has grown a lot since the last update.

Over the past few missions, I built the core systems that power Canvai:

Features

  • Canvas assignment intelligence: analyzes deadlines, workload, risk, and priority

  • Smart scheduling engine: creates realistic study plans around school, rowing, and personal commitments

  • Google Calendar integration: lets approved study plans become real calendar events

  • Learning system: tracks completed work and improves understanding of planning accuracy

  • Student modeling: learns from completed sessions and creates evidence-based insights

  • Canvai assistant foundation: explains plans, risks, and recommendations without using AI yet

  • Advanced planning: workload forecasting, exam planning, dependencies, and what-if scenarios

Built With

  • Next.js
  • FastAPI
  • PostgreSQL / SQLite
  • Docker
  • Google Calendar API
  • Canvas API
  • TypeScript
  • Python

What I learned this session

  • Building large full stack systems takes much more than just writing features

  • Designing reliable data models before adding AI is important

  • Creating explainable systems is much harder than creating simple automation

  • Testing, migrations, and security

What’s Next
The foundation for Canvai (canvas ai) is finally coming together. The next step is improving the user experience and preparing the system for the future AI phase. I am also making the page for the ai assistant and brain.

THANKS FOR READING!!!

0
0
15
Open comments for this post

6h 17m 8s logged

Canvas Sweeper = Final Stages! hopefully ( Devlog #9 )

Canvas Sweeper is finally fully functional and looking much better than before. I’ve connected the new UI to the real app and finished most of the core planning system.

Built with

  • Next.js + React
  • FastAPI
  • SQLAlchemy + Alembic
  • SQLite
  • Canvas API
  • Google Calendar API
  • Docker

What it can do

  • Sync real Canvas assignments
  • Build study plans around your schedule
  • Review and edit sessions
  • Publish approved plans to Google Calendar
  • Track progress and reschedule work

Next

  • Supabase/PostgreSQL
  • Vercel deployment ( Hopefully soon )
  • Custom domain ( Already setting up )
  • Security and privacy improvements
  • Invite only beta
  • Background syncing
  • AI task breakdown and smarter estimates

THANKS FOR READING!!!

0
0
29
Open comments for this post

7h 58m 43s logged

I Severely Underestimated This UI Redesign ( Devlog #8 )

I thought implementing the new Canvas Sweeper UI would be a quick frontend update.

It was not…

I’ve added the new dashboard, assignments page, and plan page, but I still need to finish the rest, including settings and all the smaller screens. Then I have to connect everything properly and make sure every button, state, animation, and real data flow actually works .😬

So this has officially turned into a multi day project, but it’s finally starting to come together. After the UI is fully finished and working, I can finally move on to the AI phase. THANKS FOR READING!!

0
0
17
Open comments for this post

9h 6m logged

Canvas Sweeper’s New UI Is Almost Done ( Devlog #7 )

I implemented the new dashboard, assignments pages, planner screens, settings, and the rest of the redesigned app. At the moment everything is using demo data while I connect the new frontend to the real Canvas and Google Calendar systems.

This took way longer than I expected because I had to rebuild a lot of the frontend stack without breaking the existing backend, authentication, scheduling system, or calendar publishing. The hardest parts were recreating all the animations, keeping the design consistent across every page, and making sure the new UI could still work with the real data.

What I worked on

  • New dashboard
  • Assignments and detail pages
  • Planner and scheduling screens
  • Settings and account pages
  • New animations and design system

The new pages should be fully functional tomorrow or the day after. After that, I’m finally moving on to the AI phase

0
0
13
Open comments for this post

7h 30m logged

My Own Server ( Devlog #6 )

(Picture of the server 😬, hopefully getting a case soon)
Every day this project just keeps getting bigger. What started as a software project is now growing into a hardware project too. I wanted to make my own server to run my projects locally and create a dedicated machine for development, as my computer could not handle it anymore.

I built this server completely from parts I found through thrift stores, garage sales, and things I was able to get for free. It has been really cool taking old hardware and turning it into something useful.

Features

  • 🖥️ Dedicated local server for running projects
  • ⚙️ Full-stack development environment
  • 🌐 Local hosting for applications and services
  • 🔒 Remote access through SSH

Hardware

  • Intel Xeon 22-core / 44-thread processor
  • 64GB DDR3 ECC RAM
  • 1GB DDR3 VRAM GPU
  • 1000W Power Supply

Built with

  • Ubuntu Server
  • OpenSSH
  • Python development tools
  • Full stack development tools

What I Learned
Setting up this server took much longer than expected. Installing Ubuntu Server, configuring everything, and fixing all the small issues was definitely a challenge, but I learned a lot about hardware, Linux, and server management.

Next Steps
I am currently continuing development on the full stack side of things and getting everything ready to run locally on this server. Once that is finished, I will start working on the AI phase and adding more advanced features.
Also ignore whats on the homepage

2
0
117
Open comments for this post

8h 11m 20s logged

Building the Rest of Canvas Sweeper!

The animated landing page from my last devlog is officially finished! 🎉 Now we are working on designing the rest of the app to match, including the dashboard, assignments, planner, and settings pages so everything feels more polished.

At the same time, I’m wrapping up Phase 4, which is all about making sure the scheduling system can create, review, and publish reliable study plans before moving on to Phase 5, where I’ll start adding AI to make planning even smarter.

Working on now

  • 🎨 Dashboard & app pages
  • 📅 Final Phase 4 scheduling improvements
  • 🤖 Getting ready for the AI phase
0
0
73
Open comments for this post

8h 10m logged

Redesigning Canvas Sweeper!

Me and my friends took a short break from adding new features to completely redesign the Canvas Sweeper UI. I wanted the landing page to feel more like an Apple product page, with smooth scroll animations that show assignments turning into an organized study schedule.

I just finished implementing the new landing page and UI style! Next, I’m redesigning the dashboard, assignments, planner, settings, and the rest of the app to match.

What I worked on

  • Animated landing page
  • Visual Canvas-to-calendar story
  • Cleaner typography and layout
  • Hopefully stop looking vide coded
0
0
81
Open comments for this post

8h 20m logged

Canvas Sweeper is getting smarter (no ai yet)
I have no active assignments at the moment since it is summer time but you can see all of your previous assignments and late assignments, thus canvas connection is working

Since my last devlog, I finished connecting Canvas Sweeper to my real Canvas account and Google Calendar, and I started building the main scheduling system.

The app can now use my assignments, deadlines, existing calendar events, sleep schedule, school, rowing, and other commitments to find free time and build a study plan around my actual schedule.

The biggest challenge has been making Google Calendar publishing safe. I’ve been fixing bugs involving duplicate events, sleep hour scheduling, rescheduling, and failed calendar syncs. Next, I’m finishing testing and making sure everything is reliable before moving on to the next phase, which is to implement ai.

0
0
33
Open comments for this post

6h 40m 51s logged

After about 6 and a half hours of work, Canvas Sweeper is finally connecting to my real Canvas account and Google Calendar! 🎉

The app can now import my actual courses and assignments, and the foundation for the scheduling system is in place. Eventually, it will look at my calendar, see when I’m busy with things like school and rowing, and automatically build a study schedule around my free time.

The hardest bug so far was getting rid of “Demo Mode.” Everything on the backend was working, but the frontend still thought my account was fake. After lots of debugging, I finally got it and got everything working with real data.

Next up is building the intelligent scheduling engine and removing the last bits of demo and hardcoded data before the app eventually goes public

0
0
11
Open comments for this post

8h 34m 53s logged

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
0
0
16

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…