Skip to content
This repository was archived by the owner on Jul 31, 2025. It is now read-only.

Commit 12bf132

Browse files
committed
add repo graph
1 parent 68e8649 commit 12bf132

File tree

8 files changed

+312
-3
lines changed

8 files changed

+312
-3
lines changed

src/main/java/org/gitmining/controller/RepositoryDataController.java

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,17 @@ public Map getStatCounts(HttpServletRequest request) throws Exception {
141141
}
142142

143143
@RequestMapping(value="/repository/language")
144-
public Map<String, Integer> getRepoLanguage(HttpServletRequest request) throws Exception {
145-
Map<String, Integer> result = repoDataService.getLanguageAndNumber();
144+
public Map<String, Object> getRepoLanguage(HttpServletRequest request) throws Exception {
145+
Map<String, Object> result = new HashMap<String, Object>();
146+
List<String> language = new ArrayList<String>();
147+
List<Integer> number = new ArrayList<Integer>();
148+
Map<String, Integer> temp = repoDataService.getLanguageAndNumber();
149+
for(String key : temp.keySet()){
150+
language.add(key);
151+
number.add(temp.get(key));
152+
}
153+
result.put("language", language);
154+
result.put("number", number);
146155
return result;
147156
}
148157

@@ -160,4 +169,54 @@ public Map<Integer, Integer> getRepoCreateTime(HttpServletRequest request) throw
160169
}
161170
return result;
162171
}
172+
173+
@RequestMapping(value="/repository/contributor")
174+
public Map<String, Integer> getRepoContributor(HttpServletRequest request) throws Exception {
175+
Map<String, Integer> result = new LinkedHashMap<String, Integer>();
176+
List<Integer> temp = repoDataService.getContributorNumber();
177+
result.put("0~25", 0);
178+
result.put("25~50", 0);
179+
result.put("50~75", 0);
180+
result.put("75~100", 0);
181+
result.put("over 100", 0);
182+
for(int i = 0 ; i < temp.size() ; i ++){
183+
if(temp.get(i) >= 0 && temp.get(i) <= 25){
184+
result.put("0~25", result.get("0~25") + 1);
185+
}else if(temp.get(i) > 25 && temp.get(i) <= 50){
186+
result.put("25~50", result.get("25~50") + 1);
187+
}else if(temp.get(i) > 50 && temp.get(i) <= 75){
188+
result.put("50~75", result.get("50~75") + 1);
189+
}else if(temp.get(i) > 75 && temp.get(i) <= 100){
190+
result.put("75~100", result.get("75~100") + 1);
191+
}else{
192+
result.put("over 100", result.get("over 100") + 1);
193+
}
194+
}
195+
return result;
196+
}
197+
198+
@RequestMapping(value="/repository/collaborator")
199+
public Map<String, Integer> getRepoCollaborator(HttpServletRequest request) throws Exception {
200+
Map<String, Integer> result = new LinkedHashMap<String, Integer>();
201+
List<Integer> temp = repoDataService.getCollaboratorNumber();
202+
result.put("0~25", 0);
203+
result.put("25~50", 0);
204+
result.put("50~75", 0);
205+
result.put("75~100", 0);
206+
result.put("over 100", 0);
207+
for(int i = 0 ; i < temp.size() ; i ++){
208+
if(temp.get(i) >= 0 && temp.get(i) <= 25){
209+
result.put("0~25", result.get("0~25") + 1);
210+
}else if(temp.get(i) > 25 && temp.get(i) <= 50){
211+
result.put("25~50", result.get("25~50") + 1);
212+
}else if(temp.get(i) > 50 && temp.get(i) <= 75){
213+
result.put("50~75", result.get("50~75") + 1);
214+
}else if(temp.get(i) > 75 && temp.get(i) <= 100){
215+
result.put("75~100", result.get("75~100") + 1);
216+
}else{
217+
result.put("over 100", result.get("over 100") + 1);
218+
}
219+
}
220+
return result;
221+
}
163222
}

src/main/java/org/gitmining/dao/RepositoryDao.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.util.*;
44

