Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visualization dev #75

Open
wants to merge 80 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
4fad71c
initial commit
Jun 2, 2017
374c362
HAcked gunplot version
tonylixu Jun 2, 2017
aeb45f0
Comment out gnuplot calls
tonylixu Jun 2, 2017
3384936
Return a fake version
tonylixu Jun 2, 2017
fbad04d
Merge pull request #1 from tonylixu/remove-gnu-plot
gschultz49 Jun 2, 2017
fced85c
current visualization work up to line graph
Jun 6, 2017
5958743
current visualization work up to line graphs
Jun 6, 2017
96e38e2
cleaning js script
Jun 7, 2017
c59e627
cleanup of js file, more function oriented
Jun 7, 2017
6576eb9
mods to produce correct table output in gitstats
Jun 7, 2017
74e8118
check tools_portal
Jun 7, 2017
54f1f52
del tools_testing
Jun 7, 2017
a6b5ffa
added back in tools testing
Jun 7, 2017
bd8e8e8
test_repos
Jun 7, 2017
622275b
typo
Jun 7, 2017
ee2e633
hour_of_week changes
Jun 7, 2017
5dd8aef
w -> a+ write type
Jun 7, 2017
b98f388
day_of_week
Jun 7, 2017
e688bd5
replacement of writeHeaders function
Jun 7, 2017
16f0fc2
syntax
Jun 7, 2017
d75b23a
scoping issue
Jun 7, 2017
b6d229f
week->weekdays
Jun 7, 2017
6ed670c
1st attempt hour_of_week and commits_by_author
Jun 7, 2017
de02752
random typo
Jun 7, 2017
7d75ec9
prepend to insert
Jun 7, 2017
4212b8f
Pseudo code for a gitstats wapper
tonylixu Jun 8, 2017
3ac4b1f
templating sorted out in flask
Jun 8, 2017
7374d8d
Merge branch 'visualization_dev' of https://github.com/tonylixu/gitst…
Jun 8, 2017
05c630a
adding notes and cleaning
Jun 8, 2017
b71c362
routing setup
Jun 9, 2017
668a2c8
main routing
Jun 9, 2017
b250b6b
cleaning
Jun 9, 2017
a65f08a
data routing
Jun 9, 2017
85cbaea
author.tsv attempt
Jun 13, 2017
4d6296d
author.tsv
Jun 13, 2017
27a792d
added 'path' to open command
Jun 13, 2017
55e70ce
commenting out uneccessary
Jun 13, 2017
7f80a14
testing hour_of_week_test
Jun 13, 2017
1fa1e66
typo
Jun 13, 2017
f4dd278
comment out commits auth test
Jun 13, 2017
81d9306
fixing paths
Jun 13, 2017
24cebea
similout
Jun 13, 2017
bc35bfa
too much data in hour_of_wee_TEST
Jun 13, 2017
8f94818
updated version of simulout
Jun 13, 2017
75f7c6f
update to heatmap
Jun 13, 2017
a0a1686
output from update to heatmap hours
Jun 13, 2017
68e1286
author.tsv creator
Jun 19, 2017
9d3de42
typo
Jun 19, 2017
a33f7a7
modifications for table construction, need testing
Jun 19, 2017
67f9a24
typo
Jun 19, 2017
2009593
misplaced ,
Jun 19, 2017
d6c6aca
args err
Jun 19, 2017
e8d67c1
multi project capacity and color redesign
Jun 27, 2017
27ff105
extension, authors tables to tsv
Jun 29, 2017
2a5109a
typos
Jun 29, 2017
d892563
trying to reset gitstats
Jun 29, 2017
e11f7b4
tags_tsv
Jun 29, 2017
1353378
gitstats as executable
Jun 29, 2017
dd30341
additional non-unix time stamp columns for line graphs
Jul 5, 2017
ef4980d
first run of git2json stuff
Jul 6, 2017
0b102ff
%d to %s
Jul 6, 2017
4fa4889
executable
Jul 6, 2017
90c695e
Merge branch 'visualization_dev' of https://github.com/tonylixu/gitst…
Jul 6, 2017
af2885c
modified destination
Jul 6, 2017
58c9d18
Merge branch 'visualization_dev' of https://github.com/tonylixu/gitst…
Jul 6, 2017
eff0fc7
destinations?
Jul 6, 2017
2b4029d
now as executable
Jul 6, 2017
457b580
moved git2json code
Jul 6, 2017
4a7554c
> instead of |
Jul 6, 2017
2e3327d
path errors
Jul 6, 2017
75d7794
path switch for execution
Jul 6, 2017
927c105
disable non unix timestamp testing
Jul 6, 2017
3850197
execution py for easy build
Jul 6, 2017
a3b9f55
typos
Jul 6, 2017
d82fe6b
new slash
Jul 6, 2017
83e5320
moved git2json down
Jul 7, 2017
73bc6b8
moved it down to near main
Jul 7, 2017
5007c86
new location worked, now just adding terminal print out
Jul 7, 2017
c4c36e1
setup for .repo controller
Jul 17, 2017
29a29d0
special path needed
Jul 17, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
simul_data

