PHPackages                             cms-orbit/lms - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. cms-orbit/lms

ActiveLibrary

cms-orbit/lms
=============

CMS Orbit LMS: TutorLMS-style learning management (courses, sections, lessons, quizzes, enrollments) for the Orbit admin engine.

4.3.0(5d ago)01↑2900%MITPHPPHP ^8.3

Since Jul 24Pushed 5d agoCompare

[ Source](https://github.com/cms-orbit/lms)[ Packagist](https://packagist.org/packages/cms-orbit/lms)[ RSS](/packages/cms-orbit-lms/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (3)Versions (5)Used By (0)

CMS Orbit LMS
=============

[](#cms-orbit-lms)

`cms-orbit/lms`는 Orbit 관리자 엔진 위에 TutorLMS 스타일의 학습 관리(LMS) 도메인을 더하는 패키지입니다. 코스 → 섹션 → 레슨/퀴즈 구조와 수강신청·진도 관리를 Orbit `Entity` 기반 관리자 화면으로 제공합니다.

> 이 패키지는 TutorLMS의 **기능/구조를 참고해 Orbit 규약으로 새로 구현**한 것으로, 원본 코드를 포함하지 않습니다.

단계별 로드맵
-------

[](#단계별-로드맵)

단계내용상태**Phase 1 — Core LMS**코스/섹션/레슨/퀴즈/수강신청/진도, 강사·수강생✅ 4.0.0**Phase 2 — 오픈마켓형 수익화**코스 가격·주문·쿠폰·강사 커미션/매출/정산✅ 4.1.0**Phase 3 — 참여 기능**Q&amp;A·리뷰·과제·수료증✅ 4.1.0**Phase 4 — 공개 프론트엔드**코스 카탈로그·강의 플레이어·체크아웃·학생 대시보드 (호스트로 publish되는 스캐폴딩)✅ 4.1.0오픈마켓(마켓플레이스)
------------

[](#오픈마켓마켓플레이스)

독립 강사가 코스를 판매하고 플랫폼이 커미션을 가져가는 모델입니다. `CheckoutService`가 주문 → 강사/플랫폼 수익 분배 → 결제 시 수강 등록을 처리합니다. 커미션 기본값은 `lms.marketplace.commission_rate`(기본 80%, 코스별 `commission_rate`로 재정의). 관리자 `Marketplace` 섹션에서 주문·쿠폰·매출·정산을, `Engagement` 섹션에서 리뷰·Q&amp;A·과제·수료증을 관리합니다.

공개 프론트엔드 스캐폴딩
-------------

[](#공개-프론트엔드-스캐폴딩)

```
php artisan lms:install-frontend        # 덮어쓰기: --force
npm run build                            # 또는 npm run dev
```

코스 카탈로그(`/courses`), 코스 상세, 강의 플레이어(`/learn/...`), 체크아웃, 학생 대시보드(`/my-courses`)의 React/Inertia 페이지와 공개 컨트롤러·라우트를 호스트로 게시합니다. **라라벨 스타터킷처럼** 게시 후에는 호스트가 소유·자유롭게 수정합니다. 체크아웃 스캐폴딩은 데모용으로 즉시 결제 완료 처리하므로, 프로덕션에서는 `CheckoutController::store()`의 표시된 지점에 실제 결제 게이트웨이를 연결하세요.

요구사항
----

[](#요구사항)

- PHP `^8.3`
- Laravel `^11.0 || ^12.0 || ^13.0`
- `cms-orbit/core` `^4.0`

설치
--

[](#설치)

```
composer require cms-orbit/lms
php artisan migrate
```

백엔드(엔티티·마이그레이션·메뉴·권한)는 패키지 auto-discovery로 **설치만으로**자동 등록됩니다. 호스트 파일 수정이 필요 없습니다.

도메인 모델
------

[](#도메인-모델)

- `Course` (`lms_courses`) — 제목, 슬러그, 강사(user), 난이도, 상태, 카테고리, 소요시간
- `CourseSection` (`lms_course_sections`) — 코스 내 정렬된 섹션(TutorLMS의 "topic")
- `Lesson` (`lms_lessons`) — 섹션 내 동영상/텍스트 단위, `is_preview` 무료 미리보기
- `Quiz` / `QuizQuestion` — 단일/복수/참거짓 문항(`options`·`correct` JSON)
- `Enrollment` (`lms_enrollments`) — 수강생의 코스 등록, 진도율·상태
- `LessonProgress` (`lms_lesson_progress`) — 레슨별 완료. `Enrollment::recalculateProgress()`가 이를 집계해 진도율/완료를 갱신

설정
--

[](#설정)

`config('lms.user_model')`로 강사/수강생 user 모델을 지정합니다(기본: 앱의 인증 user 모델). 설정을 게시하려면:

```
php artisan vendor:publish --tag=lms-config
```

드립 콘텐츠 &amp; 플레이어 옵션
--------------------

[](#드립-콘텐츠--플레이어-옵션)

코스에서 드립을 켜고(`drip_enabled`) 방식(`drip_type`)을 고릅니다: 수강 후 N일, 특정 날짜, 순차(이전 레슨 완료), 선수 레슨. 레슨별로 `drip_days`/`drip_date`/ `drip_prerequisite_id`를 설정하며 `Lesson::isUnlockedFor($enrollment)`가 잠금을 판정합니다(무료 미리보기는 항상 열림). 플레이어는 코스별 옵션(탐색 불가, 빨리감기 불가, 자동재생, 완료 후 진행)을 지원하며 스캐폴딩 플레이어가 네이티브 비디오에서 이를 적용합니다.

이수증 &amp; GUI 빌더 (관리자)
----------------------

[](#이수증--gui-빌더-관리자)

이수증 빌더는 **Orbit 관리자 엔티티**입니다. Engagement → Certificate Templates에서 템플릿을 만들고, 편집 화면의 커스텀 `ReactField`(`lms-certificate-builder`) 캔버스에서 텍스트/플레이스홀더를 드래그 배치합니다. 이 컴포넌트는 패키지가 소유하며 `frontend.json`의 `registrations`로 자동 등록됩니다(설치 후 `php artisan orbit:frontend-sync && npm run build`; `cms-orbit/core ^4.0.12` 필요).

`{{student_name}}`·`{{course_title}}`·`{{instructor_name}}`·`{{issued_date}}`· `{{serial}}` 치환을 지원합니다. `CertificateService::issue()`로 완료 수강에 발급하고 `renderHtml()`로 인쇄/PDF용 HTML을 렌더합니다. 학생은 스토어프론트의 `/certificates/{id}`에서 자신의 이수증을 보고 인쇄합니다.

강사 대시보드
-------

[](#강사-대시보드)

`/instructor`(게시된 스캐폴딩)에서 강사별 코스·수강생·매출(총/정산가능/정산완료)· 최근 리뷰·Q&amp;A를 확인합니다(`InstructorDashboardService`).

License
-------

[](#license)

MIT

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance99

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

5d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d4228d7eaafb1a5b13e853f87189815feefd9c21f31363d08ec509c47f29d0a?d=identicon)[cms-orbit](/maintainers/cms-orbit)

---

Top Contributors

[![XisoDev](https://avatars.githubusercontent.com/u/10387955?v=4)](https://github.com/XisoDev "XisoDev (4 commits)")

---

Tags

laravelcmslmsorbitcourseelearning

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/cms-orbit-lms/health.svg)

```
[![Health](https://phpackages.com/badges/cms-orbit-lms/health.svg)](https://phpackages.com/packages/cms-orbit-lms)
```

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M1.0k](/packages/statamic-cms)[typicms/base

A modular multilingual CMS built with Laravel, enabling developers to manage structured content like pages, news, events, and more.

1.6k20.4k](/packages/typicms-base)[statamic/statamic

Statamic

829179.5k](/packages/statamic-statamic)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[ecotone/laravel

Ecotone for Laravel — CQRS, Event Sourcing, Sagas, Durable Workflows, and Outbox on top of Laravel Queue, via PHP attributes.

21318.6k3](/packages/ecotone-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
