Welcome to the official repository for the OpenLMS platform created at Queen's University. This repository is a comprehensive collection of our generic & extensible platform code and our official documentation that may assist in initializing, configuring, and modifying your own instance of the platform.
The Open-Source LMS platform aims to make open education more accessible and usable to organizations. A blessing in the open education space is the ease of access to many great third-party courses hosted on unique online platforms. However, the curse and subsequent challenge lies in the lack of a centralized platform which can be used to assign and track the completion of these courses.
After creating an instance and configuring minor setup details, the platform is ready to use and effectively functions out of the box. However, the code base is intentionally structured to be easily extensible to fit your organization's needs.
To streamline our development process and fit the needs of most organizations, we utilize these frameworks and services:
-
Next.js is an open-source web meta framework using React to enable hybrid rendering of both the server and client side to significantly improve performance and SEO using Typescript.
-
Vercel is a cloud platform that allows developers to easily deploy web applications. It enables a seamless experience by taking care of deployment and scaling so developers can focus on their code.
-
Supabase is an open-source database infrastructure built on PostgreSQL with options for authentication, building APIs
-
Cloudflare is a global network designed to be secure, private, fast, and reliable. OpenLMS uses Cloudflare as a proxy between the Vercel production deployment and the user accessing the instance. This makes it ideal to mitigate against potential DDoS attacks and simplify the instance's DNS services.
-
The technology stack was chosen for its ease of deployment and emphasis on extensibility, ensuring future developers can easily adapt and expand upon it.
- For most organizations, the Vercel free
Hobby
tier is recommended, but larger organizations or those with specific deployment needs may use other methods to host the instance, with varying costs associated with this. - Supabase has a free tier with more than enough for a simple app (500k custom API calls/month, 500 MB database space, etc), but for higher-traffic instances the Pro plan ($25/mo) may be required
- A domain name is optional but desirable for a cohesive platform look in an instance's production deployment. We recommend Porkbun or Cloudflare Register for the lowest-priced domains, but almost any domain registrar suffices!
- Check out our platform developer guide for more detailed instructions on how to get started with an initial instance. Visit Developer Guide
- For ideas on potential features to extend the platform's functionality, check out our repository's project board and look under the
No Status
column for drafts and closed issues. Visit Project Board
Reid Moffat Project Manager & Software Architect |
Anthony Galassi Project Manager & Back-End Developer |
Graham Carkner Lead Front-End Developer |
Sara Hall Front-End Developer |
Louie Chung Front-End Developer |
Steven Ding Supervisor Assistant Professor in Computing at Queen's University |
Meghan Norris Customer Chair of Undergraduate Studies in Psychology at Queen's University |
We sincerely thank Steven Ding and Meghan Norris for all of their guidance, advice, feedback, and time that they've given us in developing this platform. It truly has improved the overall quality of our capstone project, and each team member has come out of this project having learned many things and become a stronger software developer.
We'd also like to acknowledge our course coordinator, Dr. Anwar Hossain, for enabling us to put our best foot forward via his feedback on our capstone presentations throughout the course!
We look forward to continuing our journey in the Computing world!
For more information or to ask questions not answered by our repository resources, please feel free to contact anyone from the core team through LinkedIn.