Laravel Learn Manage System (LMS)

Related tags

CMS basement-lms
Overview

Basement LMS

A criação da LMS vai dar ênfase em uma facilidade maior para que outros desenvolvedores Laravel entendam como é a modelagem de tudo.

Essa aplicação ainda está em desenvolvimento, caso você queira integrar ao time, mande um e-mail para os mantenedores!

danielhe4rt: [email protected]

Projeto

  1. [] Base do Projeto
    • Tecnologias:
      • Bootstrap 4/5
      • Websockets (chat)
      • Azure Stream (streaming de video)
      • Docker [X]
      • Larastan
      • Psalm ?
  2. [] Autenticação
    • [] Métodos base: Sessão
    • [] Métodos custom: Discord e Twitch
  3. [] Cursos
    1. [] Modelagem base:
  4. [] Subscrição
    1. [] Método de pagamento: Stripe, GerenciaNet, Pagarme, Picpay
    2. [] Vinculação com Twitch: Subzada do Daniel é na faixa
    3. [] Formulário não pagante: Se não houver condições de comprar, deixa o salve que a gente libera!
  5. Gameficação
  6. Fórum
  7. Chat

Installation

  • Run git clone https://github.com/DanielHe4rt/basement-lms
  • cd basement-lms
  • Run composer install (install composer beforehand)
  • From the projects root run cp .env.example .env
  • Configure your .env file, with:

Database settings

DB_DATABASE=lms_laravel
DB_USERNAME=root
DB_PASSWORD=root

Laravel Sail Installation

Execute this comand for install Laravel Sail php artisan sail:install

Pay attention, Laravel Sail changes the DB_USERNAME and DB_PASSWORD

The new values ​​are DB_USERNAME=sail and DB_PASSWORD=password

Do not change these values.

Select mysql for database in your terminal

Create alias for this commando in your ~/.bashrc

alias sail='bash vendor/bin/sail'

If you didn't create the 
alias sail='bash vendor/bin/sail'
just run bash vendor/bin/sail' and the desired command every time

Now, use sail up -d for up your application.


Email settings (using a provider like Mailgun, Amazon SES, etc)

  • Run sail artisan key:generate

  • Run sail artisan migrate

  • For Auth API (to configure Laravel Passport), run: sail artisan passport:install

  • Run sail npm install

  • Run sail artisan db:seed

  • Start the Websocket server (for chat functionality) sail artisan websockets:serve

The application is running on localhost:80

