做过的和正在做的项目

这里是我做过的和正在做的一些项目、作业还有一些其他好玩的东西。有些是课程作业,也有些是自己空闲的时候做的一些好玩的东西,如果GitHub地址是空的或者点不动的话,那就肯定是导师或实验室的项目不给开源罢了。

0x00 Preface

除非有特殊说明,否则开源协议均为GPLv3.

0x01 Java Projects

分布式爬虫

Key

Value

GitHub

研究生科研项目 - 非开源

开始时间

Nov 1, 2019 (由我接手)

竣工时间

施工中。。。

所用框架

Spring/Jsoup

数据库及驱动

Hadoop

标记

独立开发中。。。

说明

一个科研项目的数据集获取部分

这是一个科研项目的一部分,这个科研项目主旨在分析全国300家高等院校的本科生(高考)以及研究生(考研)录取情况,使用机器学习的相关方法训练模型。对高考而言,考生可以给出相关考试分数、全省排名和预期的专业/学校信息,评估出一个大致的录取概率以及学校/志愿推荐。对于研究生入学考试而言,考生可给出相关考试分数、报名院校以及专业代号评估出一个大致的录取概率以及在录取概率极低情况下的一个调剂志愿推荐。

而我所做的部分就是数据集的获取,实现一个分布式的爬虫以便爬取名单中的300家高校的招生信息网上的相关信息,例如:自主招生复试名单及通过名单及其优惠信息(例如:降30分录取)、往年录取最高/最低分、研究生拟录取信息、调剂复试安排等。

一个类似于网易蜂巢的Docker镜像中心

Key

Value

GitHub

镜像中心, 单点鉴授权服务, Docker Registry消息传播器

开始时间

Feb 14, 2019

竣工时间

Jun 2, 2019

所用框架

Spring boot/Spring Security/jjwt/fastjson/ActiveMQ

数据库及驱动

MySQL/Spring Data JPA+Redis/Spring Data Redis

标记

独自完成

说明

本科毕业设计项目

基于Docker Registry基础上设计了一个自己的Docker镜像中心,当Docker Registry内部发生变化时通过预先配置的Docker Registry Notification机制向Docker Registry消息传播器传播变化信息。消息传播器收到信息之后,对消息进行预处理和重新封装传播到ActiveMQ消息总线上,镜像中心内部配置有相关消息的消费者程序,对相关信息进行进一步处理以及对必要的数据进行持久化。单点鉴授权服务旨在实现用户的单点登陆和权限分配,基于Json Web Token的鉴授权服务可以避免在服务器端存储权限信息上下文。Redis主要用于存储docker的镜像元信息(每一个镜像分层所产生的表现层(manifest)的SHA-256值),以便docker registry可以快速判断镜像分层中哪些已经在服务端中,哪些不在,这样docker push的过程中就可以只上传不在服务端中的部分了。镜像存储服务使用阿里云OSS对象存储

E-store在线图书商城 - 服务端

Key

Value

GitHub

E-BookStore

开始时间

July 4, 2018

竣工时间

July 13, 2018

所用框架

Spring boot/Spring Security/Gson/docker-maven-plugin

数据库及驱动

MySQL/Spring Data JPA/Tomcat JDBC Pool+Redis/lettuce

标记

独自完成

说明

本科Java EE课程实训项目

这是本科阶段一次课程实训的作业,出于敏(tou)捷(lan)开发的缘故,当时借用了很多下面这个项目的工作和代码。这是一个在线图书商城的项目,界面什么的完全仿着淘宝首页做的。可以实现浏览商品、搜索商品(未使用ElasticSearch等搜索引擎,而是基于SQL的通配符查找)、商品详细信息的增删改查、加入购物车、下单、付款以及物流跟踪(通过调用免费版的快递100物流查询API实现)等一系列功能。当时想做但没做的唯一的遗憾就是没有试着接入一下微信/支付宝支付的测试接口。

山东理工大学CIL实验室协同办公系统 - 服务端

Key

Value

GitHub

CILManagement-Server

开始时间

Feb 13, 2018

竣工时间

Apr 25, 2018

所用框架

Spring/Spring MVC/Spring Security/Spring Session/Fastjson

数据库及驱动

MySQL/Tomcat JDBC Pool/MyBatis+Redis/lettuce

标记

独自完成

说明

本科实验室内部自用项目

这个项目已经在实验室内部上线使用,服务端旨在提供一套符合Restful API标准的数据接口,这套接口可被任意语言实现的客户端调用。系统主要用于规范实验室内部器材的租借管理(因为学校资产审查的时候,丢了是要老师赔钱的,所以必需规范器材的流向),以及实验室内部的项目管理,同时人员可以在平台上向老师提交工作日报/周报,以便实验室老师可以更方便地管理实验室成员的工作日程和进度。

Web Talk在线客服系统

Key

Value

GitHub

本科实验室项目 - 非开源

开始时间

N/A

竣工时间

June 25, 2017

所用框架

Spring/Spring MVC/jackson/log4j

数据库及驱动

MySQL/MyBatis

标记

