this project is mainly used to get the github software recommendation of stackoverflow users
to run this project, firstly you need to install JDK1.7+
in folder rec, use “mvn assembly:assembly” to compile this project
use index_main.sh filter_projects.sh main.sh to run each subprogram
The project mainly consists of five parts
the sourceDao(com.ow2.rec.sourceDao) part is the operation of source database, which includes:
ProjectDao: this is the operation of Github projects
SOFFilterSourceDao: this is the operation of filtering the stackoverflow users
TagDao: this is the operation of stackoverflow tags
UserTagDao: this is the operation of the middle result table, which names user_tags
the targetDao(com.ow2.rec.targetDao) part is the operation of target database, which includes:
MatchResultDao: this is the operation of processing the match result of stackoverflow users and github projects
SOFFilterTargetDao: this is the operation of storing stackoverflow users after filtering
the lucene(com.ow2.rec.lucene) part includes all the operations relating to lucene, which includes:
LuceneIndex: create index
LuceneSearch: search projects using lucene index
the main(com.ow2.rec.main) part includes all the entrances of “main” functions, which includes:
FilterUsers: this is the entrance which used to filter stackoverflow users(those who is not that active in stackoverflow)
IndexMain: this is the entrance of creating lucene index
Main: this is the entrance of creating queries and calculate relation scores between stackoverflow users and github projects
Match: this is auxiliary class for Main class
GetGreatPrj: this is used to get projects with high activeness after getting the match result
the model(com.ow2.rec.model) part includes all the models used in the whole process:
MatchItem: this is the model corresponding to the match result
Project: this model is corresponding to Github projects
Tag: this model is corresponding to the stackoverflow Tags table
User: this model is corresponding to the stackoverflow Users table
UserTag: this model is correponding to the middle result table called user_tags, which is used to store the relation between stackoverflow users and their related tags
the util(com.ow2.rec.util) part is the auxiliary part:
Normalizer: this class is used to normalize the data that we used in the process, which includes the operation of tag, string, number and etc
SimilarityCounter: this class is used to calculate the similarity between two texts
to run the project, we need the following database tables:
user_tags1~user_tags12: these tables are used to store the statistical middle result of stackoverflow users ,posts and tags
structure: Id, UserId, PostId, Tag, Updatetime
Users: this is the users table of stackoverflow
user_tags: this table is used to store the stackoverflow user id and their related tags
structure: Id, UserId, AllTags(eg:<file-io,java>)
watchers: this is the watchers table of github
stackoverflow_users: this table is used to store users of stackoverflow after filtering
structure: same structure as Users
projects: this is the projects table of github
the database we used in this project is ow2(source database) and ossean_production(target database). If you want to change the name, modify applicationContext.xml applicationContext_mybatis.xml in bin/resources
this project is mainly used to get the github software recommendation of stackoverflow users
to run this project, firstly you need to install JDK1.7+
in folder rec, use “mvn assembly:assembly” to compile this project
use index_main.sh filter_projects.sh main.sh to run each subprogram
The project mainly consists of five parts
to run the project, we need the following database tables:
the database we used in this project is ow2(source database) and ossean_production(target database). If you want to change the name, modify applicationContext.xml applicationContext_mybatis.xml in bin/resources
the demo we will present in http://ossean.trustie.net/softwarerec