bookhub -- 扁平化本地电子书管理与分享工具
代码 github 地址:https://github.com/JackonYang/bookhub
初稿:
1. 关键功能点
- 扫描本地电子书(扩展名 pdf/epub 等),将不重复的复制到特定目录(图书仓库)下。 -- 电子书去重
- 把书的名字、大小等信息写入数据库,与豆瓣关联,建立个人图书信息库。 -- 为后续扩展提供基础
- 浏览、搜索、打开。基于图书信息库,搜索/浏览的维度更灵活。 -- 比全盘搜索 + 资源管理器方便很多
- 分享个人图书信息库。github 上开个仓库。可以自由参考、合并他人仓库。 -- 扫一下硬盘,索要图书、勾搭同伴、发现好书
- 记录并分析阅读行为。数据存在本地,可以像图书信息一样分享。 -- 优化个人读书习惯,反思阅读过程更容易
- 如果把扩展名改成 avi/rmvb/ed2k 呢? -- 敢分享者,真英雄。
第 2 条是内部的实现方式,也是后续第 3-5 条功能的实现基础。
2. 架构
GUI 提供基本的本地电子书管理功能。书籍的详细信息管理、分享等,通过 Web 页面实现。
GUI 与 Web 共用一个数据库。
先只做 GUI,实现以下功能:
1. 扫描电子书
2. 浏览/搜索/打开 电子书
3. 操作日志
2.1 UI 层
FrameOverView 和 Scanner 是 2 个用户可见的界面。
其中,Scanner 暂时只支持命令行完成导入操作。
后续提供 FrameScan 调用 Scanner,实现界面操作。
Scanner 依赖于 Model 层 MediaRepo 的 add_file 方法,扫描到目标文件后,通过 add_file 方法加入仓库中。
FrameOverView 使用 ObjectListView 实现,直接依赖于 Model 层的 BookMeta
2.2 BookMeta
类 ORM 的一个 Model,主要提供单条数据 getter/setter 的封装。
MediaRepo 作为 BookMeta 的 Manager,封装数据库的查询/更新、文件系统的打开文件操作。
2.3 MediaRepo
管理数据库连接和文件系统。
封装基本的增删改查操作。
2.4 Logger
记录详细操作信息,写入数据库。
bookhub -- 扁平化本地电子书管理与分享工具的更多相关文章
- Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理
Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理 1.1. 矩阵管理 1 1.2. 相关信息 矩阵的历史 1 1.3. 基于“ ...
- HihoCoder1650 : 扁平化管理([Offer收割]编程练习赛38)(二分)
描述 小Hi的公司包括CEO在内一共有N名员工.这N名员工的上下级关系形成树形结构,CEO处于树根,普通员工处于叶子节点. 现在公司希望管理扁平化,要求树形结构中的层级不超过L层.此外,假设A是B的直 ...
- IT传统组织结构及新型扁平化组织
如今互联网企业正凶猛的改变人们衣食住行的方方面面,衣->淘宝,蘑菇街;食->大众点评,口碑;住->去哪,途牛:行->12306, 多次听到互联网的同行介绍他们就是要“快”,快速 ...
- 11款扁平化设计的 Twitter Bootstrap 主题和模板
扁平化设计和 Bootstrap 框架是2013年网页设计领域的两大设计潮流.把这两者集合起来不是件容易的事情,使用下面这些主题和模板将节省我们的开发时间,因为我们可以修改已有的基础代码,而不是从零开 ...
- 苹果 Mac OS X Yosemite 10.10 新功能特性总结 - 扁平化、主打跨设备的无缝连通性
苹果在2014.06.03凌晨的 WWDC 2014 大会上正式发布了最新的 OS X Yosemite 桌面操作系统和 iOS 8 移动系统.虽然整场发布会的重心都在软件上,并没有硬件亮相,但软件上 ...
- ace后台管理系统扁平化框架
Bootstrap ACE后台管理界面模板(扁平化) 所属分类:后台模板 文件大小:1.22 MB 阅读:236697次 下载:55929次 来源:www.daimajiayuan.com 分享到:更 ...
- [转载]超赞!32款扁平化Photoshop PSD UI工具包(下)
32款扁平化风格的UI工具包第二弹!上篇为大家分享了16款风格各异的UI Kits,下篇继续为大家呈上16款精美的UI工具包,全部都有Photoshop PSD文件可以下载哦,喜欢就赶紧收藏吧! 17 ...
- AppBox升级进行时 - 扁平化的权限设计
AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox v2.0中的权限实现 AppBox v2.0中权限管理中涉及三个 ...
- 问你觉得iOS7为什么要扁平化,扁平化和之前的比有什么优势
问你觉得iOS7为什么要扁平化,扁平化和之前的比有什么优势 苹果首席设计师谈为何会在iOS上选择扁平风格http://ndnews.oeeee.com/html/201306/11/71078.htm ...
随机推荐
- 【动态规划】流水作业调度问题与Johnson法则
1.问题描述: n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工.每个作业加工的顺序都是先在M1上加工,然后在M2上加工.M1和M2加工作业i所需的时间分别为ai和bi ...
- 汇编debug 截图2
- 一步一步开发sniffer(Winpcap+MFC)(一)工欲善其事,必先配环境——配置winpcap开发环境(图文并茂,非常清楚)
http://blog.csdn.net/litingli/article/details/5950962
- Eclipse:快捷
Ctrl +单击方法------------查看方法 ALT+/ -------------代码助手 Ctrl+O -------------列出方法和成员变量或布局结构 Ctrl+D ...
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
/// <summary> /// 创建多边形shp /// </summary> /// <param name="pPolygon">< ...
- 坑爹的Mysql
本想尝试下如何使用Spring来管理Hibernate的事务,当配置好Spring的配置文件后,进行插入数据,结果报错了,错误是: Mysql Field * doesn't have a defau ...
- underscore.js 一个强大的js函数库
Underscore提供的100多个函数,主要涉及对Collection.Object.Array.Function的操作: Collections(集合) each, map, reduce, re ...
- 在Windows 上的 Python
在 Windows 上, 安装 Python 有两种选择. ActiveState 制作了一个 Windows 上的 Python 安装程序称为 ActivePython, 它包含了一个完整的 Pyt ...
- POJ 3252 Round Numbers(组合)
题目链接:http://poj.org/problem?id=3252 题意: 一个数的二进制表示中0的个数大于等于1的个数则称作Round Numbers.求区间[L,R]内的 Round Numb ...
- VMware下Ubantu与Windows共享文件夹的方法
刚刚接触linux的同学往往喜欢在windows系统下安装一个虚拟机,然后在虚拟机上进行操作,但是windows和虚拟机上的linux系统之间的文件互传往往不太方便,今天就总结一个小技巧在window ...