5+
import java_cup.internal_error;
6+
57
import org.gitmining.bean.Language;
68
import org.gitmining.bean.RepoPairRelation;
79
import org.gitmining.bean.RepoScore;
@@ -54,4 +56,8 @@ public List<Repository> getSimpleReposByTagNameAndSortPagination(
5456
public Map<String, Integer> getLanguageAndNumber();
5557

5658
public List<String> getRepoCreateTime();
59+
60+
public List<Integer> getContributorNumber();
61+
62+
public List<Integer> getCollaboratorNumber();
5763
}

src/main/java/org/gitmining/dao/impl/RepositoryDaoImpl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,4 +221,16 @@ public List<String> getRepoCreateTime() {
221221
// TODO Auto-generated method stub
222222
return sqlSession.selectList("repo.getRepoCreateTime");
223223
}
224+
225+
@Override
226+
public List<Integer> getContributorNumber() {
227+
// TODO Auto-generated method stub
228+
return sqlSession.selectList("repo.getContributorNumber");
229+
}
230+
231+
@Override
232+
public List<Integer> getCollaboratorNumber() {
233+
// TODO Auto-generated method stub
234+
return sqlSession.selectList("repo.getCollaboratorNumber");
235+
}
224236
}

src/main/java/org/gitmining/mapper/repo.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,4 +266,14 @@
266266
SELECT create_time
267267
FROM repotest
268268
</select>
269+
270+
<select id="getContributorNumber" resultType="Integer">
271+
SELECT contributor
272+
FROM repotest
273+
</select>
274+
275+
<select id="getCollaboratorNumber" resultType="Integer">
276+
SELECT collaborator
277+
FROM repotest
278+
</select>
269279
</mapper>

src/main/java/org/gitmining/service/RepoDataService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ public interface RepoDataService {
2222
public Map<String, List> getStatCounts(String type);
2323
public Map<String, Integer> getLanguageAndNumber();
2424
public List<String> getRepoCreateTime();
25+
public List<Integer> getContributorNumber();
26+
public List<Integer> getCollaboratorNumber();
2527
}

src/main/java/org/gitmining/service/impl/RepoDataServiceImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,5 +180,15 @@ public List<String> getRepoCreateTime() {
180180
// TODO Auto-generated method stub
181181
return repositoryDao.getRepoCreateTime();
182182
}
183+
@Override
184+
public List<Integer> getContributorNumber() {
185+
// TODO Auto-generated method stub
186+
return repositoryDao.getContributorNumber();
187+
}
188+
@Override
189+
public List<Integer> getCollaboratorNumber() {
190+
// TODO Auto-generated method stub
191+
return repositoryDao.getCollaboratorNumber();
192+
}
183193

