https://github.com/themeum/tutor
A complete WordPress LMS plugin to create any e-learning website easily.
https://github.com/themeum/tutor
Last synced: 6 months ago
JSON representation
A complete WordPress LMS plugin to create any e-learning website easily.
- Host: GitHub
- URL: https://github.com/themeum/tutor
- Owner: themeum
- License: gpl-3.0
- Created: 2019-11-22T06:15:51.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-03-25T07:10:25.000Z (over 1 year ago)
- Last Synced: 2025-03-25T08:24:08.691Z (over 1 year ago)
- Language: PHP
- Homepage: https://tutorlms.com
- Size: 66.9 MB
- Stars: 100
- Watchers: 13
- Forks: 71
- Open Issues: 68
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README

## What is Tutor LMS?
Tutor LMS is a complete, feature-packed, and robust WordPress LMS plugin to easily create & sell courses online. All the features of this learning management system hit all the checkpoints for a full-fledged online course marketplace.
Step 1: Please install these two composer package.
```
1. composer global require squizlabs/php_codesniffer
2. composer global require wp-coding-standards/wpcs
```
Step 2: Set WordPress as default coding standard. `(change your_username)`
```
phpcs --config-set installed_paths /Users/your_username/.composer/vendor/wp-coding-standards/wpcs
phpcs --config-set default_standard WordPress
```
Problem Fix:
If phpcs and phpcbf command not found as command, set it to your path variable.
`export PATH="/Users/your_username/.composer/vendor/bin:$PATH"`
## Development Setup
Follow the steps
1. [Configure WPCS](#wpcs) to write code that complies with the WordPress Coding Standard.
2. Clone the repository `git clone https://github.com/themeum/tutor.git`.
3. Checkout to `dev` brunch `git checkout dev`
4. Make your own brunch `git checkout -b your_brunch_name`
5. Go to vscode extension tab and install recommended extension.
6. Run `composer install` for install PHP dependency.
7. Run `npm install` for install js dependency.
8. Run `npm run watch`
9. Now open any SCSS file from assets directory and hit save.
## Contribution Guide
1. Make sure your code complies with the WordPress Coding Standard (WPCS) before open a PR.
2. Open a pull request (PR) to the `dev` branch. PRs to other branches will be closed without any discussion.
## Unit Testing
To run PHP unit testing in the development environment follow the below steps:
Go to the terminal then hit commands:
1. `composer install`
2. `bash bin/install-wp-tests.sh db_name user_name password host latest` ( [checkout details](https://make.wordpress.org/cli/handbook/misc/plugin-unit-tests/) )
3. `vendor/bin/phpunit --info`
If everything goes well then you should see the PHP unit info
## Running Cypress Tests
Follow these steps to run Cypress tests for the Tutor plugin:
### Prerequisites
1. Ensure Node.js is installed (v14+ recommended).
2. Install dependencies:
```bash
npm install
```
### Running Tests
#### Open Cypress Test Runner
To open the Cypress interactive test runner:
```bash
npm run cy:open
```
This launches the Cypress UI where you can select and run tests interactively.
#### Run All Tests Headlessly
To run all tests in headless mode:
```bash
npm run test
```
#### Run Specific Test Files
To run specific test files:
```bash
npx cypress run --spec "cypress/e2e/backend/**/*.cy.ts"
```
#### Run Tests with a Specific Browser
```bash
npx cypress run --browser chrome
```
### Test Structure
- **E2E Tests**: Located in `cypress/e2e/` directory.
- **Backend Tests**: Located in `cypress/e2e/backend/`.
- **Frontend Tests**: Located in `cypress/e2e/frontend/`.
- **Course Builder Tests**: Located in `cypress/e2e/course-builder/`.
- **Fixtures**: Test data in `cypress/fixtures/`.
### Environment Configuration
1. Create a `.env` file in the project root based on the `.env.example` template:
```
# WordPress site URL
CYPRESS_base_url=
# Admin credentials
CYPRESS_admin_username=
CYPRESS_admin_password=
# Zoom credentials
CYPRESS_instructor_zoom_account_id=
CYPRESS_instructor_zoom_client_id=
CYPRESS_instructor_zoom_client_secret=
```
2. Ensure your WordPress test site is running with the Tutor plugin installed and activated.
### View Test Results
- **Test Reports**: Generated in the `cypress/reports` directory.
- **Screenshots**: Automatically saved to `cypress/screenshots` when tests fail.
- **Videos**: Saved in `cypress/videos` when running headlessly.
### Troubleshooting
- If tests fail with authentication errors, check your credentials in the `.env` file.
- Clear `cypress/screenshots` and `cypress/videos` directories if they become too large.
- If tests hang, try running them separately or increasing the timeout: `npx cypress run --config defaultCommandTimeout=10000`.
## System Requirements
1. PHP – 7.0 (or later)
2. Database – MariaDB – 10.1 or later / MySQL – 5.7 or later
3. WordPress 5.5 or higher
4. Browser – Chrome, Firefox, Safari
5. Internet Explorer is not supported
6. Server Modules – mod_rewrite, cURL, fsockopen
7. Download the free Tutor LMS 2.0 Beta file
To get the free version of the Tutor LMS 2.0 :
8. Navigate to the Tutor LMS GitHub.
9. Download the Tutor 2.0 install zip file
10. Create a backup version of your entire site before you plan to install it. Ideal usage, we reiterate, would be to install it on a test site to see and try out the new features without breaking anything.
11. Download the [Pro Tutor LMS 2.0 Beta](https://www.themeum.com/account/downloads/) file
12. Follow along to download the pro version of Tutor LMS 2.0.
Note: The pro version is only available to the pro users of Tutor LMS and can only be availed by them. Check the previous section to download the free release if you do not own Tutor Pro.
Log in to your Themeum account and navigate to the downloads page.
Click on download under the release file and the zip file should start downloading for you.
Installing the Tutor LMS Beta Plugins (Both Free & Pro)
The installation process for both the free and pro versions is the same since we are installing a zip file. Once again we urge you to create a back of your site or use a test environment before going ahead with the installation.
Content Drip
Unlock lessons by schedule or when the student meets specific condition.
Enrollments
Take advanced control on enrollments. Enroll the student manually.
Gradebook
Shows student progress from assignment and quiz
Calendar
Allow students to see everything in a calendar view.
Restrict Content Pro
Unlock Course depending on Restrict Content Permission.
Quiz Export/Import
Save time by exporting/importing quiz data with easy options.
Paid Memberships Pro
Maximize revenue by selling membership access to all of your courses.
Assignments
Tutor assignments is a great way to assign tasks to students.
Certificate
Students will be able to download a certificate after course completion.
Course Attachments
Add unlimited attachments/ private files to any Tutor course
Course Preview
Unlock some lessons for students before enrollment.
E-Mail
Send email on various tutor events
Multi Instructors
Start a course with multiple instructors by Tutor Multi Instructors
Prerequisites
Specific course you must complete before you can enroll new course by Tutor Prerequisites
Report
Check your course performance through Tutor Report stats.
Tutor Zoom Integration
Connect Tutor LMS with Zoom to host live online classes. Students can attend live classes right from the lesson page.
Google Classroom Integration
Helps connect Google Classrooms with Tutor LMS courses, allowing you to use features like Classroom streams and files directly from the Tutor LMS course.
WooCommerce Subscriptions
Capture Residual Revenue with Recurring Payments.
WPML Multilingual CMS
Create multilingual courses, lessons, dashboard and more for a global audience.
Notifications
Get notifications on frontend dashboard for specified tutor events.
BuddyPress
Discuss about course and share your knowledge with your friends through BuddyPress
## FAQ
1. Is it safe to use Tutor LMS 2.0 Beta on your production site?
Tutor LMS 2.0 Beta is an experimental build meant for testing purposes. We strongly recommend you not to use Tutor LMS 2.0 Beta on your production sites. Use it on staging environments and remember to backup your entire website before updating.
2. Will I get any support for Tutor LMS 2.0 Beta?
Since this is an experimental release and should not be used on production sites, we won’t be providing any support for Tutor LMS 2.0 Beta.
3. Where can I report bugs or provide feedback?
In the description section, you’ll see a form with the text [Report an Issue](https://forms.gle/xHw7TQSLGAcmbySy9). In this form, you can fill in your issues or provide your feedback regarding the Beta release.