注意:这是 摊盒 (Booth-Kernel) 的早期原型代码(2025年版)。 本仓库仅作为开发历史存档展示,不再维护。
如果您想下载最新、稳定、免配置的客户端,请移步官方新仓库: 👉 Academy-of-Boundary-Landscape/ABL-BoothApp
一个为东方Project同人展摊主打造的、极简高效的销售与库存管理解决方案。
注意:现在这个出摊工具的使用教程已经被迁移到了我们社团的出摊指南.pdf文档内,请在它的项目内查看之。
项目链接:Github
社团页面:[境界景观学会])(https://www.abl.secret-sealing.club/events/booth-manual)
- 我们上线了全新的本地应用版本, 适合没有公网服务器的社团同好使用, 请前往boothApp目录查看详情和下载。
=======
- 被动迁移到boothApp目录下, 以区别于网络版
- 扫码通过局域网和电脑端控制台连接
- 系统性重构了前端代码, 使用了我最喜欢的NaiveUI组件库, 让界面更加美观一致, 并且代码极大简洁可维护了。
- 给销售统计页面加入了销售折线图, 现在管理员可以更直观地看到展会当天销售趋势
- 给销售统计页面加入了按商品/时间段筛选订单的功能, 现在管理员可以更方便地查看特定商品或时间段的销售数据
- 给管理员页面和摊主页面的登录加入了正经的jwt token认证, 并同步了相关api的权限, 现在权限管理会更加安全和可靠, 避免被注入恶意请求的风险
- 修复了管理员页面在某些浏览器下无法登录的问题
- 修复了平板电脑二维码显示不全的问题
- 修复了摊主页面营业额必须手动刷新才能更新的问题
- 给展会上架商品加入了搜索框和点击选择功能,现在可以更方便地给展会添加商品,而不用再去查商品ID了
- 给展会管理页面加入了删除展会的功能,现在管理员可以删除不需要的展会了
- 给展会管理页面加入了搜索框,管理员可以搜索名称和日期迅速定位到想要管理的展会
- 修改了管理员页面的侧边栏,让它能够收起和自动适配屏幕
- 略微调整了展会管理页面的布局和配色,让该页面更紧凑美观
- 完善了一键部署代码,修复了文件系统权限问题,pm2项目名称问题,python版本问题和nginx设置问题等大量抽象小问题,现在它可以保证在大部分Ubuntu 20.04+的服务器上顺利一键部署
- 修复了上传图片窗口显示不了当前图片的问题
- 加入了一键部署代码,现在部署这个项目会非常简单!
- 加入了制品分类,现在顾客和管理员都可以根据分类快速过滤商品
- 修复顾客页面制品卡片重叠或者图片比例不对的问题
- 给顾客页面做了手机端适配,加入了可调节的制品卡片大小选项
- 优化部分样式设计和手机端的适配细节
- 加入了统计页面,现在它可以自动生成销售报告并导出到excel表格
- 修复了处理中订单堆积产生的负数库存效果的问题(增加了下单之前对这件事的判断)
- 给下单失败增加了更好看的弹窗报错
专为解决漫展出摊中最繁琐的点单模糊与记账琐碎问题而生。本工具通过清晰的电子菜单、自动化的订单与库存同步,极大提升出摊效率,减轻摊主负担,让您能更专注于与同好的交流。
核心价值:
-
对游客:清晰的电子菜单,点击图片即可下单,社恐友好,体验升级。
-
对摊主:订单自动同步,配货如玩模拟经营游戏,自动记账算钱,解放双手。
-
对社团:数据化经营,轻松掌握销售数据和利润,为未来决策提供支持。
主要特性:
-
🛒 傻瓜销售界面:屏幕上有所有制品的名字、图片、价格, 游客只需要点击图片就能加入购物车, 自动计算总价并弹出收款码,无需计算和问价,社恐友好。
-
📦 自动库存管理:自动计算售出制品数,实时更新剩余制品数量,完售制品会自动同步到销售界面。
-
📊 实时数据看板:在摊主页面直观计算和展示所有制品的销售额、销量等关键数据,方便统计利润和补货。
-
🔗 极简摊主操作:摊主只需要按照页面提示,像模拟经营游戏一样,按照屏幕显示的订单进行配货和确认即可,无需手动记录任何数据。
-
💾 数据文件导出:支持将销售记录导出为可以直接打印的Excel表格,方便线下备份与对账。
-
🌙 自定义制品与展会:允许社团管理员自定义自己的展会和制品信息,给摊主设置权限与密码。
线下使用:
-
社团管理员添加展会和制品信息
-
挂着游客页面的平板电脑放在摊位前,作为电子菜单
-
摊主用自己手机打开摊主页面, 进行订单管理和配货
-
其余计算和统计完全在系统内完成, 用科技解放双手!
本项目采用前后端分离架构:
- 前端: Vue 3
- 后端: Flask (Python)
- 数据库: SQLite
系统包含三个核心页面,对应不同角色:
- 功能: 浏览商品、加购、下单、支付。
- 访问: 无需密码,公开展示。
- 流程: 选择展会 -> 浏览商品 -> 点击购买 -> 自动算价 -> 弹出收款码 -> 等待摊主配货。
- 功能: 接单、配货、确认完成、查看实时数据。
- 访问: 需输入管理员为本次展会设置的摊主密码。
- 流程: 登录 -> 查看待处理订单 -> 按单配货 -> 点击“完成” -> 系统自动更新库存和统计。
- 功能: 管理全局数据、初始化展会。
- 访问: 需输入最高权限密码(通过环境变量
ADMIN_PASSWORD设置)。 - 操作:
- 管理展会: 增删改查展会信息,设置摊主密码。
- 管理制品: 维护社团的全局商品库(上传图片、设置名称、分类等)。
- 上架商品: 为特定展会选择商品并设置初始库存和售价。
- 订单操作: 查看所有订单,必要时进行干预。
本项目推荐使用根目录下的 deploy.sh 脚本进行一键自动化部署,涵盖后端、前端、Nginx、SSL 证书等所有配置。
- Ubuntu 20.04+(建议)
- 域名已解析到服务器
首先编辑 deploy.sh 顶部的用户配置区:
PROJECT_NAME="abl-booth-tool" #项目名称
DOMAIN_NAME="booth-tool.secret-sealing.club" #替换为你自己的域名,记得在你的服务器配置DNS解析记录
WWW_DOMAIN_NAME="www.booth-tool.secret-sealing.club"
EMAIL="your@email.com" # 替换为你的邮箱,这用于给certbot配置https服务chmod +x deploy.sh
./deploy.sh脚本会自动完成:
- 安装 Nginx、Python3、Git、Curl
- 安装/配置 NVM、Node.js、PM2
- 创建 Python 虚拟环境并安装依赖
- 安装 gunicorn
- 自动创建日志和 socket 目录
- 使用 PM2 启动/守护后端服务
- 自动生成并启用 Nginx 配置(含前端静态、API 代理、静态资源)
- 自动申请并配置 SSL 证书(HTTPS)
pm2 status
sudo systemctl status nginx部署完成后,访问:
- https://booth-tool.secret-sealing.club
- (或者是你自己在
deploy.sh里面定义的网站域名) 如需自定义前端、后端配置,请参考脚本注释和各自目录下的 README。
如遇问题:
- 查看 PM2 日志:
pm2 logs abl-booth-tool - 查看 Nginx 日志:
sudo tail -n 100 /var/log/nginx/error.log - 检查虚拟环境 gunicorn 路径:
backend/venv/bin/gunicorn
注意: 使用一键部署脚本部署的项目的密码是默认的,请务必在 backend/.env 文件中修改 ADMIN_PASSWORD 和 VENDOR_PASSWORD 以确保安全。
- 默认摊主密码:
114514 - 默认管理员密码:
1919810
更多高级用法和手动部署细节请参考脚本和源码注释。
出摊系统的flask后端的环境变量保存在 backend/.env 文件中,主要包括:
ADMIN_PASSWORD:管理员密码,用于访问管理员页面,建议设置复杂密码。VENDOR_NAME:摊主默认的密码,在未设置摊主密码的情况下可以使用它登录摊主页面。MAX_CONTENT_LENGTH:上传文件的最大大小,默认16MB。 请根据需要修改这些配置。
- 暂无
我们欢迎一切形式的贡献!无论是提出建议、反馈Bug还是直接提交代码。
- Fork 本仓库
- 创建特性分支 (
git checkout -b feat/Feature) - 提交你的更改 (
git commit -m 'Add some Feature') - 推送到分支 (
git push origin feat/Feature) - 开启一个 Pull Request
- 等待审核与合并
- 感谢您的贡献!
本项目采用 MIT 协议。请查看 LICENSE 文件了解更多信息。
- 移动端App开发:开发原生App版本,提供更好的离线体验和推送通知,让没有web服务器的社团也能使用之。
- 接入库存和财务系统:提高集成度,让销售结果无缝对接到社团内部系统
- 离线模式:增强离线缓存和断网恢复能力,应对网络太烂的场合。
- 一键导入: 从excel或其它格式文件一键批量导入多种制品。
- 更简单部署: 提供Docker镜像和更完善的一键部署脚本,降低部署门槛。
如果您有任何问题、建议或需要帮助,请通过以下方式联系我们:
- 在这个Github项目下提出issue
- 社团邮箱:
contact@secret-sealing.club - 主催个人qq:
1471850534 - 社团qq群组:
748966747
祝您出摊顺利,场场完售!