/spark

Open source learning management system.

Primary LanguageTypeScriptMIT LicenseMIT

Spark Logo

Spark
Learning Management System


Spark is an open source learning management system, designed and built for Spark, a digital skills initiative led by a southern California nonprofit, Inland Empire Software Development, Inc. We promote free and open source software.


👨‍💻 Getting Started

To get started, make sure to fill out the .env file with the appropriate information. Make sure that all prerequisites are met or application won't operate correctly.

The application has two parts to it - the application itself and storybook.

auth screenshot

Getting Help

Any questions or for support, please open up an issue and label it appropriately support.

If you have any questions, please ask on our Slack. We welcome everyone to our Slack, so don't be afraid to join! Have fun coding!

Join link

Prerequisites

The minimum requirements to run this include:

  • Redis
  • MySQL
  • Mail SMTP provider
  • Yarn

🌐 Installing

A step by step series of examples that tell you how to get a development env running.

  1. Update your .env file with the required information. Make sure the mysql and redis information is correct. The mail information is used for the mail system, make sure that is correct or you won't receive account creation verification email or password reset emails. You also need to create a JWT key and an API secret key.

.env example input

JWTKEY=Ds~4lq~}.?*f~Ql$42J%aR7%SoKxaN
SECRET=SklZvh3a0PwQev901A1zT23vlG
  1. Install required packages
yarn install
  1. Start local development environment.
yarn dev
  1. Start storybook instance
yarn storybook

💡 Features

  • Pages for authentication (login, logout, reset), dashboard, welcome, reset password, confirmation, home and logged-out. HTTPOnly token (JWT) used.
  • Protected pages which can be turned on and off by page.
  • Redirection system based on user authentication state.
  • Email system with very simple template system.
  • SASS based.
  • Typescript based, makes development a breeze.
  • UIKit notification system.
  • Models directory and option for initial DB setup.
  • ESLint and Stylelint for development.
  • React Context handles state at the parent level.
  • Storybook integration for self documentation and design system generation.

🔨 Built With

  • Next.js
  • MySQL
  • Redis
  • Typescript
  • SASS
  • UIKit - A clean CSS library
  • Nodemailer
  • Storybook

For development:

  • ESLint
  • Stylelint
  • Jest

🤝 Contributing

All contributions are welcome and we invite everyone to open issues for suggestions and/or bugs.

  • If you want to contribute, please open up an issue.
  • If you start working on a feature, branch off of the master branch as it should be the most up-to-date.

📓 Development Team

  • 👤 Lloan Alas
  • 👤 Jacob Goodwin
  • 👤 Tony Nguyen
  • 👤 Andy Mendez
  • 👤 David Huang
  • 👤 Katherine Orho
  • 👤 Greg Rojas
  • 👤 Raul Jauregui

See also the list of contributors who participated in this project.

🗒 License

This project is licensed under the MIT License - see the LICENSE.md file for details