├── .gitignore
├── frontend
├── store
│ ├── index.js
│ ├── README.md
│ └── courses.js
├── pages
│ ├── auth
│ │ ├── forgot.vue
│ │ ├── index.vue
│ │ ├── verify
│ │ │ └── _verify.vue
│ │ └── login.vue
│ ├── README.md
│ ├── index.vue
│ ├── courses
│ │ └── _slug.vue
│ ├── lessons
│ │ └── _slug.vue
│ └── admin
│ │ └── courses
│ │ └── new.vue
├── assets
│ ├── scss
│ │ ├── abstracts
│ │ │ ├── _mixins.scss
│ │ │ ├── __abstract-dir.scss
│ │ │ ├── _fonts.scss
│ │ │ └── _variables.scss
│ │ ├── base
│ │ │ ├── _colours.scss
│ │ │ ├── _typography.scss
│ │ │ ├── __base_dir.scss
│ │ │ └── _reset.scss
│ │ ├── components
│ │ │ ├── _input.scss
│ │ │ ├── _modal.scss
│ │ │ ├── _button.scss
│ │ │ └── __components-dir.scss
│ │ ├── layouts
│ │ │ ├── _footer.scss
│ │ │ ├── _sidebar.scss
│ │ │ ├── __layouts-dir.scss
│ │ │ └── _navbar.scss
│ │ ├── vendor
│ │ │ └── __vendor-dir.scss
│ │ └── app.scss
│ └── README.md
├── plugins
│ ├── antd-ui.js
│ └── README.md
├── layouts
│ ├── admin.vue
│ ├── Navbar
│ │ ├── WINavItem.vue
│ │ └── WINavBar.vue
│ ├── README.md
│ └── default.vue
├── components
│ ├── README.md
│ ├── Card.vue
│ ├── Container.vue
│ └── Logo.vue
├── .editorconfig
├── middleware
│ ├── admin.js
│ └── README.md
├── README.md
├── static
│ └── README.md
├── package.json
├── .gitignore
└── nuxt.config.js
├── backend
├── public
│ ├── favicon.ico
│ ├── robots.txt
│ ├── .htaccess
│ └── index.php
├── storage
│ ├── logs
│ │ └── .gitignore
│ ├── app
│ │ ├── public
│ │ │ └── .gitignore
│ │ └── .gitignore
│ └── framework
│ │ ├── sessions
│ │ └── .gitignore
│ │ ├── testing
│ │ └── .gitignore
│ │ ├── views
│ │ └── .gitignore
│ │ ├── cache
│ │ ├── data
│ │ │ └── .gitignore
│ │ └── .gitignore
│ │ └── .gitignore
├── bootstrap
│ ├── cache
│ │ └── .gitignore
│ └── app.php
├── database
│ ├── .gitignore
│ ├── seeds
│ │ └── DatabaseSeeder.php
│ ├── migrations
│ │ ├── 2020_05_09_121317_add_slug_to_lessons.php
│ │ ├── 2020_05_17_222704_add_thumbnail_to_courses.php
│ │ ├── 2020_05_17_222801_add_thumbnail_to_lessons.php
│ │ ├── 2020_05_11_173422_add_privacy_to_courses.php
│ │ ├── 2014_10_12_100000_create_password_resets_table.php
│ │ ├── 2020_05_01_121713_create_courses_table.php
│ │ ├── 2019_08_19_000000_create_failed_jobs_table.php
│ │ ├── 2020_12_31_193754_create_sessions_table.php
│ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php
│ │ ├── 2014_10_12_000000_create_users_table.php
│ │ ├── 2014_10_12_200000_add_two_factor_columns_to_users_table.php
│ │ └── 2020_05_09_120622_create_lessons_table.php
│ └── factories
│ │ └── UserFactory.php
├── resources
│ ├── js
│ │ ├── app.js
│ │ ├── components
│ │ │ └── ExampleComponent.vue
│ │ └── bootstrap.js
│ ├── css
│ │ └── app.css
│ ├── views
│ │ ├── api
│ │ │ └── index.blade.php
│ │ ├── emails
│ │ │ └── verify.blade.php
│ │ ├── dashboard.blade.php
│ │ ├── home.blade.php
│ │ ├── layouts
│ │ │ ├── guest.blade.php
│ │ │ └── app.blade.php
│ │ ├── auth
│ │ │ ├── verify.blade.php
│ │ │ ├── forgot-password.blade.php
│ │ │ ├── verify-email.blade.php
│ │ │ ├── reset-password.blade.php
│ │ │ ├── register.blade.php
│ │ │ ├── login.blade.php
│ │ │ ├── passwords
│ │ │ │ ├── email.blade.php
│ │ │ │ ├── confirm.blade.php
│ │ │ │ └── reset.blade.php
│ │ │ └── two-factor-challenge.blade.php
│ │ ├── profile
│ │ │ ├── show.blade.php
│ │ │ ├── update-password-form.blade.php
│ │ │ ├── delete-user-form.blade.php
│ │ │ ├── update-profile-information-form.blade.php
│ │ │ ├── two-factor-authentication-form.blade.php
│ │ │ └── logout-other-browser-sessions-form.blade.php
│ │ └── welcome.blade.php
│ └── lang
│ │ └── en
│ │ ├── pagination.php
│ │ ├── auth.php
│ │ └── passwords.php
├── .gitattributes
├── webpack.config.js
├── .gitignore
├── tests
│ ├── TestCase.php
│ ├── Unit
│ │ └── ExampleTest.php
│ ├── Feature
│ │ └── ExampleTest.php
│ └── CreatesApplication.php
├── .styleci.yml
├── routes
│ ├── web.php
│ ├── channels.php
│ ├── console.php
│ └── api.php
├── .editorconfig
├── app
│ ├── Models
│ │ ├── Lesson.php
│ │ ├── Course.php
│ │ └── User.php
│ ├── Http
│ │ ├── Middleware
│ │ │ ├── EncryptCookies.php
│ │ │ ├── VerifyCsrfToken.php
│ │ │ ├── CheckForMaintenanceMode.php
│ │ │ ├── TrimStrings.php
│ │ │ ├── TrustProxies.php
│ │ │ ├── Authenticate.php
│ │ │ ├── Admin.php
│ │ │ └── RedirectIfAuthenticated.php
│ │ ├── Controllers
│ │ │ ├── Controller.php
│ │ │ ├── Courses
│ │ │ │ ├── LessonController.php
│ │ │ │ └── CourseController.php
│ │ │ ├── HomeController.php
│ │ │ └── Auth
│ │ │ │ ├── ForgotPasswordController.php
│ │ │ │ ├── ResetPasswordController.php
│ │ │ │ ├── LoginController.php
│ │ │ │ ├── ConfirmPasswordController.php
│ │ │ │ ├── VerificationController.php
│ │ │ │ ├── RegisterUserController.php
│ │ │ │ └── RegisterController.php
│ │ ├── Resources
│ │ │ ├── CourseResource.php
│ │ │ └── LessonResource.php
│ │ └── Kernel.php
│ ├── View
│ │ └── Components
│ │ │ ├── AppLayout.php
│ │ │ └── GuestLayout.php
│ ├── Actions
│ │ ├── Fortify
│ │ │ ├── PasswordValidationRules.php
│ │ │ ├── ResetUserPassword.php
│ │ │ ├── CreateNewUser.php
│ │ │ ├── UpdateUserPassword.php
│ │ │ └── UpdateUserProfileInformation.php
│ │ └── Jetstream
│ │ │ └── DeleteUser.php
│ ├── Providers
│ │ ├── BroadcastServiceProvider.php
│ │ ├── AppServiceProvider.php
│ │ ├── AuthServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ ├── FortifyServiceProvider.php
│ │ ├── JetstreamServiceProvider.php
│ │ └── RouteServiceProvider.php
│ ├── Mail
│ │ └── VerifyEmail.php
│ ├── Console
│ │ └── Kernel.php
│ └── Exceptions
│ │ └── Handler.php
├── tailwind.config.js
├── server.php
├── webpack.mix.js
├── .env.example
├── config
│ ├── cors.php
│ ├── services.php
│ ├── view.php
│ ├── jetstream.php
│ ├── hashing.php
│ ├── broadcasting.php
│ ├── sanctum.php
│ ├── filesystems.php
│ ├── queue.php
│ ├── logging.php
│ ├── cache.php
│ ├── mail.php
│ └── auth.php
├── phpunit.xml
├── package.json
├── artisan
├── composer.json
└── README.md
├── .idea
├── codeStyles
│ └── codeStyleConfig.xml
├── vcs.xml
└── modules.xml
├── LICENSE.md
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 |
--------------------------------------------------------------------------------
/frontend/store/index.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/public/favicon.ico:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/pages/auth/forgot.vue:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/abstracts/_mixins.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/base/_colours.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/base/_typography.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/components/_input.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/components/_modal.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/layouts/_footer.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/layouts/_sidebar.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/components/_button.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/assets/scss/vendor/__vendor-dir.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/storage/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/bootstrap/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/backend/database/.gitignore:
--------------------------------------------------------------------------------
1 | *.sqlite
2 | *.sqlite-journal
3 |
--------------------------------------------------------------------------------
/backend/storage/app/public/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/app/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !public/
3 | !.gitignore
4 |
--------------------------------------------------------------------------------
/backend/storage/framework/sessions/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/framework/testing/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/framework/views/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/framework/cache/data/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/frontend/assets/scss/layouts/__layouts-dir.scss:
--------------------------------------------------------------------------------
1 | @import "navbar";
2 |
--------------------------------------------------------------------------------
/backend/storage/framework/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !data/
3 | !.gitignore
4 |
--------------------------------------------------------------------------------
/backend/resources/js/app.js:
--------------------------------------------------------------------------------
1 | require('./bootstrap');
2 |
3 | require('alpinejs');
4 |
--------------------------------------------------------------------------------
/frontend/assets/scss/base/__base_dir.scss:
--------------------------------------------------------------------------------
1 | @import "reset";
2 | @import "colours";
3 | @import "typography";
4 |
--------------------------------------------------------------------------------
/frontend/assets/scss/abstracts/__abstract-dir.scss:
--------------------------------------------------------------------------------
1 | @import "variables";
2 | @import "mixins";
3 | @import "fonts";
4 |
--------------------------------------------------------------------------------
/frontend/assets/scss/components/__components-dir.scss:
--------------------------------------------------------------------------------
1 | @import "button";
2 | @import "input";
3 | @import "modal";
4 |
--------------------------------------------------------------------------------
/frontend/plugins/antd-ui.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Antd from 'ant-design-vue/lib'
3 |
4 | Vue.use(Antd)
5 |
--------------------------------------------------------------------------------
/frontend/assets/scss/abstracts/_fonts.scss:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css?family=Quicksand:300,500");
2 |
3 |
--------------------------------------------------------------------------------
/backend/resources/css/app.css:
--------------------------------------------------------------------------------
1 | @import 'tailwindcss/base';
2 | @import 'tailwindcss/components';
3 | @import 'tailwindcss/utilities';
4 |
--------------------------------------------------------------------------------
/backend/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.css linguist-vendored
3 | *.scss linguist-vendored
4 | *.js linguist-vendored
5 | CHANGELOG.md export-ignore
6 |
--------------------------------------------------------------------------------
/frontend/pages/auth/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/backend/storage/framework/.gitignore:
--------------------------------------------------------------------------------
1 | config.php
2 | routes.php
3 | schedule-*
4 | compiled.php
5 | services.json
6 | events.scanned.php
7 | routes.scanned.php
8 | down
9 |
--------------------------------------------------------------------------------
/frontend/layouts/admin.vue:
--------------------------------------------------------------------------------
1 |
2 |
4 | {{ __('API Tokens') }}
5 |
6 |
{{ course.description}}
8 |{{ course.description }}
6 |{{ lesson.description}}
14 |{{ lesson.description }}
6 |{{ lesson.description}}
14 |21 | {{ __('When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone\'s Google Authenticator application.') }} 22 |
23 |29 | {{ __('Two factor authentication is now enabled. Scan the following QR code using your phone\'s authenticator application.') }} 30 |
31 |41 | {{ __('Store these recovery codes in a secure password manager. They can be used to recover access to your account if your two factor authentication device is lost.') }} 42 |
43 |