该软件希望满足小型图书馆,特别是乡村中小学图书室的日常管理需求,包括:书籍的录入和整理、书籍借阅管理功能、简单的统计功能。
该软件希望能够尽量降低老师和同学们的使用难度,因此在数据管理方面使用最为直观的Excel文件直接存储文件;在日常管理方面使用小数字键盘配合扫码枪进行管理,让小学生能够快速熟练掌握。
- 老师:前期整理图书馆信息,包括:电子化图书信息、添加读者信息、制定图书室规定等。
- 学生:负责日后的日常管理,包括:为同学们借阅归还图书、图书上架整理等。
- 开源开发者(不能直接push到该仓库):
git init #安装git后初始化
#进入https://github.com/jiaxunsongucb/mini-library,点击右上角的fork按钮,将仓库复制到自己的github账号下
#进入到自己的账号下的mini-library,点击绿色的“Clone or download”按钮服制下载链接
#回到本地:
git clone https://github.com/<username>/mini-library.git #科隆仓库到本地
git pull #更新本地仓库
git add . #添加所有新文件到暂存区
git commit -m "本次修改说明" #提交改动
git push #向远端推送修改
#回到github提交pull request
#等待审核合并
- 受信任的合作开发者(已成为Collaborators,可以直接push):
git init #安装git后初始化
git clone https://github.com/jiaxunsongucb/mini-library.git #科隆仓库到本地
git checkout -b testing #新建名为testing的分支
git pull #更新本地仓库
git add . #添加所有新文件到暂存区
git commit -m "本次修改说明" #提交改动
git push --set-upstream origin testing #设置推送到远端的分支为testing
git push upstream testing #向远端testing分支推送修改
#回到github提交pull request
#等待审核合并
- 代码文件用英文命名,采用小写加下划线方式,如library_system.py。
- 类class用驼峰命名方式,如CamelCase()。
- 函数function名用小写加下划线方式,如lower_case_with_underscores()。
- 变量名用小写加下划线方式,请尽量用英文命名而不是拼音。
- 请为所有新的类和函数添加注释,注释请用中文书写。
- 其它规范请参考Google Python Style Guide
由于软件面向的是windows平台用户,所以开发者必须使用windows平台对软件进行调试和打包。软件使用Python3编写,可执行文件exe为32位软件。
- 安装虚拟机环境
a. Mac系统
安装VirtualBox,并安装windows 7 (SP1)操作系统(64位或32位皆可)。详情可参考该教程。
b. Windows系统
无论是哪一个windows版本,无需进行额外的虚拟机配置。- 安装Python 3.4.4 (86x)。使用该Python版本的原因是:1)这是最后一版支持Windows XP 的Python版本; 2)该版本对exe可执行文件的打包效果最好。此仓库所有代码均依赖于这一版本的Python环境,请务必安装此版本;3)使用32位是因为64位系统依然能够运行32位的软件,如此就无需发布两套独立的软件。请将Python安装至默认路径下(C:\Python34)。
- 下载Git并安装。
- 使用Git Bash克隆此仓库: git clone https://github.com/jiaxunsongucb/mini-library.git
- 下载.NET Framework 4并安装。(Windows 8.1及更新系统无需安装。)
- 下载Microsoft Windows SDK并安装。(不要勾选安装Visual C++ Compilers!)
- 下载Visual C++ 10 Compiler并安装。
- 下载pywin32并安装。这是为了安装Python package Pyinstaller用以打包exe可执行文件而准备的。
- 进入code文件夹双击“安装package_for_windows_python34_86x.bat”为Python安装必要的package。(此过程需要联网。此安装过程会较慢。)(注:CMD脚本中使用for loop安装requirements而不是标准的pip install -r requirements.txt是因为pandas需要依赖numpy,必须按顺序依次安装。)
- 至此,全部环境配置已经完毕。测试:双击library_system.py即可运行软件;双击“生成exe文件_python34_86x.bat”可将.py打包为exe可执行文件。
粗体为用户得到的文件
- library_system.py (主程序)
- spider.py (爬虫录入书籍)
- data_manager.py (数据读取、交换)
- requirements.txt (用于安装python package)
- 安装package_for_windows_python34_86x.bat (用于安装python package)
- library_system.spec (用于打包exe可执行文件)
- 生成exe文件_python34_86x.bat (用于打包exe可执行文件)
- library.db (存储登录信息、密码等信息,并用于数据备份)
- 图书馆信息.xlsx (存储读者、书籍信息)
- 借阅记录.xlsx (存储借阅记录)
- /备份恢复 (存储恢复的Excel文件)
- library.log (软件运行产生的日志文件)
- 图书馆管理系统.exe (软件主体)
待续
2018-09
- 回滚到架构调整之前(为了解决一个已知的global数据交换不同步的问题)
- 增加读者丢书功能(管理员目录中)
- 增加当前操作提示
- 修复数个BUG,提高稳定性
2018-08
- 调整软件架构,使其更易读,便于后期维护
- 优化爬虫(使用xpath和re)
- 解决python封装成exe文件后还需要用户自行安装编译环境的问题
- 优化数据存储方式(借鉴关系型数据库)
- 优化数据备份方式(使用SQLite3)
- 优化书籍录入流程(从实际需求出发,帮助老师更快实现图书电子化)
- 新增用户使用情况日志功能
- 重编说明书
- 自动调整cmd窗口大小
- 优化信息打印格式(使用pandas打印表格)
- 添加彩色输出,绿色提示用户成功,红色失败
- 隐藏密码输入,用户输入的密码不在屏幕上打印出来
2017-10
- 软件开源
2016-10
- 软件上线
- 离线批量录入书籍
- 自动生成易打印的书籍信息和读者信息
- 图形化界面/基于WEB的应用
陈胜寒:重整软件架构、测试与调试
Jacty:重整软件架构
杨小朝:重写部分爬虫
吕汶颖、王德超、章强、张潮、段晨瑞、侯添译、胡恩硕、魏林:提供宝贵意见和建议