Home
Softono
learnin-lms

learnin-lms

Open source MIT PHP
17
Stars
6
Forks
0
Issues
1
Watchers
1 year
Last Commit
LMS

About learnin-lms

LearnIn - the next generation learning management system.

Platforms

Web Self-hosted Docker

Languages

PHP

Links

application logo

Features   |   Screenshots  |   Getting started  |   Configuration  |   Technologies and tools  |   License

Learnin TODO Roadmap

New features and bug fixes for later time.

  1. Add import/export users (.csv)
  2. Create multiple users (and generate password)
  3. Add avatars and course thumbnails
  4. Add availability to reset password
  5. Add new course/task on dashboard
  6. ...

Bugs and improvements

  1. After editing user by admin it should not redirect to user's page
  2. Fix input border in searchable selects
  3. Do refactor:
    • abandon principle "fat model, thin controller" and make services
  4. Extend docker compose by worker queue for cleaning generated zips directory + add crontab file
  5. Update all dependencies
  6. Migrate to NGINX and add PHP-FPM
  7. Write unit tests (Pest/PHP Unit)

About

LearnIn is the next generation learning management system. Provides constant monitoring of students in the progress of teaching. Create courses and tasks, issue grades for students, check uploaded files by students, add course and task referential files, generate statistics, and more. Powered by Laravel Framework for backend, Vue.js for frontend and MariaDB for database.

dashboard LearnIn dashboard

Features

  • provides three types of user: administrator, teacher and student
  • create courses and assign users them
  • create categories to the course
  • create tasks related with course categories
  • issue grades for students
  • easily assign new users to the course
  • watch uploaded files by students and download .zip with all files
  • upload course files (ex. lectures, books, etc.), task referential files (ex. instructions, executable programs, etc.) and student file to the task
  • administration panel for managing all courses, users and tasks
  • generate students marks statistics from specific task or whole course category
  • user-friendly, responsive layout
  • multilingual support (available now: English and Polish)

Screenshots

course view task view courses tasks marks students uploads students marks user view statistics example form example form second course participants modal course participants modal second file upload teacher information edit modal admin example

Getting started

Full installation guide for most users with requirements was described in Standard installation.

There are three ways to deploy LearnIn:

  • production - for most users, prepared to deploy on your web server,
  • development - for feature development,
  • docker - docker environment.

Configuration

You can configure the project by your own needs. To do this, open .env file (cloned from .env.dev or .env.prod or .env.docker) and change parameters.

  1. Database credentials

  2. Project directory

  3. Localization - language

  4. Apache configuration - optional

  5. NGINX configuration - optional

  6. It's highly recommend to run the scheduler (that cleans old generated .zip files by teachers every 3 hours):

In Docker:

docker exec -it app sh -c "php /var/www/html/artisan schedule:work"

Locally:

php artisan schedule:work

Used technologies and tools

  • HTML5
  • PHP Laravel Framework v10.15.0
  • MariaDB
  • Apache
  • Tailwind CSS v3.3.3
  • Vue 3 and libraries:
    • Vuex
    • Axios
    • Lodash
    • laravel-vue-i18n
    • vue-router
    • DayJS
    • vue-multiselect
    • vue-toastification
    • vue3-popper
    • vuejs-paginate-next
    • vue-modal
  • Docker and Docker Compose
  • bundler: Vite
  • IDE and tools: Jetbrains PHPStorm, Postman, Jetbrains DataGrip

License

Distributed under the MIT License.