Inspiration
At Los Altos High School, teachers can choose to use Canvas or Google Classroom. This is good for them, but it means students have to manage deadlines and announcements across platforms, which can lead to some confusion. We decided we wanted one place where we could see everything.
What it does
OneLMS is a website through which you can access assignments and announcements from Canvas and Google Classroom. It's build to be modular enough that you could add other LMSes to it, too!
How we built it
OneLMS uses React. To create the designs we wanted, we got help from some generative AI to create basic graphics in accordance with our design drawings. We then went back through and tweaked things to fit our needs, then linked everything together (as is typical of a website). OneLMS also has a Google OAuth sign-on to allow Google Classroom access and an input for a Canvas access token. We spent a lot of time trying to ensure security with the OAuth. Finally, we used the Gemini API to get Gemini's input in our priority list and cooked score features.
Challenges we ran into
Before we started this project, only one of our members had experience with React. One of our members had no experience with JavaScript and webdev at all. This resulted in a lot of Google, open source code and generative AI use.
Accomplishments that we're proud of
We are proud that we were able to produce a functional linked website after all the challenges and bugs we hit.
What we learned
We learned how important it is to have designs planned out— we had our UI planned on paper before we ever tried to write it or ask an LLM to make it, and it made it a lot easier. We learned a lot about how to use React, JavaScript and CSS. And, this being our first time working for so long on such a large programming project, we learned what it's like to work together on a program to achieve a shared vision.
What's next for OneLMS
There are many things that we did not have time to get to due to our lack of experience. We want to enhance support for Canvas Quizzes, refine our priority list generator, finish our Calendar functionality, clean up the code overall, save checklists to cloud and so much more.
Built With
- canvas-api
- gemini-api
- google-classroom-api
- ldrs
- luxon
- react
- vscode
Log in or sign up for Devpost to join the conversation.