3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"python.linting.pylintEnabled": false
}
Binary file added FlaskTest/.app.py.swp
Binary file not shown.
167 changes: 167 additions & 0 deletions FlaskTest/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
from flask import Flask, render_template
app = Flask (__name__)


data= {
"main_repo" :
[{
"name" : "Simul-scan",
"summary" : "Summary: This project is about making Zebra really fast and efficient",
"description" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"visualizations" :
[
{
"heatmap" : {
"divID" : "heatmap",
"title" : "Commits by Hour of Week - dummy data",
# NOTE these paths are relative to where the script.js file is
"data_path1" :'data/test_repo/data_dummy.tsv',
"data_path2" : 'data/test_repo/data_dummy2.tsv',
"summary" : "This data shows cool stuff",
"description" : "As you van see, this data focuses on business hours",
"timestamp" : "System last updated at 11:34am"
},
"barchart" : {
"divID" : "day_of_week",
"title" : "# Commits by day - real data",
"data_path" : "data/test_repo/day_of_week_copy.tsv",
"summary" : "Bar Chart",
"description" : "What week is this from? Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"timestamp" : "System last updated at 11:34am"
},
"linegraph1" : {
"divID" : "lineChart1",
"title" : "Commits per Author - real data",
"data_path" : "data/test_repo/commits_by_author_copy.tsv",
"summary" : "Multi Series Line Chart",
"description" : "Theres a few authors on this project but 1 stands out",
"timestamp" : "System last updated at 11:34am"
},
"linegraph2" : {
"divID" : "lineChart2",
"title" : "Commits per Author - real data",
"data_path" : "data/test_repo/lines_of_code_by_author_copy.tsv",
"summary" : "Multi Series Line Chart",
"description" : "Theres a few authors on this project but 1 stands out",
"timestamp" : "System last updated at 11:34am"
}
}
]
}],

"sub_repos" :
[
# each of these is going to be a sub-repo
{
"name" : "sub-1",
"summary" : "Test Summary1",
"description" : "Test Description 1",
"visualizations" :
[
{
"heatmap" : {
"divID" : "heatmap",
"title" : "Commits by Hour of Week - dummy data",
# NOTE these paths are relative to where the script.js file is
"data_path1" : "data/test_repo/data_dummy.tsv",
"data_path2" : "data/test_repo/data2_dummy.tsv",
"summary" : "This data shows cool stuff",
"description" : "As you van see, this data focuses on business hours",
"timestamp" : "System last updated at 11:34am"
},
"barchart" : {
"divID" : "day_of_week",
"title" : "# Commits by day - real data",
"data_path" : "data/test_repo/day_of_week_copy.tsv",
"summary" : "Bar Chart",
"description" : "What week is this from? Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"timestamp" : "System last updated at 11:34am"
},
"linegraph1" : {
"divID" : "lineChart1",
"title" : "Commits per Author - real data",
"data_path" : "data/test_repo/commits_by_author_copy.tsv",
"summary" : "Multi Series Line Chart",
"description" : "Theres a few authors on this project but 1 stands out",
"timestamp" : "System last updated at 11:34am"
},
"linegraph2" : {
"divID" : "lineChart2",
"title" : "Commits per Author - real data",
"data_path" : "data/test_repo/lines_of_code_by_author_copy.tsv",
"summary" : "Multi Series Line Chart",
"description" : "Theres a few authors on this project but 1 stands out",
"timestamp" : "System last updated at 11:34am"
}
}
]
},
{
"name" : "sub-2",
"summary" : "Test Summary 2",
"description" : "Test Description 2",
"visualizations" :
[
{
"heatmap" : {
"divID" : "heatmap",
"title" : "Commits by Hour of Week - dummy data",
# NOTE these paths are relative to where the script.js file is
"data_path1" : "data/test_repo/data_dummy.tsv",
"data_path2" : "data/test_repo/data2_dummy.tsv",
"summary" : "This data shows cool stuff",
"description" : "As you van see, this data focuses on business hours",
"timestamp" : "System last updated at 11:34am"
},
"barchart" : {
"divID" : "day_of_week",
"title" : "# Commits by day - real data",
"data_path" : "data/test_repo/day_of_week_copy.tsv",
"summary" : "Bar Chart",
"description" : "What week is this from? Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"timestamp" : "System last updated at 11:34am"
},
"linegraph1" : {
"divID" : "lineChart1",
"title" : "Commits per Author - real data",
"data_path" : "data/test_repo/commits_by_author_copy.tsv",
"summary" : "Multi Series Line Chart",
"description" : "Theres a few authors on this project but 1 stands out",
"timestamp" : "System last updated at 11:34am"
},
"linegraph2" : {
"divID" : "lineChart2",
"title" : "Commits per Author - real data",
"data_path" : "data/test_repo/lines_of_code_by_author_copy.tsv",
"summary" : "Multi Series Line Chart",
"description" : "Theres a few authors on this project but 1 stands out",
"timestamp" : "System last updated at 11:34am"
}
}
]
}
]
}

