DEV Community

Bridget Amana
Bridget Amana Subscriber

Posted on

Reviving My 2-Year-Old Abandoned LMS Project with Copilot

GitHub “Finish-Up-A-Thon” Challenge Submission

This is a submission for the GitHub Finish-Up-A-Thon Challenge

What I Built

I built Academia, a modern, delivery-only Learning Management System (LMS) designed for creators who want a premium, distraction-free environment for their students.

With Academia, educators can spin up their own custom academy, build out rich curriculums with video and text lessons, and securely invite students via email magic-links. Once a student accepts an invite, they are dropped into an isolated, hyper-clean student portal that tracks their course progress in real-time.

This project started two years ago during a hackathon. I had this really great idea, but I was still very much a beginner. Between the tight timeframe, lack of sleep, and my slow coding speed, I just couldn't pull through to finish the project in time to submit. It sat abandoned in my repositories, gathering dust. Finishing it means finally delivering on the exact vision I had in my head two years ago, but with the skills and architecture of today.

Demo

Live Site
Repository

The Comeback Story

I always told myself I’d finish this project "after the dust settles," but I never got around to it. When I saw this challenge, I knew it was time. Just looking at the 2-year-old repository gave me an instant headache.

The packages were entirely outdated, Vercel was throwing massive build errors, and running npm run dev was painfully slow. Basically, everything was lagging.
Vercel build error of academia

I seriously considered just starting a fresh repo from scratch. I figured I would just look at the shabby design I created two years ago and try to manually copy-paste the "important" code over, because I knew updating the existing mess would be an absolute nightmare.

But instead, I decided to lean heavily on GitHub Copilot Auto (so I could automatically get the best models for the job) to see if we could salvage and modernize the original codebase.

Here is the story of my before-and-after journey, and how Copilot helped me finally finish what I started.

My Experience with GitHub Copilot

First things first, to get the ball rolling, I had to do some groundwork to make my workflow smoother from here on out. I started by installing specific agent skills into Copilot: React Best Practices and Web Design Guidelines.

One more thing: you can never go wrong with clear instructions. I added my general guidelines and instructions to the project to keep the AI aligned with my coding style. (Here it is if you want a peek at it: GitHub Copilot Instructions.

Before we could build anything new, we had to stop the bleeding. The codebase was flooded with deprecated packages and failing builds.

I moved to discussing the first issue with Copilot: fixing the build errors so I could actually run the code and see what it looked like at the moment. We kicked off by systematically updating core dependencies, installing new ones we needed, and safely uninstalling the outdated bloat.

To handle the massive architectural cleanup, I gave Copilot a very specific prompt so I can get a birdseye view of fixes and features.

copilot prompt

This set the tone for the rest of the work as this was our way of tracking what needs fixing and what has been done

Heres a list of changes made with copilot

  1. Ripping Out the Fake Data The 2-year-old dashboard was full of fake, hardcoded data and clunky legacy components. Academia educators page

With some strategic prompting, Copilot went on a deep sweep. It ripped out all the dead code, deleted the unused mock images, and completely sanitized the repository. Having Copilot navigate the file tree to find and delete orphaned imports saved me hours of manual hunting.

  1. A Complete UI Overhaul The old UI was a bit inconsistent and not that great-looking. We completely changed the design system, keeping the core colors. We stripped away the clutter and implemented a clean, flat, and premium design.

Before and after academia signup page

  1. Adding new Features The original project didn't even have a functioning student side! We built a student portal from scratch. We wired up secure Firebase authentication, integrated the Resend API for email invitations, and wrote the backend logic to track real-time course progress.

Finally, one thing I will never get tired of using Copilot for is generating commit messages. After hours of intense refactoring and feature-building, not having to think about how to summarize my changes is the ultimate luxury.

Conclusion

What started as a daunting, headache-inducing legacy codebase turned into a sleek, modern, production-ready MVP. Copilot didn't just write code for me; it acted as my Principal Engineer, helping me architect the cleanup, update dependencies without breaking the app, and build entirely new features faster than I ever could have two years ago.

I finally finished what I started!

Top comments (0)