Comments
  • Estruturação de Cursos

    Estruturação de Cursos

    Ideia de estruturação da pagina de cursos.

    courses
    
    id: id;
    title: string (60);
    subtitle: string (120);
    description: text;
    course_level_id: int references id course_levels;
    cover_path: string; // References image on disk
    paid: bool (false);
    author_id: int references id users;
    
    course_levels
    
    id: int
    name: string (20) 
    
    opened by DanielHe4rt 13
  • Estruturação de Mídias (Imagens, Videos, Arquivos e afins)

    Estruturação de Mídias (Imagens, Videos, Arquivos e afins)

    Na issue #7, sugeri a criação de relação polifórmicas para a manipulação de Imagens.

    Em seguida @NicolasPereira da Lib laravel-medialibrary

    Abrir está issue, para discutimos sobre.

    opened by arthurtavaresdev 7
  • Estruturação de aulas de um módulo

    Estruturação de aulas de um módulo

    Essa é a modelagem básica do que eu estou pensando em fazer para a aula de um módulo.

    lesson_types
    
    id: int
    name: string
    slug: string
    

    Seed: Video, Texto e Quiz

    course_module_lessons:
    
    id: uuid
    title: string
    description: string
    type_id: int references id on lesson_types
    content: text (polymorphic - url - text)
    duration: time
    

    Também estava vendo de utilizar o streaming da Azure para o projeto e deixar como padrão. Se tiverem alguma sugestão de como iremos fazer isso, favor deixar ai.

    https://www.youtube.com/watch?v=Visn8ZBfSWs

    opened by DanielHe4rt 3
  • Adicionar Foto de Usuário

    Adicionar Foto de Usuário

    Agora que já temos o fluxo de editar perfil do usuário temos que implementar a funcionalidade de foto de perfil do usuário na nossa plataforma!

    Estamos utilizando a biblioteca da Spatie, Laravel Media Library, a implementação é bem tranquila!

    Já tem uma implementação parecida com a thumbnail do curso.

    Caso alguém queira implementar e tiver dificuldades pode me chamar!

    opened by NicolasPereira 2
  • fix (readme): fixed the instru. to set up the proj

    fix (readme): fixed the instru. to set up the proj

    Eu instalei e subi hoje o projeto na minha máquina para que possa começar a contribuir. Durante o processo percebi que tive alguns problemas não documentados que podem ser chatos de resolver, eu traduzi as intruções do README (até porque ele já está em Português na primeira metade) e adicionei as instruções que foram necessárias para rodar o projeto com sucesso.

    opened by Camilotk 2
  • Feat/core domain

    Feat/core domain

    Durante o PR #15 , me incomodou o fato de todos os providers estarem sendo chamados dentro da app.php, ignorando a responsabilidade de cada.

    Tive a ideia, de utilizar um único provider e carrega-los dinamicamente através da instrução:

    $this->app->register($provider);
    

    Mas antes, eu precisava mapea-los. Para a solução do problema, tomei a liberdade em criar um domínio "Core", onde o mesmo irá mapear e gerenciar os domínios.

    Para o mapeamento, precisei criar um entrypoint, para localização do domínio ou seja a partir de agora, para o funcionamento correto, cada Domínio, deve ter um arquivo chamado Domain.php, estendendo a classe \LMS\Core\Contracts\DomainInterface;

    namespace LMS\Course;
    
    use LMS\Core\Contracts\DomainInterface;
    
    class Domain extends DomainInterface {}
    

    Para o registrar um provider

    basta adicionar o método registerProvider retornando um array com os respectivos providers:

        public function registerProvider(): array
        {
            return [
                \Spatie\Permission\PermissionServiceProvider::class,
                \LMS\Auth\Providers\AuthServiceProvider::class
            ];
        }
    

    PS: Criei toda a estrutura no namespace \LMS, porém tenho minhas dúvidas, se não é melhor o mesmo está contido em um Namespace próprio.

    opened by arthurtavaresdev 2
  • feat(courses): implementing course domain

    feat(courses): implementing course domain

    Source Tree Overview:

    ├── Database
    │   ├── migrations
    │   │   ├── 2021_07_01_230819_create_courses_table.php
    │   │   ├── 2021_07_01_230827_create_course_levels_table.php
    │   │   └── 2021_07_01_230902_create_course_status_table.php
    │   └── seeders
    ├── Http
    │   ├── Controllers
    │   │   ├── CoursesController.php
    │   │   └── ViewController.php
    │   └── Requests
    │       └── CreateCourseRequest.php
    ├── Models
    │   ├── Course.php
    │   ├── Level.php
    │   └── Status.php
    ├── Providers
    │   └── CourseServiceProvider.php
    ├── Repositories
    │   └── CourseRepository.php
    └── Resources
        ├── lang
        └── views
            ├── courses.blade.php
            └── newCourse.blade.php
    
    WIP 
    opened by DanielHe4rt 2
  • Sistema de permissionamento

    Sistema de permissionamento

    A ideia é implementar a lib do Spatie pra facilitar o trabalho, porém vamos precisar de alguém mais experiente pra fazer a review.

    Vou começar uma PoC e coloco deixo o link do PR aqui pra ver se faz sentido.

    https://spatie.be/docs/laravel-permission/v4/basic-usage/basic-usage

    opened by DanielHe4rt 2
  • [Chore] Removed doubled query

    [Chore] Removed doubled query

    ├── Landing │ ├── Repositories │ │ ├── LandingRepository.php

    Verifiquei que no LandingRepository.php estavam sendo feitas duas queries para cada método que pega as informações dos cursos. Ajustei para que somente uma query seja feita por método, o que aumenta em 50% a performance. Aproveitei que estava mexendo nesse arquivo e refatorei algumas funções que estavam se repetindo.

    opened by pedrobruning 1
  • Mesma query sendo feita duas vezes sem necessidade e codigo repetido.

    Mesma query sendo feita duas vezes sem necessidade e codigo repetido.

    https://github.com/DanielHe4rt/basement-lms/blob/76c1a3f43c0a0ba07e1014aff47cc325f427dcf2/LMS/Landing/Repositories/LandingRepository.php#L26

    1. O código $model->where('paid', true) está seendo feita duas vezes dentro de uma mesma função. Essa chamada duplicada pode causar problemas de performance, ainda mais por se tratar da landing page.
    2. O código que faz a variável $courseTime está sendo repetido três vezes durante a classe. Tamo junto primo.
    opened by pedrobruning 1
  • [Feature] - Fluxo de Edição de Informações

    [Feature] - Fluxo de Edição de Informações

    ├── Http │ ├── Controllers │ │ ├──MeController.php │ │ └── ViewController.php │ └── Requests │ │ ├──UpdateMeRequest.php ├── Models │ ├── User.php │ ├── Address.php ├── Observers │ └── UserObserver.php ├── Providers │ └── UserProvider.php ├── Repositories │ ├── MeRepository.php ├── Resources │ └── views │ ├─── profile.blade.php | ├─── editProfile.blade.php ├── Domain.php

    Realizei a implementação da tela de editar usuários seguindo o layout proposto pela @vitoriazoche, conversamos um pouco sobre algumas melhorias e afins.

    Realizei a criação de um mutator para o campo username, visto que utilizavamos em mais de uma tela do sistema e futuramente utilizaremos no fórum.

    Realizei algumas melhorias também no arquivo profile.blade.php

    ps: Ainda não fiz a implementação de foto de perfil para o usuário, por isso está tudo estático! Após a aprovação desse PR vou puxar essa demanda, quero fazer separado pra manter um fluxo de entregas mais limpo e fazer PR's menores.

    é nozes

    hacktoberfest-accepted 
    opened by NicolasPereira 1
  • Campos base dinâmicos

    Campos base dinâmicos

    Eu tava pensando em uma parada bem importante que acabamos esquecendo: deveria ser tudo editável!

    Quando falamos em um management system a premissa é que pelo menos os campso base seja editável, pique WP etc.

    Podemos ver como implementar isso usando DB e mais o que precisar.

    opened by DanielHe4rt 0
  • Botão para visualizar a página do curso antes de publicar

    Botão para visualizar a página do curso antes de publicar

    A ideia seria ter algo parecido com os posts dos CMS da vida, ex: Wordpress, onde vc pode criar todo o conteúdo do curso e ele fica como rascunho, com isso vc pode ver como vai ficar a página do curso e voltar editar alguma informação que acabou ficando errada antes de publicar.

    Comportamento esperado:

    • Botão visualizar (o texto pode ser qq outro) esse link vai abrir a tela do curso em uma nova aba, enquanto tiver rascunho somente o criador do curso pode visualiza-lo.
    opened by plovinicius 1
  • Documentação de melhorias rápidas em Homolog

    Documentação de melhorias rápidas em Homolog

    Acabei de subir o sistema de homologação e queria que fossem documentadas melhorias de UI ou até mesmo de fluxo do sistema que estão possivelmente estáticos.

    Qualquer dúvida, pode me pingar aqui ou em qualquer rede social.

    opened by DanielHe4rt 8
  • Botão para

    Botão para "Publicar" curso

    Caso você tenha interesse em contribuir pro nosso projeto, eu acabei esquecendo de fazer a flag published_at da entidade Course coexistir com o resto do sistema.

    A ideia é que se a flag for preenchida, ele sair para modo publicado e outras pessoas terem acesso.

    Ideia: criar dois métodos na entidade Course para manipular essa flag.

    public function publish(): void
    {
    // preencher o published_at
    }
    
    public function unpublish(): void
    {
    // setar o published_at como vazio
    }
    

    Já pra interagir com o front-end eu não tenho ideias mas sei que vocês vão dar um jeito :p

    opened by DanielHe4rt 7
  • [Ideia] Criação de um serviço de avisos!

    [Ideia] Criação de um serviço de avisos!

    A Udemy possui um serviço bem legal de avisos, onde o criador de conteúdo pode disparar e-mails com um aviso sobre novos módulos do curso, ou sobre novos cursos, lives e afins.

    Acredito que seria interessante essa implementação no Basement-LMS

    opened by NicolasPereira 0
  • Criar uma lista de Requisitos de Instalação

    Criar uma lista de Requisitos de Instalação

    O projeto já conta com o Sails que permite com que o DEV tenha uma ótima DEVXP, mas seria interessante informar os requisitos de instalação do projeto tanto para quem prefere usar o servidor embutido do Laravel, quem usa Apache local e para quem futuramente quiser rodar esse projeto on premisse já que o Sails é uma ferramente projetada para desenvolvimento e não para produção.

    Ex: As libs spatie/temporary-directory v.2.0 e spatie/laravel-medialibrary v.9.6.4 requerem PHP 8 e isso é uma informação importante pois quem utiliza Debian, CentOS, Rocky Linux e Fedora como servidor não tem essa versão do PHP disponível nos repositórios oficiais. Sendo necessário usar Docker.

    É uma tarefa simples, mas que pode ajudar muitas pessoas que querem começar a contribuir com o projeto a encontrar uma primeira issue e isso pode ajudar muitas outras pessoas que querem rodar o projeto, testar e usar.

    opened by Camilotk 0