184194
}
Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
$(function() {
2+
var chart;
3+
4+
$(document).ready(function() {
5+
// var type=$("#viewtype").text();
6+
// if(type=="USERANALYSIS"){
7+
// $("#useranalysisitem").attr("class","item active");
8+
// }else{
9+
// $("#useranalysisitem").attr("class","item");
10+
// }
11+
12+
// get company
13+
var url = "/GithubVisualization/repository/language"
14+
$.ajax(url, {
15+
type : 'GET',
16+
// async : false,
17+
// contentType : 'application/json',
18+
// dataType : 'json',
19+
success : function(data, textStatus) {
20+
// Set up the chart
21+
var companychart = new Highcharts.Chart({
22+
chart : {
23+
renderTo : 'language',
24+
type : 'column',
25+
margin : 100,
26+
options3d : {
27+
enabled : true,
28+
alpha : 5,
29+
beta : 15,
30+
depth : 50,
31+
viewDistance : 25
32+
}
33+
},
34+
title : {
35+
text : 'Numbers of Repository in Different Languages'
36+
},
37+
plotOptions : {
38+
column : {
39+
depth : 25
40+
}
41+
},
42+
xAxis : {
43+
categories : data.language
44+
},
45+
yAxis : {
46+
title : {
47+
text : 'Numbers of Repository'
48+
},
49+
},
50+
tooltip : {
51+
valueSuffix : ''
52+
},
53+
series : [ {
54+
name : 'Language',
55+
data : data.number
56+
} ]
57+
});
58+
}
59+
});
60+
61+
url="/GithubVisualization/repository/createtime"
62+
$.ajax(url, {
63+
type : 'GET',
64+
success : function(data, textStatus) {
65+
// Build the chart
66+
var displaydata = [];
67+
for(var key in data){
68+
displaydata.push([key,data[key]]);
69+
}
70+
$('#blog').highcharts({
71+
chart : {
72+
plotBackgroundColor : null,
73+
plotBorderWidth : null,
74+
plotShadow : false
75+
},
76+
title : {
77+
text : 'The Distribution of Create Time'
78+
},
79+
tooltip : {
80+
pointFormat : '{series.name}: <b>{point.percentage:.1f}%</b>'
81+
},
82+
plotOptions : {
83+
pie : {
84+
allowPointSelect : true,
85+
cursor : 'pointer',
86+
dataLabels : {
87+
enabled : false
88+
},
89+
showInLegend : true
90+
}
91+
},
92+
series : [ {
93+
type : 'pie',
94+
name : 'Count',
95+
data : displaydata
96+
} ]
97+
});
98+
}
99+
});
100+
101+
url = "/GithubVisualization/repository/contributor"
102+
$.ajax(url, {
103+
type : 'GET',
104+
// async : false,
105+
// contentType : 'application/json',
106+
// dataType : 'json',
107+
success : function(data, textStatus) {
108+
// Set up the chart
109+
var x = [];
110+
var y = [];
111+
for(var key in data){
112+
x.push(key);
113+
y.push(data[key]);
114+
}
115+
var companychart = new Highcharts.Chart({
116+
chart : {
117+
renderTo : 'location',
118+
type : 'column',
119+
margin : 100,
120+
options3d : {
121+
enabled : true,
122+
alpha : 5,
123+
beta : 15,
124+
depth : 50,
125+
viewDistance : 25
126+
}
127+
},
128+
title : {
129+
text : 'Numbers of Repository in Different Ranges of Contributors'
130+
},
131+
plotOptions : {
132+
column : {
133+
depth : 25
134+
}
135+
},
136+
xAxis : {
137+
categories : x
138+
},
139+
yAxis : {
140+
title : {
141+
text : 'Numbers of Repository'
142+
},
143+
},
144+
tooltip : {
145+
valueSuffix : ''
146+
},
147+
series : [ {
148+
name : 'Range',
149+
data : y
150+
} ]
151+
});
152+
}
153+
});
154+
155+
url = "/GithubVisualization/repository/collaborator"
156+
$.ajax(url, {
157+
type : 'GET',
158+
// async : false,
159+
// contentType : 'application/json',
160+
// dataType : 'json',
161+
success : function(data, textStatus) {
162+
// Set up the chart
163+
var x = [];
164+
var y = [];
165+
for(var key in data){
166+
x.push(key);
167+
y.push(data[key]);
168+
}
169+
var companychart = new Highcharts.Chart({
170+
chart : {
171+
renderTo : 'email',
172+
type : 'column',
173+
margin : 100,
174+
options3d : {
175+
enabled : true,
176+
alpha : 5,
177+
beta : 15,
178+
depth : 50,
179+
viewDistance : 25
180+
}
181+
},
182+
title : {
183+
text : 'Numbers of Repository in Different Ranges of Collaborator'
184+
},
185+
plotOptions : {
186+
column : {
187+
depth : 25
188+
}
189+
},
190+
xAxis : {
191+
categories : x
192+
},
193+
yAxis : {
194+
title : {
195+
text : 'Numbers of Repository'
196+
},
197+
},
198+
tooltip : {
199+
valueSuffix : ''
200+
},
201+
series : [ {
202+
name : 'Range',
203+
data : y
204+
} ]
205+
});
206+
}
207+
});
208+
});
209+
210+
});

src/main/webapp/velocity/templates/repoanalysis.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div class="ui main text container">
44

5-
<div id="user"></div>
5+
<div id="language"></div>
66
<div id="company1"></div>
77
<div id="blog"></div>
88
<div id="location"></div>

0 commit comments

Comments
 (0)