An opinionated LMS plugin for Filament containing a user facing LMS panel and Resources for an existing admin panel
"require": {
"tapp/filament-lms": "*",
}
"minimum-stability": "dev"
"repositories": {
"tapp/filament-lms": {
"type": "vcs",
"url": "https://github.com/tappnetwork/filament-lms"
},
"tapp/filament-form-builder": {
"type": "vcs",
"url": "https://github.com/tappnetwork/filament-form-builder"
}
},
php artisan vendor:publish --provider="Tapp\FilamentLms\FilamentLmsServiceProvider"
run migrations after publishing
This will create resources that allow admin to manage course material.
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->plugins([
\Tapp\FilamentLms\Lms::make(),
])
}
}
- create the directory {project}/packages
- from within the packages directory, clone this repo
- (if necessary) add a type:path repository to project composer.json
contains the LMS experience for the end user
- user can view courses available to them
- completion status
- shown when progressing through a single course
- left sidebar showing lessons with steps expanding from them
- icons in sidebar indicating the type of material for each step
- middleware to resume current step
- middleware to prevent skipping steps
- profile
- anything else?
(should these be resource groups in existing panel or its own panel?)
- Top level of learning material data structure
- courses do not have an order. they are independant
- courses can be public or invite only
- Intermediary level data structure
- Has Order (e.g. lesson 1 must be completed before starting lesson 2)
- in the future we may want to add support for lessons containing lessons to allow clients more customizability (lesson 1 contains lesson 1.1)
- name optional
- Represents a single view in the LMS
- has order
- has material
- name optional
- Video (do we use vimeo or something else?)
- Survey (form for student to fill out)
- Quiz (unlike a survey, a quiz has correct answers and a score)
- Text (Wysiwyg?)
- Image