# TyEnWord
**Repository Path**: tyxia/TyEnWord
## Basic Information
- **Project Name**: TyEnWord
- **Description**: 基于 Struts2、Hibernate 的简易 背单词 网站.
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: http://tyenword.tianyiyan.com/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2015-07-19
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
TyEnWord
----------
EDIT BY luckytianyiyan@gmail.com 2015/6/22 22:31:14
这是一个简易的背单词网站.它仅处于一个Demo阶段.
你可以通过 [tyenword.tianyiyan.com](http://tyenword.tianyiyan.com/) 查看它的效果.这是示例站点.
服务端使用 Struts2、Hibernate.
前端使用了 Bootstrap3, 以及部分 HTML5 的新元素,以及 AddThis 的分享功能.
> 我为这个小家伙写了一个Python脚本 [**EnglishInput**](http://git.oschina.net/luckytianyiyan/EnglishInput).
> 用来代替手工录入书本单词(显然手工录入很蠢).
> [**EnglishInput**](http://git.oschina.net/luckytianyiyan/EnglishInput) 可以解析书本CD,将有用的数据提取出来并录入数据库.
运行环境
----------
- JDK 1.8
- Tomcat 8
- MySQL 5.5
- Struts2 2.3.24
- Hibernate 4.2.7 Final (With MySQL-Connector-Java 5.1.35)
GetStart
----------
- Step.1 修改 **邮箱** 配置
将 src/config-default.properties 文件复制一份,并重命名为 config.properties
接着按照配置文件的注释说明修改
这里我们假设使用sina邮箱.
邮箱为`test@sina.com`, 密码为 `pwd123`,服务器地址为`http://localhost:8080`
email=test@sina.com
emailPasswd=pwd123
serverHost=http\://localhost\:8080
更多的设置,详情见 `config-default.properties` 注释
注意:新浪邮箱,默认未开启smtp服务。需要手动开启!具体步骤如下:
1. 登陆邮箱后,右上角点击 设置 按钮
2. 在页面左边树形导航中点击 服务端pop/imap/smtp 按钮
3. 将服务开启并保存
- Step.2 修改 **Hibernate** 配置
src/hibernate.cfg.xml
username
passwd
jdbc:mysql://localhost/ty_en_word
- Step.3 运行程序
不出意外, 这时 Hibernate 已经在你的对应数据库中,将结构创建好了.
打开主页,并没有书本内容。
这时你可以往数据库录入书本内容了.
你可以使用下面的方式快速获得测试数据:
1. 如果你有 英语课本的CD(当前只支持 外研社 新视野 大学英语 第二版)
你可以通过 EnglishInput ,简单的配置后,运行它,将会帮你把内容自动录进数据库.
详情可以 [点击这里](http://git.oschina.net/luckytianyiyan/EnglishInput) 跳转到 EnglishInput 项目页.
2. 在[项目的附件](http://git.oschina.net/luckytianyiyan/TyEnWord/attach_files)中,有 大英1 到 大英4 的书本数据.
这是一个SQL文件,直接导入到你的数据库就好.
> Note: template 文件夹下是我做的页面模板.
Debug
----------
- Email Debug
打开 src/config.properties
mailDebug=true
- Hibernate Debug
打开 src/hibernate.cfg.xml
true
true
部分Jar包说明
----------
- mail.jar
提供邮件发送
- mysql-connector-java-5.1.35-bin.jar
提供mysql链接,用于Hibernate组件
- fastjson-1.2.6.jar
阿里工程师开发的Json拓展包,相比其它Json拓展包,它没有其它依赖,性能更佳
- struts2-json-plugin-2.3.24.jar
struts2的Json支持,主要用于Ajax支持
工具脚本
----------
- **EnglishInput** 脚本
这是一个Python 2.7写的书本录入脚本
如果你手上有、或能找到书本的配套CD, 通过它能够快速录入数据.
[**点击这里**](http://git.oschina.net/luckytianyiyan/EnglishInput) 可以跳转到EnglishInput项目页.
- 清除所有数据库表
-- User
DROP TABLE IF EXISTS email_verification;
DROP TABLE IF EXISTS user;
-- Book
DROP TABLE IF EXISTS phrase_meaning;
DROP TABLE IF EXISTS word_meaning;
DROP TABLE IF EXISTS word;
DROP TABLE IF EXISTS phrase;
DROP TABLE IF EXISTS book;
- 删除用户
DELETE FROM email_verification;
DELETE FROM user;
- 删除所有书本信息
DELETE FROM phrase_meaning;
DELETE FROM word_meaning;
DELETE FROM word;
DELETE FROM phrase;
DELETE FROM book;
Notes
----------
1. 这个小家伙是我在黑作坊(宿舍)里花了一点时间,边学边炮制出来的东西.
它仅能当做一个Demo,并不具备正式投入使用的价值.
2. 它本身存在一些明显的问题.
1. 里面我做了一个简单而却没用上的小功能 -- **在线用户统计**
然而,它并不是线程安全的.所以数据并不准确.
2. 细心的话,会发现 没有找回密码的功能(因为我偷懒了).
如果你想实现它,并不困难,参照**邮箱验证**功能,做一个就行.
3. 混乱的前端资源.
前端并没有细心的做,css是粗糙的.
4. 验证邮件的发送毫无限制
我并未设置 **重新发送验证邮件** 的间隔时间.如果你需要,可以自己加上.
可以脑补如果 **重新发送** 按钮被狂点的结果.
3. **请不要在我的 [示例站点](http://tyenword.tianyiyan.com/) 上测试我上面告诉你的一切.**