/courselit

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Website | Getting started | Documentation

Chat Release Lgtm License

Introduction

CourseLit is a batteries included learning management system (aka LMS) for everyone. It is an open source alternative to Techable, Thinkific, Podia, Teachery, LearnDash and the likes.

It comes pre-equipped with all the basic tools you need to efficiently run and administer your online teaching business. Features include course authoring, student management, payment processing (via Stripe), website builder, custom sales pages and analytics (very limited as of now).

Check out this live example to see what you can build with CourseLit. Click here.

Screenshot

courselit cms screenshot

Getting Started

Visit courselit.app to use the cloud hosted version. Sign up for a free account to get a 14 days trial period to experience the platform without any restrictions. No credit card required.

To install CourseLit on your own server, please follow our official guide.

Development

The project is organised as a mono-repo. It uses Yarn workspaces for managing the mono-repo.

To set up the development environment, first clone the project on your local machine and cd to its diretory.

Then replace the values in .env file located inside the apps/web folder with your enviroment's configuration.

Now run the following commands from the root directory of the project.

# Install dependencies
yarn install

# Build the packages
yarn build

# Start the app
yarn dev

That's it! Now you can dive into the code base.

Medialit

CourseLit uses MediaLit as its backend for managing media assets. It is a paid service and you need to have an account on it to store your files in the cloud.

If you do not want to use the cloud hosted version, you can roll your own instance. Add the following config to the .env file to use your own MediaLit instance.

MEDIALIT_SERVER=medialit_server_location

Writing Your Own Widget

You can add additional functionality to your application via building your own widgets. Have a look at this document.

Environment variables.

Have a look at the docker-compose.yml file to know what all environment variables are available for you to tweak.