@app.route('/dashboard/<repo>')
def sub_repo(repo):
global data
sub_repo_data= None
for sub_repo in data['sub_repos']:
if sub_repo['name'] == repo:
#this should happen in one case, else this isnt a valid sub repo...
sub_repo_data=sub_repo
return render_template("dashboard.html", sub=sub_repo_data, nav=data)

@app.route("/dashboard")
def dashboard():
global data
main_repo=data['main_repo'][0]
return render_template("dashboard.html", sub=main_repo, nav=data )




if __name__ == "__main__":
app.run()

19 changes: 19 additions & 0 deletions FlaskTest/bash.exe.stackdump
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Stack trace:
Frame Function Args
000FFFF5B20 0018005D14C (000FFFFE3F4, 0000000F7D4, 00000000F14, 000FFFFDE50)
000FFFF5BC0 0018005E74B (001800A9B05, 00000000000, 00000000CA8, 00000000000)
000FFFF5E10 00180121F60 (001801FEA40, 00000000068, 00000000000, 006FFFFFFB7)
000FFFF6070 00180122549 (000FFFF5FF0, 00000000001, 00000000001, 00180361338)
000FFFF6070 001800AAC8C (000FFFF6320, 000FFFF656C, 000FFFF62A8, 00000000000)
000FFFF6270 0018011A60B (000FFFF6320, 000FFFF656C, 000FFFF62A8, 00000000000)
000FFFF6270 00100428FB2 (000000015F0, 00000000000, 001005F1F98, 00000000000)
00000000001 0010043257E (00600149670, 00600051000, 001800BA52C, 00000000000)
0060004AAE0 00100437B8A (00600051000, 0060021FA97, 00000000076, 000FFFF6578)
00600051000 00100438BE4 (00000000001, 00600000000, 000FFFF66B8, 00000000000)
00600220250 00100439A7C (00000000000, 00000000000, 00000000000, 00000000000)
001005F6B74 0010043A3E6 (00000000083, 00000000009, 0060021F220, 0060021FA20)
001005F6B74 0010043A53F (001800F2D60, 03000000000, 000801FE8D0, 0060021F220)
001005F6B74 001004337B1 (00100000000, 0010043A4E0, 006002124C0, 006002124C0)
0060021F220 00100433C41 (00000000000, 000FFFFFF01, 00000000000, 001004DB7B8)
0060021F380 0010043C2C7 (0000000001F, 0000000012C, 00000000000, 000FFFFFFFF)
End of stack trace (more stack frames may be present)
197 changes: 197 additions & 0 deletions FlaskTest/static/css/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,700');
@import url('//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css');

