Inspiration
We decided to make a learning management system using new technology as part of the "Try Something New" theme. Our final product is called "Crimson LMS" and supports some of the common features you need to manage students and classes.
What it does
Crimson LMS, while not complete, supports the following:
- Adding classes
- Enrolling in classes
- Dropping a class
- Assigning instructors
- Authentication via Auth0
How we built it
The core of our project uses Prisma ORM, this was a technology none of us had worked with before. While it sped up development for certain parts of the app, we ran into some significant challenges with it that limited how much progress we could make.
The front end of the application uses ReactJS and Mantine. dev, both of which worked great for our purposes, Mantine is a UI framework that was also new to us, but unlike Prisma, it worked great and we didn't have any issues with it.
Challenges we ran into
Getting Prisma to work properly and understanding how the many-to-many relationships worked was a challenge. Furthermore trying to assign grades to assignments for each student wasn't easy to implement and we didn't end up completing it.
Accomplishments that we're proud of
The login system works great, Auth0 made it super easy to set up and the class import script allowed us to get a good set of sample class data for testing.
What we learned
- ORMs are great until they're not.
- Auth0 is awesome
- Don't pick a super-ambitious project for a 24-hour hackathon
What's next for Crimson LMS
We probably won't continue working on this, if we do it'll require a pretty major rewrite of the entire backend and most of the frontend.
Log in or sign up for Devpost to join the conversation.