Coder Social home page Coder Social logo

qsnh / meedu Goto Github PK

View Code? Open in Web Editor NEW
3.5K 109.0 973.0 37.32 MB

Meedu是一款功能强大的开源在线教育系统,适用于个人、企业或机构搭建自己的在线学习平台。它提供了完整的解决方案,满足网校搭建、在线教学、企业培训和知识付费等多种需求。

Home Page: https://meedu.vip

License: Apache License 2.0

PHP 40.49% Blade 0.13% Dockerfile 0.08% Shell 0.01% HTML 0.11% SCSS 9.24% TypeScript 49.88% CSS 0.06%

meedu's Introduction

⚡ 基于 PHP+Laravel 开发的在线网校解决方案 🔍

MeEdu 是一款基于 PHP7.4 + Laravel8 + MySQL + Redis 开发的开源网校(知识付费)解决方案。支持线上点播、课程购买、网校装修、学员手机号登录注册、学习统计、角色管理等丰富功能。 MeEdu 是前后端分离的架构,支持 PC,H5 端口。此为 MeEdu 开源版本。与此同时,我们还提供商业版本解决方案。商业版本支持直播课、考试练习、电子书、图文、站内问答、秒杀、团购、兑换码等更多功能;在开源的基础上还支持微信小程序、安卓 APP、苹果 APP 端口。商业版本多信息请点击下方的商业版链接查看。

🚀 快速上手

拉取代码:

git clone https://github.com/qsnh/meedu.git meedu

构建镜像:

cd meedu && docker-compose build

运行镜像:

docker-compose up -d

现在,打开您的浏览器,输入 http://localhost:8300 即可访问后台管理界面,默认管理员账号和密码 [email protected] / meedu123

  • PC 端口 http://localhost:8100
  • H5 端口 http://localhost:8200
  • API 端口 http://localhost:8000

🔰️ 软件安全

安全问题应该通过邮件私下报告给 [email protected]。 您将在 24 小时内收到回复,如果因为某些原因您没有收到回复,请通过回复原始邮件的方式跟进,以确保我们收到了您的原始邮件。

📃 使用许可

  • 2024 © 杭州白书科技有限公司。
  • 本软件遵循 Apache 2.0 许可证,附加特定的商业使用条件,使用此软件还需要遵循附件条款和条件

meedu's People

Contributors

dependabot[bot] avatar git-zjx avatar limonte avatar lixifun avatar nit456 avatar qsnh avatar wormw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meedu's Issues

这个是什么回事?

Could not find package qsnh/meedu with version dev-master in a version
installable using your PHP version 7.1.0.

使用阿里云的邮件服务,群发邮件meedu有bug

meedu/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php

这个文件的normalizeMailboxes 函数,foreach ($mailboxes as $key => $value)执行的时候,$key如果是数据库里的值,会直接用整条json作为email的addr,从而导致最后发送邮件失败。

log里我打印了信息:

[2019-03-28 11:03:40] local.INFO: eaddr valueExample
[2019-03-28 11:03:40] local.INFO: eaddr:[email protected]
[2019-03-28 11:03:40] local.INFO: eaddr value
[2019-03-28 11:03:40] local.INFO: eaddr:{"id":1,"email":"[email protected]","created_at":"2019-03-22 21:00:57","updated_at":"2019-03-22 21:00:57"}
[2019-03-28 11:03:40] local.ERROR: Address in mailbox given [{"id":1,"email":"[email protected]","created_at":"2019-03-22 21:00:57","updated_at":"2019-03-22 21:00:57"}] does not comply with R
FC 2822, 3.6.2. {"exception":"[object] (Swift_RfcComplianceException(code: 0): Address in mailbox given [{"id":1,"email":"[email protected]","created_at":"2019-03-22 21:00:57","upd
ated_at":"2019-03-22 21:00:57"}] does not comply with RFC 2822, 3.6.2.

模板组件datetime.blade.php, 如果在一个表单中使用多个日期控件的情况下, 只能最后一个日期控件的使用

模板组件datetime.blade.php, 如果在一个表单中使用多个日期控件的情况下, 只能最后一个日期控件的使用.

原因: window.onload 只能执行一次, 但是页面中使用多个日期控件会出现多个 window.onload, 所以只能最后一个执行.
建议修改为:

$(function () {
        flatpickr("#input-{{$name}}", {
            enableTime: true,
            dateFormat: "Y-m-d H:i",
        });
    });

如此就没有问题

一个人能出的课程有限,多个人协同出不同课程,立马就能丰富起来。

有增加相关功能的想法么?
类似于添加讲师管理的功能吧。
协同者可以有自己的管理账号,自己添加课程,看到自己的收益,全站订阅可以设置分成比例之类的。
如果本身主机性能一般,能通过七牛云之类的云视频平台来做视频存放就更爽了。
最近想和朋友一起做硬件课程来着,本来想自己学Laravel来弄个试试,没想到搜到你的项目了。

测试新版本云插件安装报错

点击云插件安装能显示 已安装 到了 插件那一选项状态再看就显示安装失败,点击历史版本切换就会显示 切换版本出现错误,错误信息:symlink(): Permission denied。

点击播放按钮不能播放

https://.oss-cn-shanghai.aliyuncs.com/.m3u8?Expires=1551248149&OSSAccessKeyId=***&Signature=

可能是&的原因 - -。

编辑管理员资料的bug

文件: /app/Http/Requests/Backend/Administrator/AdministratorRequest.php

   public function filldata()
    {
        $data = ['name' => $this->input('name', '')];
        $this->input('password') && $data['password'] = bcrypt($this->input('password'));
        if ($this->isMethod('post')) {
            $data['email'] = $this->input('email');
        }
        return $data;
    }

如果编辑管理员资料的时候不填密码, 那么则会吧此管理员的密码值为空。
问题代码:$this->input('password') && $data['password'] = bcrypt($this->input('password'));

  1. 修改密码和修改用户资料的功能分开。
  2. 在此处过过滤,密码值为空则 unsert($data['password'])

【求助】安装依赖出问题

1

网上搜了解决方案,https://blog.csdn.net/qq_39188306/article/details/82778452这篇文章可以解决,但是到了后面的数据库建表,会提示找不到数据库,不知道是不是这步出的问题

BackendPermissionCheckMiddleware.php

权限检测中间件: BackendPermissionCheckMiddleware.php

public function handle($request, Closure $next)
    {
        $admin = admin();
        if ($admin->isSuper()) {
            return $next($request);
        }
        if (! $admin->couldVisited($request)) {
            abort(401);
        }

        return $next($request);
    }

如果没有权限的话会有系统自动处理,跳转一个不友好的界面。
建议修改:

public function handle($request, Closure $next)
    {
        $admin = admin();
        if ($admin->isSuper()) {
            return $next($request);
        }
        if (! $admin->couldVisited($request)) {
            if ($request->isJson()) {
                return response(json_encode(['code'=>401, 'message' => '没有权限']), 401)
                    ->header('Content-Type', 'application/json');
               // 当然这里可以有一个全局的相应方法。以及全局的响应状态码。
            } else {
                flash("没有操作权限", "error");
                return back();
                // abort(401, '没有操作权限');
            }

        }

        return $next($request);
    }

如果是一个 ajax 的请求, 那么返回一个 Ajax 的 401 状态
如果是一个正常的页面没有权限, 那么直接提示没有权限即可。用系统 abort 的话非开发人员看到貌似一个报错的界面。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.