小组协同开发 - 我作为实验室的技术总负责人

说明

本科实验室外接企业项目

一个网页内嵌对话框式的在线客服系统,发起对话后可与人工客服进行聊天。这个项目接手过来之后,内部是基本成型的,可以说是一个半成品的状态。原开发者团队因为与公司发生纠纷,罢工不干了,然后就由我们接手了。内部很多业务逻辑接口已经打桩但没有实现,我当时作为实验室的技术总负责人,带领几位同学,重新接手此项目,依据原开发者留下的零星的一点设计文档和需求说明,给他重新完整实现了出来。但遗憾的是项目最终没有上线,同时实验室导师拒绝了这个项目的开源请求。

0x02 C/C++ Projects

山东理工大学辩论赛计时系统

Key

Value

GitHub

DebateTimer

开始时间

Apr 20, 2017

竣工时间

May 9, 2017

所用框架

MFC, AFX, CDC 绘图, jsoncpp

数据库及驱动

N/A

标记

独自完成

说明

已经在山东理工大学齐鲁医药学院得以广泛的应用

大二的时候应老师要求,给我们学校法学院辩论赛开发了一个专属计时器程序,后来也是没想到,这个程序居然得到了广泛的应用,在我校校际辩论赛的时候还传播到了别的学校,有了很多用户,我有在自己写的程序里面植入自己联系方式的习惯,于是得益于此,也让我认识了很多人。现在这个程序已交由我校计算机学院通信工程专业的一个学弟维护了。

搜狗输入法输入速度排名作弊器

Key

Value

GitHub

SogouInputTool.cpp

开始时间

Feb 7, 2017

竣工时间

Feb 7, 2017

所用框架

Windows API

数据库及驱动

N/A

标记

独自完成

说明

不解释,看图:

山东理工大学ACM答案爬虫

Key

Value

GitHub

ACM Spider

开始时间

Mar 20, 2017

竣工时间

Mar 27, 2017

所用框架

MFC, AFX, libcurl

数据库及驱动

N/A

标记

独自完成

说明

爬答案的

这其实是一个偷懒的工具,大二时数据结构平时分里面会计算平时在我校ACM平台的提交情况,当时就是不想写那些作业(哈哈,不要学我),然后写了这么一个爬虫,把别人的答案爬下来,然后提交到我的账号上。

酒店管理系统

Key

Value

GitHub

Hotel System

开始时间

Jan 4, 2017

竣工时间

Jan 12, 2017

所用框架

MFC, AFX, Windows API

数据库及驱动

MySQL/MySQL C++ Connector

标记

独自完成

说明

本科数据结构课程实训作品

这是一个酒店管理系统,为了省(tou)事(lan),没有写服务端,而是客户端直接连接数据库操纵数据。这是不安全的,而且当时写的时候,还把数据库地址和数据库连接的用户名密码都写死进程序里了。不过这个程序还是很不错的,用了很多MFC的控件。

带GUI的黑白棋游戏

Key

Value

GitHub

Othello

开始时间

Jul 8, 2016

竣工时间

Jul 10, 2016

所用框架

MFC, ATL, AFX, Windows API

数据库及驱动

N/A

标记

独自完成

说明

大一C语言程序设计结课作业

一个黑白棋游戏程序,只能双人对战,没有AI加持。对棋子落点的判断是完全基于鼠标点击坐标的,鼠标点击坐标相对于棋盘右上角(0, 0)点的相对坐标,然后分别除以棋盘上每个方格的大小算出来是第几格,这么设计有个问题,就是在现在的Win10系统下,1920x1080的分辨率会默认全局125%的缩放,程序在缩放状态下的显示和鼠标坐标的判断是有问题的,需在程序兼容性选项卡里面禁用Win10全屏优化以及高DPI缩放行为调整为“应用程序”。

为梦想加油!

Key

Value

GitHub

ForMyDream

开始时间

Aug 26, 2016

竣工时间

Aug 28, 2016

所用框架

MFC, ATL, AFX, Windows API

数据库及驱动

N/A

标记

独自完成

说明

/* 为梦想,加油! */

开发这个Demo的目的是为了激励我去学习,每隔一段固定的时间,就会以淡入淡出效果演示一个对话框,对话框上是一副图片:为梦想,加油!

0x03 英文技术文献翻译

RESTful API Tutorial

Key

Value

URLs

RESTful API Tutorial

开始时间

May 5, 2018

竣工时间

June 6, 2018

排版方式

Markdown

规模

约14000字(译文汉语部分)

译自国外某网站的Restful API设计教程,加上了很多译者注,也算是我的一些理解吧。

0x04 博客、文集以及相关文稿

面试题总结

Key

Value

GitHub

interview-preparing

开始时间

Mar 6, 2019

竣工时间

依然还在施工中

排版方式

LATEX\LaTeX

规模

83页A4纸,具体字数不详

就是总结了很多面试题呀,主要面向Java语言,包含了Java后端开发中的几个比较常见的框架(Spring, MyBatis等),以及一些计算机基础学科(计算机网络、数据库原理等)的相关知识。