UPCOMING FEATURES
- commenting inside each lesson
- a separate theme app for courses creators
Campus - Online Courses Platform
Campus is a Kajabi clone plugin for October CMS. It lets you create an complete online course platform. People can purchase course and follow through the course with the pre-defined drip-method by the course author. You can set up your own fully functioning online courses with your own video, external video, audio, pdf, images and content.
DEMO
I can provide a demo link on demand if you are interested to know more about this plugin and associated theme. Just make the request. :)
Features
- OC v3 compatible
- multisite compatible (Note: the Campus plugin and its data must be installed in the primary site)
- a course is comprised of multiples modules themselves comprised of lessons.
- a course can be free to access, be purchased or a prior interview is necessary (by application).
- a course's access can be limited in time (to avoid fraud and sharing account)
- the pace of the course can be decided with the following options:
- All modules/lessons are instantly and always available
- Modules get available every X days
- Modules get available on a particular weekday
- Modules get available on a specific date
- a module can be set to be always available independently of the course drip-method chosen (useful for Bonus modules or Introduction type of modules)
- user checkout and fulfill the registration process after successful payment
- allow to externalize the customer onboarding process with an external application process (Ex: interview) and payment process
- notifications to customers and admin when a customer purchases a course
- notifications when a module gets unlocked and available (requires the cronjob to be installed)
- manual trigger for notification from the course author to customers when a new lesson has been added or updated
- course progress management (Lesson completion and general progress in the course)
- Free flow mode: capacity to decide if user is required to complete a lesson before seeing the next one or have access to all the lessons inside a module
- possibility to use a custom email template inside a course or let the system use the default one when a module is getting unlocked for the user
- thumbnail generation from video file (requires FFMpeg library to be installed on the server) at creation of lesson (settings)
- a lesson material can be:
- a video file
- an audio file
- a rich text content (with video, embed video, and/or audio)
- Images slideshow
- PDF slideshow
- attachments files
- lesson video resumes where you left it in the lesson page
- backend shortcuts access to modules'courses and lessons' courses (settings)
- easy way to reorder modules (from the course form) and lessons (from the modules form)
- can add notes aside each lesson for content creators. Helps to add reminders, to-dos,...
- compatible with RainLab.User v3
Multisite
The plugin is multisite compatible to allow this multisite configuration wiht only one October CMS installation.
Site www.domain.tld
: your marketing Website
Site app.domain.tld
The Campus plugin to manage the courses data and settings with the upcoing Campus App theme dedicated to the courses creators.
Site campus.domain.tld
: The Campus frontend for the customers
You will need to set which site is used to handle the courses data and select the CMS page from in the plugin settings.
In the previous example, it will be set to the site 2 app.domain.tld
Notification Emails
These are the notification emails that are sent using Campus.
Associated theme
[https://octobercms.com/theme/inherent-ecourses](ecourses theme)
Course Workflow
Demo data
The demo data provides you with 3 different test courses and a user. The user will be registered to 2 of the courses:
- Relationship Mastery for Men
- Online Cooking
- Learn to play the guitar
Note: This will create the corresponding folders in the media files to store videos and images.
Relationship Mastery for Men
Registration can be done after payment - This is a paid course - link to a Stripe Product.
Content is revealed automatically every 7 days from the user registration date.
Online Cooking
Registration is immediate as this is a free course -
All content is immediately available.
Learn to play the guitar
Registration is manual as this course needs a interview, which we call a By application course -
Content is revealed on Saturday's.
Upcoming versions
new features coming up:
- refactoring the webhook payment so that we can easily add new ones like Paypal
- adding a quizz feature for the lesson
- a theme implementing a UI for course creator to manage courses (to replace OC backend)
- a comment system underneath each lesson / or global forum attached to each course
- possibility to add a pinned message on the course UI
- send reminder to user who didn't check their new modules available
The following plugins are required
User
Front-end user management.
User
Front-end user management.
Forum
A simple embeddable forum
Forum
A simple embeddable forum
Location
Adds location based features, such as Country and State.
Location
Adds location based features, such as Country and State.
The following theme uses this plugin
Campus - Online Courses Platform Plugin
Campus is a Kajabi clone plugin for October CMS. It lets you create an complete online course platform. People can purchase course and follow through the course with the pre-defined drip-method by the course author. You can set up your own fully functioning online courses with your own video, external video, audio, pdf, images and content.
Features
- OC v3 compatible
- multisite compatible
- a course is comprised of multiples modules themselves comprised of lessons.
- a course can be free to access, be purchased or a prior interview is necessary (by application).
- a course's access can be limited in time (to avoid fraud and sharing account)
- the pace of the course can be decided with the following options:
- All modules/lessons are instantly and always available
- Modules get available every X days
- Modules get available on a particular weekday
- Modules get available on a specific date
- a module can be set to be always available independently of the course drip-method chosen (useful for Bonus modules or Introduction type of modules)
- user checkout and fulfill the registration process after successful payment
- allow to externalize the customer onboarding process with an external application process (Ex: interview) and payment process
- notifications to customers and admin when a customer purchases a course
- notifications when a module gets unlocked and available (requires the cronjob to be installed)
- manual trigger for notification from the course author to customers when a new lesson has been added or updated
- course progress management (Lesson completion and general progress in the course)
- Free flow mode: capacity to decide if user is required to complete a lesson before seeing the next one or have access to all the lessons inside a module
- possibility to use a custom email template inside a course or let the system use the default one when a module is getting unlocked for the user
- thumbnail generation from video file (requires FFMpeg library to be installed on the server) at creation of lesson (settings)
- a lesson material can be:
- a video file
- an audio file
- a rich text content (with video, embed video, and/or audio)
- Images slideshow
- PDF slideshow
- attachments files
- lesson video resumes where you left it in the lesson page
- backend shortcuts access to modules'courses and lessons' courses (settings)
- easy way to reorder modules (from the course form) and lessons (from the modules form)
- can add notes aside each lesson for content creators. Helps to add reminders, to-dos,...
Notification Emails
These are the notification emails that are sent using Campus.
Admin templates
admin-client-purchase
: Sent to the site admin when a course has been purchased.
Public templates
client-purchase
: Sent to the customer after a successful checkout process.client-registration
: Sent to the customer after a successful checkout process for website registration purpose.client-module-unlocked
: Sent to the customer when a module get unlocked (if the course is setup with drip content).client-updated-lesson-lang
: Manually triggered by course author. Sent to the customer when a lesson has been added or updated.
Note: Make sure the .env
variable ACTIVE_THEME is set with the active theme
Course Workflow
Demo data
The demo data provides you with 3 different test courses and a user. The user will be registered to 2 of the courses:
- Relationship Mastery for Men
- Online Cooking
- Learn to play the guitar
Note: This will create the corresponding folders in the media files to store videos and images.
Relationship Mastery for Men
Registration can be done after payment - This is a paid course - link to a Stripe Product.
Content is revealed automatically every 7 days from the user registration date.
Online Cooking
Registration is immediate as this is a free course -
All content is immediately available.
Learn to play the guitar
Registration is manual as this course needs a interview, which we call a By application course -
Content is revealed on Saturday's.
To seed the data
run the command php artisan campus:seed-demo {site_id}
example: php artisan campus:seed-demo 3
will seed the demo in the site Id 3.
You can then login with the following credentials
email: john@doe.com
password: johndoe9090
Installing the cron job worker
This job is handling the correct flow in the user's progress on their courses. It will move forward the user progress to the next module when it is required and send the appropriate email to notify the user.
Install the cron tab on your server as per October CMS documentation
Ex:
* * * * * php /october/artisan schedule:run >> /dev/null 2>&1
One time test the schedule job worker
or manually run the command to test php artisan campus:test-job
How to implement payment options
Stripe setup
The Campus plugin is using the Stripe Checkout Link.
First, create your Stripe account here.
Set the test mode.
Then, create a Stripe payment link page.
Copy/paste your payment page link url in your Course, in the tab
options of the form in the backend.
Ex: https://buy.stripe.com/3fsbYd1QO9cRgVKdQQ
Then go to your Stripe dashboard, menu developers, tab Webhook and add your webhook link relative to your application domain name. Ex: https://courses.mydomain.com/webhook/{your_token}
Note: {your_token} must be defined in the plugin settings
Grab your Stripe Product ID and paste it into the course, options tab, in the backend.
Note: the product you created for your payment link can be found on the product catalog page, then on the top right corner of the product detail page. A product ID looks like prod_PBzUOxYHmboLvN
Then head over your website and you can pay by using the credit card number 4242 4242 4242 4242, a expiry date in the future like 12/34 and a random CVC.
Components
[courseRegister]
[courseList]
[courseDetails]
[moduleDetails]
[lessonDetails]
Upcoming version
new features coming up:
- refactoring the webhook payment so that we can easily add new ones like Paypal
- adding a quizz feature for the lesson
- a theme implementing a UI for course creator to manage courses (to replace OC backend)
- a comment system underneath each lesson / or global forum attached to each course
- possibility to add a pinned message on the course UI
- send reminder to user who didn't check their new modules available
-
This plugin has not been reviewed yet.
-
1.3.3 |
Created table inherent_campus_user_progress Oct 09, 2024 |
---|---|
1.3.2 |
Seed UserGroup n Channel Oct 09, 2024 |
1.3.1 |
minor bug fixes Oct 04, 2024 |
1.3.0 |
multisite Oct 04, 2024 |
1.2.27 |
demo data seed bug fix Oct 04, 2024 |
1.2.26 |
preparation for integration comments within the lesson Oct 04, 2024 |
1.2.25 |
Add un/publish capacity to the listviews Sep 24, 2024 |
1.2.24 |
bug fix in the worker when there is no next lesson available in the next module Sep 11, 2024 |
1.2.23 |
update required plugins version Sep 10, 2024 |
1.2.22 |
Add choice in how the video are distributed in the lesson frontend Sep 09, 2024 |
1.2.21 |
handling a paused Order Sep 09, 2024 |
1.2.20 |
typo fixes Aug 18, 2024 |
1.2.19 |
Updated table inherent_campus_modules May 11, 2024 |
1.2.18 |
Updated table inherent_campus_courses May 11, 2024 |
1.2.17 |
refactoring user lang ui May 11, 2024 |
1.2.16 |
Update Demo Data and ReadMe Apr 04, 2024 |
1.2.15 |
Updated table inherent_campus_courses Apr 04, 2024 |
1.2.14 |
Add capacity to notify users upon new or updated lesson Apr 04, 2024 |
1.2.13 |
Updated table inherent_campus_customers Apr 04, 2024 |
1.2.12 |
Updated table orders and courses Apr 04, 2024 |
1.2.11 |
Updated table inherent_campus_customers Apr 04, 2024 |
1.2.10 |
Updated table inherent_campus_lessons Apr 04, 2024 |
1.2.9 |
Add Color Columns Apr 04, 2024 |
1.2.8 |
Updated table inherent_campus_modules Apr 04, 2024 |
1.2.7 |
Updated table inherent_campus_courses Apr 04, 2024 |
1.2.6 |
Change default materials value for lesson Apr 04, 2024 |
1.2.5 |
Updated table inherent_campus_courses Apr 04, 2024 |
1.2.4 |
Handles module defined drip content Apr 04, 2024 |
1.2.3 |
Add on pause column to Orders table Apr 04, 2024 |
1.2.2 |
General Refinements Apr 04, 2024 |
1.2.1 |
Add drip column in modules table Apr 04, 2024 |
1.2.0 |
Ready app for prod Apr 04, 2024 |
1.1.2 |
Add tags to Lesson Apr 04, 2024 |
1.1.1 |
adding notes to lesson; varioux bug fixes Apr 04, 2024 |
1.1.0 |
refactoring customer registration and course progress management Apr 04, 2024 |
1.0.9 |
Update Course Table with registration methods Apr 04, 2024 |
1.0.8 |
Update Customer table with location capacity Apr 04, 2024 |
1.0.7 |
bug fix Apr 04, 2024 |
1.0.6 |
Enhance customer course backend feature Apr 04, 2024 |
1.0.5 |
version production ready Apr 04, 2024 |
1.0.4 |
Add Last Available Lesson in the User Course Pivot Table Apr 04, 2024 |
1.0.3 |
Bug fix on Course Details Apr 04, 2024 |
1.0.2 |
Add product ID to courses table Apr 04, 2024 |
1.0.1 |
Creating tables Apr 04, 2024 |