辩论投票工具 实现代码讲解

代码地址:https://gitee.com/Brickie_liu/bianlun-vote

一 事情起源

单位新同学要举办一场辩论活动,工会同事想要一个投票功能,类似奇葩说投影到大屏幕,观众可以通过手机进行观点选择。考虑到还没有见到这一类型的小工具,而且认识一些老师,在班里也会组织这些活动。这种交互式活动会比单纯的辩论更有活力。

二 整理需求

1、辩论双放观众投票信息大屏实时展示。
2、投票方式支持,每人只能投一票不能变更,每人只能投一票但可以变更,每人可以重 复投票。
3、可以增删辩论话题,并统计阶段性票数。
4、使用场景,50-200人会议厅。

三 演示视频:

https://gitee.com/Brickie_liu/bianlun-vote/tree/master/test/vote-1.mp4
https://gitee.com/Brickie_liu/bianlun-vote/tree/master/test/vote-2.mp4

四 方案一(WNMP,PHP,Nginx,Vue)

考虑以上几个功能,想着在没有内网的情况下可放到公网服务器上用,在没有网的情况下可以把WNMP环境打包,尽量精简功能和简单部署。

开发环境

win10 64位
notepad++
WNMP

第三方库

前端:

bootstrap
VUE

后端

PHP websocket( https://github.com/Textalk/websocket-php)
PHP Psr\Log

工程目录结构

│  index.html
│  manage.html
│  readme.txt
│  userListConfg.txt
│  util.php
│  vote.php
│  voteAdmin.html
│  voteConfig.php
│  voteOpt.php
├─lib
│  ├─Psr
│  │  └─Log
│  └─WebSocket
│          BadOpcodeException.php
│          BadUriException.php
│          Base.php
│          Client.php
│          ConnectionException.php
│          Exception.php
│          Server.php
│          TimeoutException.php
├─res
└─sh
        voteStartAll.php
        voteStopAll.php

存在的问题

1、由于当时想着在公网服务器上部署,就是专业人部署仍然需要配置很多系统配置,很繁琐
2、本地环境部署有点难,不是傻瓜式的。普通人不会用啊。做不到点击运行。

五 方案二(python,tk)

针对方案一的问题,用python实现,集成web服务。打包成exe,安装运行。
不在考虑支撑公网服务器上部署,只支撑本地,50-200人会议厅【一台电脑,一台支持3000M的WIFI6 路由器】华为的理论支持128终端。

开发环境

win10 64位
winrar
anaconde3 py39,
pycharm 2021.2

第三方库

前端

WEB bootstrap
WEB VUE
GUI tkinter

后端

psutil,获取系统本地信息
gevent,websocket服务
gevent-websocket,websocket服务
pyinstaller,生成exe打包
bottle,只有一个文件的web服务框架,遵循 WSGI,几乎支撑所有常用的功能。个人开发小型WEB推荐。

工程目录结构

│  build-winrar-conf.ini
│  build.bat
│  build.ps1
│  README.md
│  requirements.txt
│  voteMain.py
│
├─app-dist
│   voteMain.exe
│   voteMain.rar
│
├─src
│    app_gui.py
│    app_http.py
│    bottle.py
│    http_server.py
│    util.py
│
├─tool
│  │  upx-3.95-win64.zip
│  └─upx-3.95-win64
│          upx.exe
│
└─www
    │  404.html
    │  manage.html
    │  vote_client.html
    │
    └─res

编译

1、二次打包工具winrar,安装路径"C:\Program Files\WinRAR\WinRAR.exe",如不是请修改build.batwinrar参数。

2、win10:打开anaconda prompt终端执行build.bat,在app-dist目录下生成exe,rar以及源数据目录voteMain

3、build.ps1powershell环境下的执行脚本,没有测试过。

场景部署

本地,50-200人会议厅【一台电脑,一台支持3000M的WIFI6 路由器】华为的理论支持128终端。

部署方案一:100人以下

需要硬件设备:电脑一台,路由器一台

无线链接
无线链接
WIFI-6路由器
电脑web服务器
手机

部署方案二:当人数校多时100人以上时,使用2-3个WIFI6,做一个简单本地组网。

需要硬件设备:电脑一台,路由器2-3台

链接
有线AP
有线AP
无线链接
WIFI-6路由器
电脑web服务器
WIFI-6
WIFI-6
手机
手机
手机

安装运行

1、使用rar解压安装,生成源文件目录,进入找到voteMain.exe并运行。

2、使用exe安装,生成源文件目录,并在桌面生成快捷方式,双击运行。

3、cmd 运行参数

Usage: voteMain.exe [options]

Options:
  -h, --help            show this help message and exit
  -p PORT, --port=PORT  指定web服务端口,默认值【8080】
  --gui               GUI运行,默认值【True】

存在的问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brickie-liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值