Owner
Daniel Reis
coding useless stuff since 2011
Daniel Reis
Sensei LMS WordPress Plugin

Sensei LMS A learning management plugin for WordPress, which provides the smoothest platform for helping you teach anything. Sensei LMS is a commercia

Automattic 449 Jan 4, 2023
Soosyze CMS is a minimalist content management system in PHP, without database to create and manage your website easily

Soosyze CMS is a content management system without a database. It's easy to create and manage you

Soosyze 41 Jan 6, 2023
NukeViet 132 Nov 27, 2022
Statamic 3 - the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites

Statamic 3 - the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites

Statamic 600 Jan 4, 2023
Manage your photos with Piwigo, a full featured open source photo gallery application for the web. Star us on Github! More than 200 plugins and themes available. Join us and contribute!

Manage your photo library. Piwigo is open source photo gallery software for the web. Designed for organisations, teams and individuals. The piwigo.org

Piwigo 2.3k Jan 1, 2023
ExpressionEngine is a flexible, feature-rich, free open-source content management platform that empowers hundreds of thousands of individuals and organizations around the world to easily manage their web site.

ExpressionEngine CMS ExpressionEngine is a mature, flexible, secure, free open-source content management system. It is beloved by designers for giving

ExpressionEngine 412 Dec 27, 2022
The repository for Coaster CMS (coastercms.org), a full featured, Laravel based Content Management System

