{"id":16458711,"url":"https://github.com/onecodemonkey/lara_bbs","last_synced_at":"2025-02-27T04:42:19.685Z","repository":{"id":37515270,"uuid":"172522439","full_name":"OneCodeMonkey/lara_bbs","owner":"OneCodeMonkey","description":"A BBS project developed by laravel 5.7","archived":false,"fork":false,"pushed_at":"2022-12-07T17:13:10.000Z","size":5447,"stargazers_count":7,"open_issues_count":21,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T17:37:54.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OneCodeMonkey.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-25T14:34:48.000Z","updated_at":"2020-04-30T05:18:54.000Z","dependencies_parsed_at":"2023-01-24T19:18:12.903Z","dependency_job_id":null,"html_url":"https://github.com/OneCodeMonkey/lara_bbs","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Flara_bbs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Flara_bbs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Flara_bbs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Flara_bbs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OneCodeMonkey","download_url":"https://codeload.github.com/OneCodeMonkey/lara_bbs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240980766,"owners_count":19888334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T10:46:05.805Z","updated_at":"2025-02-27T04:42:19.665Z","avatar_url":"https://github.com/OneCodeMonkey.png","language":"HTML","readme":"\n## 项目概述\n\n* 产品名称：LaraBBS\n* 项目代号：larabbs\n* 地址：http://laravel-bbs.slwh-tc.com\n\nLaraBBS 是一个简洁的论坛应用，使用 Laravel 编写而成。\n\n![](https://dn-phphub.qbox.me/uploads/images/201711/01/1/xcr6ijTArV.png)\n\n## 功能如下\n\n- 用户认证 —— 注册、登录、退出；\n- 个人中心 —— 用户个人中心，编辑资料；\n- 用户授权 —— 作者才能删除自己的内容；\n- 上传图片 —— 修改头像和编辑话题时候上传图片；\n- 表单验证 —— 使用表单验证类；\n- 文章发布时自动 Slug 翻译，支持使用队列方式以提高响应；\n- 站点『活跃用户』计算，一小时计算一次；\n- 多角色权限管理 —— 允许站长，管理员权限的存在；\n- 后台管理 —— 后台数据模型管理；\n- 邮件通知 —— 发送新回复邮件通知，队列发送邮件；\n- 站内通知 —— 话题有新回复；\n- 自定义 Artisan 命令行 —— 自定义活跃用户计算命令；\n- 自定义 Trait —— 活跃用户的业务逻辑实现；\n- 自定义中间件 —— 记录用户的最后登录时间；\n- XSS 安全防御；\n\n## 开发环境部署/安装\n\n本项目代码使用 PHP 框架 [Laravel 5.5](https://d.laravel-china.org/docs/5.5/) 开发，本地开发环境使用 [Laravel Homestead](https://d.laravel-china.org/docs/5.5/homestead)。\n\n下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead，可以参照 [Homestead 安装与设置](https://laravel-china.org/docs/5.5/homestead#installation-and-setup) 进行安装配置。\n\n### 基础安装\n\n#### 1. 克隆源代码\n\n克隆 `larabbs` 源代码到本地：\n\n    \u003e git clone git@github.com:summerblue/larabbs.git\n\n#### 2. 配置本地的 Homestead 环境\n\n1). 运行以下命令编辑 Homestead.yaml 文件：\n\n```shell\nhomestead edit\n```\n\n2). 加入对应修改，如下所示：\n\n```\nfolders:\n    - map: ~/my-path/larabbs/ # 你本地的项目目录地址\n      to: /home/vagrant/larabbs\n\nsites:\n    - map: larabbs.test\n      to: /home/vagrant/larabbs/public\n\ndatabases:\n    - larabbs\n```\n\n3). 应用修改\n\n修改完成后保存，然后执行以下命令应用配置信息修改：\n\n```shell\nhomestead provision\n```\n\n随后请运行 `homestead reload` 进行重启。\n\n#### 3. 安装扩展包依赖\n\n    composer install\n\n#### 4. 生成配置文件\n\n```\ncp .env.example .env\n```\n\n你可以根据情况修改 `.env` 文件里的内容，如数据库连接、缓存、邮件设置等。\n\n\n#### 5. 生成秘钥\n\n```shell\nphp artisan key:generate\n```\n\n#### 6. 生成数据表及生成测试数据\n\n在 Homestead 的网站根目录下运行以下命令\n\n```shell\n$ php artisan migrate --seed\n```\n\n初始的用户角色权限已使用数据迁移生成。\n\n\n#### 7. 配置 hosts 文件\n\n    echo \"192.168.10.10   phphub.app\" | sudo tee -a /etc/hosts\n\n### 前端框架安装\n\n1). 安装 node.js\n\n直接去官网 [https://nodejs.org/en/](https://nodejs.org/en/) 下载安装最新版本。\n\n2). 安装 Yarn\n\n请按照最新版本的 Yarn —— http://yarnpkg.cn/zh-Hans/docs/install\n\n3). 安装 Laravel Mix\n\n```shell\nyarn install\n```\n\n4). 编译前端内容\n\n```shell\n// 运行所有 Mix 任务...\nnpm run dev\n\n// 运行所有 Mix 任务并缩小输出..\nnpm run production\n```\n\n5). 监控修改并自动编译\n\n```shell\nnpm run watch\n\n// 在某些环境中，当文件更改时，Webpack 不会更新。如果系统出现这种情况，请考虑使用 watch-poll 命令：\nnpm run watch-poll\n```\n\n### 链接入口\n\n* 首页地址：http://larabbs.test/\n* 管理后台：http://larabbs.test/admin\n\n管理员账号密码如下:\n\n```\nusername: summer@yousails.com\npassword: password\n```\n\n至此, 安装完成 ^_^。\n\n## 扩展包使用情况\n\n| 扩展包 | 一句话描述 | 本项目应用场景 |\n| --- | --- | --- |\n| [Intervention/image](https://github.com/Intervention/image) | 图片处理功能库 | 用于图片裁切 |\n| [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) | HTTP 请求套件 | 请求百度翻译 API  |\n| [predis/predis](https://github.com/nrk/predis.git) | Redis 官方首推的 PHP 客户端开发包 | 缓存驱动 Redis 基础扩展包 |\n| [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) | 页面调试工具栏 (对 phpdebugbar 的封装) | 开发环境中的 DEBUG |\n| [spatie/laravel-permission](https://github.com/spatie/laravel-permission) | 角色权限管理 | 角色和权限控制 |\n| [mewebstudio/Purifier](https://github.com/mewebstudio/Purifier) | 用户提交的 Html 白名单过滤 | 帖子内容的 Html 安全过滤，防止 XSS 攻击 |\n| [hieu-le/active](https://github.com/letrunghieu/active) | 选中状态 | 顶部导航栏选中状态 |\n| [summerblue/administrator](https://github.com/summerblue/administrator) | 管理后台 | 模型管理后台、配置信息管理后台 |\n| [viacreative/sudo-su](https://github.com/viacreative/sudo-su) | 用户切换 | 开发环境中快速切换登录账号 |\n| [laravel/horizon](https://github.com/laravel/horizon) | 队列监控 | 队列监控命令与页面控制台 /horizon |\n\n\n## 自定义 Artisan 命令\n\n| 命令行名字 | 说明 | Cron | 代码调用 |\n| --- | --- | --- | --- |\n| `larabbs:calculate-active-user` |  生成活跃用户 | 一小时运行一次 | 无 |\n| `larabbs:sync-user-actived-at` | 从 Redis 中同步最后登录时间到数据库中 | 每天早上 0 点准时 | 无 |\n\n## 队列清单\n\n| 名称 | 说明 | 调用时机 |\n| --- | --- | --- |\n| TranslateSlug.php | 将话题标题翻译为 Slug | TopicObserver 事件 saved() |\n| TopicReplied.php | 通知作者话题有新回复 | 话题被评论以后 |\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonecodemonkey%2Flara_bbs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonecodemonkey%2Flara_bbs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonecodemonkey%2Flara_bbs/lists"}