/*side bar menu*/
.sidebar-toggle {
margin-left: -240px;
}
.sidebar {
width: 240px;
height: 100%;

/*background: #293949;*/

background: #000;
background: -moz-linear-gradient(-45deg,#000 0,#ffff00 100%);
background: -webkit-linear-gradient(-45deg,#000 0,#ffff00 100%);
background: linear-gradient(135deg,#000 0,#ffff00 100%);


position: fixed;
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
-ms-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
z-index: 100;
/*top:80px;*/
}
.sidebar #leftside-navigation ul,
.sidebar #leftside-navigation ul ul {
margin: -2px 0 0;
padding: 0;
}
.sidebar #leftside-navigation ul li {
list-style-type: none;
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.sidebar #leftside-navigation ul li.active > a {
color: #1abc9c;
}
.sidebar #leftside-navigation ul li.active ul {
display: block;
}
.sidebar #leftside-navigation ul li a {
color: #FFD200;
text-decoration: none;
display: block;
padding: 18px 0 18px 25px;
font-size: 12px;
outline: 0;
-webkit-transition: all 200ms ease-in;
-moz-transition: all 200ms ease-in;
-o-transition: all 200ms ease-in;
-ms-transition: all 200ms ease-in;
transition: all 200ms ease-in;
}
.sidebar #leftside-navigation ul li a:hover {
color: #1abc9c;
}
.sidebar #leftside-navigation ul li a span {
display: inline-block;
}
.sidebar #leftside-navigation ul li a i {
width: 20px;
}
.sidebar #leftside-navigation ul li a i .fa-angle-left,
.sidebar #leftside-navigation ul li a i .fa-angle-right {
padding-top: 3px;
}
.sidebar #leftside-navigation ul ul {
display: none;
}
.sidebar #leftside-navigation ul ul li {
/*background: #23313f;*/
margin-bottom: 0;
margin-left: 0;
margin-right: 0;
border-bottom: none;
}
.sidebar #leftside-navigation ul ul li a {
font-size: 12px;
padding-top: 13px;
padding-bottom: 13px;
/*color: #aeb2b7;*/
color: #eee;
}

/*end menu*/


/*tile SVG */

rect.bordered {
stroke: #E6E6E6;
stroke-width:2px;
}

text.mono {
font-size: 9pt;
font-family: Consolas, courier;
fill: #aaa;
}

text.axis-workweek {
fill: #000;
}

text.axis-worktime {
fill: #000;
}
div.tooltip {
position: absolute;
text-align: center;
width: 80px;
height: 50px;
padding: 2px;
font: 12px sans-serif;
background: lightsteelblue;
border: 0px;
border-radius: 8px;
pointer-events: none;
}

/*day_of_week svg*/
div.rect_tooltip {
position: absolute;
text-align: center;
width: 80px;
height: 35px;
padding: 2px;
font: 12px sans-serif;
background: orange;
border: 0px;
border-radius: 8px;
pointer-events: none;
}






/*end svg


/*dashboard styling*/

.main_dash{
padding-left: 250px;
padding-top: 30px;
}

.zebra_img{
width:100px;
height:30px;
}
.black{
background-color: #222;
border-color: #080808;
position: fixed;
}
.top_spacer{
margin-top:2%;
}
.details_spacer{
padding: 25px 0 0 0;
border-top:1px solid #cecece;
}
.text_content{
padding: 10px 0px;
}
.metric{
height: 400px;
}
.drop-shadow{
box-shadow: 1px 1px 5px #888888;
}



/*line chart*/
.axis--x path {
display: none;
}

.line {
fill: none;
stroke-width: 1.5px;
}
.grid line {
stroke: lightgrey;
stroke-opacity: 0.7;
shape-rendering: crispEdges;
}
.grid path {
stroke-width: 0;
}
Loading