The repository for Coaster CMS (coastercms.org) a Laravel based Content Management System with advanced features and Physical Web integration. Table o

Coaster CMS 392 Dec 23, 2022
Fully CMS - Multi Language Content Management System - Laravel

Fully CMS Laravel 5.1 Content Managment System not stable! Features Laravel 5.1 Bootstrap Authentication Sentinel Ckeditor Bootstrap Code Prettify Fil

Sefa Karagöz 479 Dec 22, 2022
Coaster CMS a full featured, Laravel based Content Management System

The repository for Coaster CMS (coastercms.org) a Laravel based Content Management System with advanced features and Physical Web integration. Table o

Coaster CMS 392 Dec 23, 2022
PHPDish is a powerful forum system written in PHP. It is based on the Symfony PHP Framework.

PHPDish 是一个基于Symfony框架开发的内容社区系统;得益于大量的前端以及后端的第三方类库的使用使得PHPDish有着高质量的代码,敏捷实现; 你可以使用composer或者直接下载本仓库进行程序的安装,注意切换到tag。 PHPDish 开发手册以及详细安装文档 Requirements

PHPDISH 227 Dec 8, 2022
A Joomla 4 system plugin to make editing content distraction free.

Clean Edit for Joomla 4 A system plugin to make editing content in the front end of your Joomla 4 website distraction free. Why? On a complex site or

Brian Teeman 5 Dec 30, 2022
This is a Hostel Management system project is created using PHP and MYSQL

Hostel-Managment-System-PHP This is a Hostel Management system project is created using PHP and MYSQL. Developed as a package for the subject Relation

Hari Ram 5 May 10, 2022
Core framework that implements the functionality of the Sulu content management system

Sulu is a highly extensible open-source PHP content management system based on the Symfony framework. Sulu is developed to deliver robust multi-lingua

Sulu CMS 921 Dec 28, 2022
BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience.

BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience.

BookStackApp 10.6k Jan 2, 2023
PHPDish is a powerful forum system written in PHP. It is based on the Symfony PHP Framework.

PHPDish 是一个基于Symfony框架开发的内容社区系统;得益于大量的前端以及后端的第三方类库的使用使得PHPDish有着高质量的代码,敏捷实现; 你可以使用composer或者直接下载本仓库进行程序的安装,注意切换到tag。

PHPDISH 227 Dec 8, 2022
Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS

Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS. Building this Content Management System, we focused on simplicity. To achieve this, we implemented a simple but powerful API's.

Flextype 524 Dec 30, 2022
Project template for starting a project based on the Rabble admin system.

Note: this is an experimental project and heavily under development. If you do come across this repository, and you would like to support development,

Rabble 12 Oct 26, 2022
YesWiki is a wiki system written in PHP, including extensions making collaboration more simple (databases, maps, easy editing, bootstrap themes,...).

YesWiki YesWiki is a Free Software under the AGPL licence, made for creating and managing your website, in a collaborative way. YesWiki allows any web

YesWiki 84 Dec 26, 2022
Chamilo is a learning management system focused on ease of use and accessibility

Chamilo 2.x Chamilo is an e-learning platform, also called "LMS", published under the GNU/GPLv3+ license. It has been used by more than 30M people wor

Chamilo 661 Dec 20, 2022