{"id":19241666,"url":"https://github.com/qwqcode/book-register","last_synced_at":"2026-07-10T10:31:02.991Z","repository":{"id":106438641,"uuid":"416616508","full_name":"qwqcode/book-register","owner":"qwqcode","description":null,"archived":false,"fork":false,"pushed_at":"2021-12-23T13:31:21.000Z","size":12253,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-23T14:35:00.228Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/qwqcode.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-13T06:31:13.000Z","updated_at":"2023-01-17T11:08:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"71b7eb87-802f-4b48-a1ce-c5ea99ddd7d5","html_url":"https://github.com/qwqcode/book-register","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qwqcode/book-register","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwqcode%2Fbook-register","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwqcode%2Fbook-register/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwqcode%2Fbook-register/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwqcode%2Fbook-register/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qwqcode","download_url":"https://codeload.github.com/qwqcode/book-register/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qwqcode%2Fbook-register/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35329609,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-09T17:12:10.617Z","updated_at":"2026-07-10T10:31:02.972Z","avatar_url":"https://github.com/qwqcode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Book Register\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"./docs/logo.png\"\u003e\u003c/p\u003e\n\n書記 是一个适用于学校图书室 多人协作共同完成图书录入任务 的在线工作站\n\n数据存储到 MySQL 数据库，可以一键导出为 Excel\n\n数据字段包含 `类目名` `编号` `书名` `出版社` `备注`\n\n采用 PHP, Lumen Framework, NodeJS, WebSocket, jQuery, CSS3...\n\n\u003e 未经允许代码和衍生品不得用于商业用途，侵权必究\n\n另外，也有 Android 移动版，您可以在手机上完成工作 [传送门](https://github.com/qwqcode/library-register-android)\n\n# 特性\n- 美观友好的 UI，Material Design\n- 快速上手 简单的操作\n- 多人协作 多人完成同一类目\n- 实时弹幕 全局显示用户动作\n- 在线监测 不活跃成员查看\n- 自动补全 快速输入，快速定位，类似 Excel\n- 数据统计 成员战绩分析\n- 编辑器 操作提示\n- 编辑器 数据实时更新，本地保存\n- 导出 所有/单个 类目为一整个 .xls 文件\n- 快速检索功能\n- 有 API，可供第三方接入\n- 运用 AJAX, Web Socket 等技术优化用户体验\n\n# 环境要求\n- [PHP](http://www.php.net/) 7.2 (参考：[Lumen 5.5](https://laravel-china.org/docs/lumen/5.5/install/1899))\n- [NodeJS](http://nodejs.cn/)\n- [MySql](https://www.mysql.com/)\n\n# 快速部署\n\n### Docker\n\n**1. 配置文件**\n\n```sh\ncp .env.example .env\nvim .env\n```\n\n**1. 启动**\n\n```sh\ndocker-compose up -d\n```\n\n|服务|地址|\n|-|-|\n| Nginx | `http://localhost:58711` |\n| 数据库 | `localhost:58712` |\n\n通过 `docker-compose ps` 检查运行状态\n\n**2. 安装依赖**\n\n```sh\ndocker-compose exec app composer install\n```\n\n也可以直接解压：`tar -xf vendor.tar.xz`\n\n**3. 生成随机 APP Key**\n\n```sh\ndocker-compose exec app php artisan key:generate\n```\n\n#### 其他操作\n\n**卸载**\n\n```\ndocker-compose down\n```\n\n**暂停**\n\n```sh\ndocker-compose pause\ndocker-compose unpause\n```\n\n**Bash**\n\n```sh\ndocker-compose exec app bash\n```\n\n### 普通方式\n\n```sh\ngit clone https://github.com/qwqcode/book-register.git\ncomposer install\n\n# 然后到 .env 里配置数据库连接，并执行：\nphp artisan key:generate\nphp artisan migrate\n\n# 实时弹幕必须\nnmp install\nnode socket-func\n\n# 简易开发环境\nphp -S localhost:8000 -t public\n```\n\n\u003e P.S. Windows Server 可下载 [NSSM](http://nssm.cc) 后执行项目中的 `socket-func-install.bat` 让 `node socket-func ` 持久运作\n\n# 目录结构\n\n## 前端\n\n| 路径 | 描述 |\n| :------: | :------: |\n| [/public/js](/public/js) | 存放 JS 代码文件 |\n| [/public/js/app.js](/public/js/app.js) | 实现前端 所有主要功能 |\n| [/public/js/editor.js](/public/js/editor.js) | 实现前端 类目编辑器 功能 |\n| [/public/js/app-help.js](/public/js/app-help.js) | 实现前端 操作提示 功能 |\n| [/public/css](/public/css) | 存放 CSS 代码文件 |\n| [/public/css/app.css](/public/css/app.css) | 前端界面样式表 |\n| [/resources/views/index.blade.php](/resources/views/index.blade.php) | 总视图文件 |\n\n\n## 后端\n\n| 路径 | 描述 |\n| :------: | :------: |\n| [/.env](/.env.example) | 配置文件（数据库，密码相关） |\n| [/app/Http/Controllers](/app/Http/Controllers) | 控制器存放目录 |\n| [/app/Http/Controllers/ApiController.php](/app/Http/Controllers/ApiController.php) | 所有 Api 逻辑 |\n| [/socket-func.js](/socket-func.js) | 弹幕服务器 相关代码 |\n| [/socket-func-install.bat](/socket-func-install.bat) | 弹幕服务器 一键安装脚本 |\n| [/socket-func-restart.bat](/socket-func-restart.bat) | 弹幕服务器 一键重启脚本 |\n| [/database/migrations](/database/migrations) | 存放数据表结构相关 |\n\n# 截图\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/login.png\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/category_list.png\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/danmaku.gif\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/editor.png\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/inserter.gif\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/autocomplete.gif\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/editor-help.png\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/danmaku-input.png\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/danmaku-input-2.png\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/ranking.png\"\u003e\n\u003cimg src=\"./docs/screenshots/latest/excel.png\"\u003e\n\u003c/p\u003e\n\n[历史版本截图](./docs/history.md)\n\n# 版权\n\n[書記](https://github.com/qwqcode/book-register) Copyright (C) 2018 [QWQCODE](http://www.qwqaq.com \"Author Blog\")\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqwqcode%2Fbook-register","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqwqcode%2Fbook-register","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqwqcode%2Fbook-register/lists"}