Jieun Chung

back-end complete

...@@ -9,68 +9,155 @@ app.engine('html', require('ejs').renderFile);*/ ...@@ -9,68 +9,155 @@ app.engine('html', require('ejs').renderFile);*/
9 app.use(express.static(__dirname + '/views')); 9 app.use(express.static(__dirname + '/views'));
10 app.engine('html', require('ejs').renderFile); 10 app.engine('html', require('ejs').renderFile);
11 app.set('view engine', 'html'); 11 app.set('view engine', 'html');
12 +// api키 변경 필요
13 +const api_key = 'd2cd37a77cmshe74339957ea80a1p1ba89ajsn01b1c10b6c25'
14 +//팀 정보
15 +var teamStats = []
16 +var teams;
17 +var playerStats = []
12 18
13 -const standingsoptions = { 19 +//선수 분석
20 +const playerStatOptions = {
21 + method: 'GET',
22 + url: 'https://api-football-beta.p.rapidapi.com/players',
23 + qs: {season: '2020', league: '39', team: '33'},
24 + headers: {
25 + 'x-rapidapi-key': api_key,
26 + 'x-rapidapi-host': 'api-football-beta.p.rapidapi.com',
27 + useQueryString: true
28 + }
29 +};
30 +
31 +//팀 분석
32 +var teamStatOptions = {
33 + method: 'GET',
34 + url: 'https://api-football-beta.p.rapidapi.com/teams/statistics',
35 + qs: {team: '33', season: '2019', league: '39'},
36 + headers: {
37 + 'x-rapidapi-key': api_key,
38 + 'x-rapidapi-host': 'api-football-beta.p.rapidapi.com',
39 + useQueryString: true
40 + }
41 +};
42 +
43 +// 전체 팀
44 +const teamsOptions = {
45 + method: 'GET',
46 + url: 'https://api-football-beta.p.rapidapi.com/teams',
47 + qs: {league: '39', season: '2020'},
48 + headers: {
49 + 'x-rapidapi-key': api_key,
50 + 'x-rapidapi-host': 'api-football-beta.p.rapidapi.com',
51 + useQueryString: true
52 + }
53 +};
54 +
55 +
56 +
57 +//팀 순위
58 +const standingsOptions = {
14 method: 'GET', 59 method: 'GET',
15 url: 'https://api-football-beta.p.rapidapi.com/standings', 60 url: 'https://api-football-beta.p.rapidapi.com/standings',
16 qs: {season: '2020', league: '39'}, 61 qs: {season: '2020', league: '39'},
17 headers: { 62 headers: {
18 - 'x-rapidapi-key': '9ed13b26e4mshede3aa7b615039ep17f6e6jsn308dd6295276', 63 + 'x-rapidapi-key': api_key,
19 'x-rapidapi-host': 'api-football-beta.p.rapidapi.com', 64 'x-rapidapi-host': 'api-football-beta.p.rapidapi.com',
20 useQueryString: true 65 useQueryString: true
21 } 66 }
22 }; 67 };
23 68
24 - 69 +// top 20
25 -const topscorersOptions = { 70 +const topScorersOptions = {
26 method: 'GET', 71 method: 'GET',
27 url: 'https://api-football-beta.p.rapidapi.com/players/topscorers', 72 url: 'https://api-football-beta.p.rapidapi.com/players/topscorers',
28 qs: {season: '2020', league: '39'}, 73 qs: {season: '2020', league: '39'},
29 headers: { 74 headers: {
30 - 'x-rapidapi-key': '9ed13b26e4mshede3aa7b615039ep17f6e6jsn308dd6295276', 75 + 'x-rapidapi-key': api_key,
31 'x-rapidapi-host': 'api-football-beta.p.rapidapi.com', 76 'x-rapidapi-host': 'api-football-beta.p.rapidapi.com',
32 useQueryString: true 77 useQueryString: true
33 } 78 }
34 }; 79 };
35 80
36 81
37 -app.post('/TopScorers', function(req, res){ 82 +
38 - request(topscorersOptions, function(error, response, body){ 83 +app.get('/TopScorers', function(req, res){
84 + request(topScorersOptions, function(error, response, body){
39 if (error) throw new Error(error); 85 if (error) throw new Error(error);
40 var resData = JSON.parse(body) 86 var resData = JSON.parse(body)
41 res.render('PersonalStanding.ejs', {resData}) 87 res.render('PersonalStanding.ejs', {resData})
42 }) 88 })
43 }) 89 })
44 90
45 -app.post('/TeamStanding', function(req, res){ 91 +app.get('/TeamStanding', function(req, res){
46 - /*request(options, function (error, response, body) { 92 + request(standingsOptions, function(error, response, body){
47 if (error) throw new Error(error); 93 if (error) throw new Error(error);
48 - res.send(body) 94 + var teamStanding = JSON.parse(body)
49 - });*/ 95 + res.render('TeamStanding.ejs', {teamStanding})
50 - res.render('TeamStanding.html') 96 + })
51 }) 97 })
52 98
53 -app.get('/', function(req, res){ 99 +app.get('/TeamStat', function(req, res){
54 - res.render('index.ejs'); 100 + res.render('TeamStat.ejs', {teams})
55 }) 101 })
56 102
57 -/*app.get('/', function(req, res){ 103 +app.get('/TeamStat/:id', function(req, res){
58 - /*request(options, function (error, response, body) { 104 + var teamId = req.params.id;
105 + teamStatOptions.qs.team = teamId;
106 + request(teamStatOptions, function(error, response, body){
59 if (error) throw new Error(error); 107 if (error) throw new Error(error);
60 - res.send(body); 108 + var teamStat = JSON.parse(body)
61 - console.log(body); 109 + var players = [];
62 - }); 110 + for(var i = 0 ; i < playerStats.length; i++){
63 - /*request(options, function (error, response, body) { 111 + if(playerStats[i].statistics[0].team.id == teamId){
64 - if (error) throw new Error(error); 112 + players.push(playerStats[i]);
65 - 113 + }
66 - res.send(body); 114 + }
67 - console.log(response); 115 + res.render('TeamStatDetail.ejs', {teamStat, players})
116 + })
117 +})
118 +
119 +app.get('/PlayerStat', function(req, res){
120 + res.render('PersonalStat.ejs', {playerStats})
121 +})
122 +app.get('/PlayerStat/:id', function(req, res){
123 + var playerStat;
124 + for(var i = 0 ; i< playerStats.length; i++){
125 + if((playerStats[i].player.id + "") == req.params.id){
126 + playerStat = playerStats[i];
127 + break;
128 + }
129 + }
130 + res.render('PersonalStatDetail.ejs', {playerStat})
131 +})
132 +
133 +app.get('/', function(req, res){
134 + if(playerStats.length == 0){
135 + request(teamsOptions, function (error, response, body) {
136 + if (error) throw new Error(error);
137 + teams = JSON.parse(body)
138 +
139 + for(var i = 0 ; i < 20; i++){
140 + playerStatOptions.qs.team = teams.response[i].team.id;
141 + request(playerStatOptions, function(error, response, body){
142 + if (error) throw new Error(error);
143 + var temp = JSON.parse(body)
144 + console.log(temp)
145 + for(var j = 0 ; j < temp.response.length; j++){
146 + playerStats.push(temp.response[j]);
147 + }
148 + })
149 + }
150 + res.render('index.ejs');
68 }); 151 });
69 - 152 + }
70 -})*/ 153 + else
154 + res.render('index.ejs');
155 +})
71 156
72 var server = app.listen(23023, function(){ 157 var server = app.listen(23023, function(){
73 var host = server.address().address 158 var host = server.address().address
74 var port = server.address().port; 159 var port = server.address().port;
75 console.log('App listening at http://%s:%s', host, port) 160 console.log('App listening at http://%s:%s', host, port)
76 }) 161 })
162 +
163 +
......
...@@ -30,7 +30,18 @@ ...@@ -30,7 +30,18 @@
30 <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li> 30 <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li>
31 <li><a href="TeamStanding.html">팀 순위</a></li> 31 <li><a href="TeamStanding.html">팀 순위</a></li>
32 <li><a href="PersonalStanding.html">개인 순위</a></li> 32 <li><a href="PersonalStanding.html">개인 순위</a></li>
33 - <li><a href="TeamStat.html">팀 별 통계</a></li> 33 + <li class="dropdown">
34 + <a href="TeamStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
35 + aria-expanded="false">팀 별 통계<span class="caret"></span></a>
36 + <ul class="dropdown-menu">
37 + <li><a href="TeamStat.html?StatName=Possession">점유율</a></li>
38 + <li><a href="TeamStat.html?StatName=Goals">득점</a></li>
39 + <li><a href="TeamStat.html?StatName=ShotsOnTarget">유효 슈팅</a></li>
40 + <li><a href="TeamStat.html?StatName=Shots">슈팅</a></li>
41 + <li><a href="TeamStat.html?StatName=Pass">경기당 패스 횟수</a></li>
42 + <li><a href="TeamStat.html?StatName=PassingAccuracy">패스 성공률</a></li>
43 + </ul>
44 + </li>
34 <li class="dropdown"> 45 <li class="dropdown">
35 <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" 46 <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
36 aria-expanded="false">개인 별 통계<span class="caret"></span></a> 47 aria-expanded="false">개인 별 통계<span class="caret"></span></a>
......
...@@ -23,28 +23,16 @@ ...@@ -23,28 +23,16 @@
23 <span class="icon-bar"></span> 23 <span class="icon-bar"></span>
24 <span class="icon-bar"></span> 24 <span class="icon-bar"></span>
25 </button> 25 </button>
26 - <a class="navbar-brand" href="index.html">EPL 통계 사이트</a> 26 + <a class="navbar-brand" href="/" >EPL 통계 사이트</a>
27 </div> 27 </div>
28 <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 28 <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
29 <ul class="nav navbar-nav"> 29 <ul class="nav navbar-nav">
30 - <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li> 30 + <li class="active"><a href="/" >프로젝트 소개<span class="sr-only"></span></a></li>
31 - <li><a href="TeamStanding.html">팀 순위</a></li> 31 + <li><a href="/TeamStanding">팀 순위</a></li>
32 - <li><a href="PersonalStanding.html">개인 순위</a></li> 32 + <li><a href="/TopScorers">개인 순위</a></li>
33 - <li><a href="TeamStat.html">팀 별 통계</a></li> 33 + <li><a href="/TeamStat">팀별 통계</a></li>
34 - <li class="dropdown"> 34 + <li><a href="/PlayerStat">개인별 통계</a></li>
35 - <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" 35 + <li><a href="Community.html">자유 게시판</a></li>
36 - aria-expanded="false">개인 별 통계<span class="caret"></span></a>
37 - <ul class="dropdown-menu">
38 - <li><a href="PersonalStat.html?StatName=Goals">득점</a></li>
39 - <li><a href="PersonalStat.html?StatName=Assists">어시스트</a></li>
40 - <li><a href="PersonalStat.html?StatName=ShotsOnTarget">유효 슈팅</a></li>
41 - <li><a href="PersonalStat.html?StatName=Shots">슈팅</a></li>
42 - <li><a href="PersonalStat.html?StatName=CriticalPass">중요 패스</a></li>
43 - <li><a href="PersonalStat.html?StatName=Pass">경기당 패스 횟수</a></li>
44 - <li><a href="PersonalStat.html?StatName=PassingAccuracy">패스 성공률</a></li>
45 - </ul>
46 - </li>
47 - <li><a href="Comunity.html">자유 게시판</a></li>
48 </ul> 36 </ul>
49 <form class="navbar-form navbar-left"> 37 <form class="navbar-form navbar-left">
50 <div class="form-group"> 38 <div class="form-group">
...@@ -70,11 +58,51 @@ ...@@ -70,11 +58,51 @@
70 </div> 58 </div>
71 </nav> 59 </nav>
72 60
73 - <% for(var i=0; i<resData.response.length; i++){ %> 61 + <!--
74 - <img src=<%=resData.response[i].player.photo%> /> 62 + 테이블 디자인 교체
75 - <%=resData.response[i].player.name%><br/> 63 + -->
76 - <%}%> 64 +
77 - 65 + <table border='1' id="personalStanding" class='table'>
66 + <thead>
67 + <tr>
68 + <th> 선수 </th>
69 + <th> 득점 </th>
70 + <th> 도움 </th>
71 + <th> 슈팅 </th>
72 + <th> 파울 </th>
73 + <th> 경고 </th>
74 + <th> 퇴장 </th>
75 + <th> 유효슈팅 </th>
76 + <th> 경기수 </th>
77 + </tr>
78 + </thead>
79 + <tbody>
80 + <% for(var i=0; i<resData.response.length; i++){ %>
81 + <tr>
82 + <td style="text-align: left; ">
83 + <div class="inner">
84 + <div style="float: left;">
85 + <img width="100" height="100" src=<%=resData.response[i].player.photo%> class="emblem">
86 + </div>
87 + <div style="float: right;">
88 + <span><%= resData.response[i].player.name %></span></br>
89 + <span><%= resData.response[i].statistics[0].team.name %></span>
90 + </div>
91 + </div>
92 + </td>
93 + <td> <%= resData.response[i].statistics[0].goals.total === null ? 0 : resData.response[i].statistics[0].goals.total %> </td>
94 + <td> <%= resData.response[i].statistics[0].goals.assists === null ? 0 : resData.response[i].statistics[0].goals.assists %> </td>
95 + <td> <%= resData.response[i].statistics[0].shots.total === null ? 0 : resData.response[i].statistics[0].shots.total %> </td>
96 + <td> <%= resData.response[i].statistics[0].fouls.committed === null ? 0 : resData.response[i].statistics[0].fouls.committed %> </td>
97 + <td> <%= resData.response[i].statistics[0].cards.yellow === null ? 0 : resData.response[i].statistics[0].cards.yellow %> </td>
98 + <td> <%= resData.response[i].statistics[0].cards.red === null ? 0 : resData.response[i].statistics[0].cards.red %> </td>
99 + <td> <%= resData.response[i].statistics[0].shots.on === null ? 0 : resData.response[i].statistics[0].shots.on %> </td>
100 + <td> <%= resData.response[i].statistics[0].games.appearences === null ? 0 : resData.response[i].statistics[0].games.appearences %> </td>
101 + </tr>
102 + <%}%>
103 + </tbody>
104 + </table>
105 +
78 <footer style="background-color:#33cc33; color:#ffffff"> 106 <footer style="background-color:#33cc33; color:#ffffff">
79 <div class="container"> 107 <div class="container">
80 <br> 108 <br>
...@@ -84,6 +112,7 @@ ...@@ -84,6 +112,7 @@
84 </div> 112 </div>
85 </div> 113 </div>
86 </footer> 114 </footer>
115 +
87 <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script> 116 <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
88 <script src="js/bootstrap.js"></script> 117 <script src="js/bootstrap.js"></script>
89 </body> 118 </body>
......
1 +<!DOCTYPE html>
2 +<html>
3 +
4 +<head>
5 + <meta charset="UTF-8">
6 + <meta name="viewport" content="width=device-width" , initial-scale="1">
7 + <title>EPL 통계 사이트</title>
8 + <link rel="stylesheet" href="css/bootstrap.css">
9 + <link rel="stylesheet" href="css/style.css">
10 + <meta name="author" content="김대욱, 정지은">
11 + <meta name="description" content="리버풀 화이팅~!">
12 +</head>
13 +
14 +<body>
15 + <nav class="navbar navbar-default">
16 + <div class="contaner-fluid">
17 + <div class="navbar-header">
18 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
19 + data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
20 + <span class="sr-only"></span>
21 + <span class="icon-bar"></span>
22 + <span class="icon-bar"></span>
23 + <span class="icon-bar"></span>
24 + </button>
25 + <a class="navbar-brand" href="/">EPL 통계 사이트</a>
26 + </div>
27 + <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
28 + <ul class="nav navbar-nav">
29 + <li class="active"><a href="/" >프로젝트 소개<span class="sr-only"></span></a></li>
30 + <li><a href="/TeamStanding">팀 순위</a></li>
31 + <li><a href="/TopScorers">개인 순위</a></li>
32 + <li><a href="/TeamStat">팀별 통계</a></li>
33 + <li><a href="/PlayerStat">개인별 통계</a></li>
34 + <li><a href="Community.html">자유 게시판</a></li>
35 + </ul>
36 + <form class="navbar-form navbar-left">
37 + <div class="form-group">
38 + <input type="text" class="form-control" placeholder="내용을 입력하세요.">
39 +
40 + </div>
41 + <button type="submit" class="btn btn-default">검색</button>
42 + </form>
43 + <ul class="nav navbar-nav navbar-right">
44 + <li>
45 + <li class="dropdown">
46 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
47 + aria-expanded="false">접속하기<span class="caret"></span></a>
48 + <ul class="dropdown-menu">
49 + <li><a href="loginForm.html">로그인</a></li>
50 + <li><a href="registerForm.html">회원가입</a></li>
51 + </ul>
52 + </li>
53 + </li>
54 + </ul>
55 + </div>
56 +
57 + </div>
58 + </nav>
59 +
60 + <table class='table'>
61 + <thead>
62 + <tr>
63 + <th></th>
64 + <th> 이름 </th>
65 + <th></th>
66 + <th> 몸무게 </th>
67 + <th> 생년월일 </th>
68 + </tr>
69 + </thead>
70 + <tbody>
71 + <% for(var i=0; i< playerStats.length; i++){ %>
72 + <tr>
73 + <td> <%= playerStats[i].statistics[0].team.name %> </td>
74 + <td><a href="/PlayerStat/<%= playerStats[i].player.id %>"><%= playerStats[i].player.name %> </a></td>
75 + <td> <%= playerStats[i].player.height %> </td>
76 + <td> <%= playerStats[i].player.weight %> </td>
77 + <td> <%= playerStats[i].player.birth.date %> </td>
78 + </tr>
79 + <%}%>
80 + </tbody>
81 + </table>
82 +
83 + <footer style="background-color:#33cc33; color:#ffffff">
84 + <div class="container">
85 + <br>
86 + <div class="row">
87 + <div class="col-sm-2" style="text-align: center;"><h5>Copyright &copy; 2020</h5><h5>김대욱(DaeWook Kim)</h5></div>
88 + <div class="col-sm-4"><h5>작성자 소개</h5><p>저는 경희대학교 학생 김대욱입니다.</p></div>
89 + </div>
90 + </div>
91 + </footer>
92 + <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
93 + <script src="js/bootstrap.js"></script>
94 +</body>
95 +
96 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html>
3 +
4 +<head>
5 + <meta charset="UTF-8">
6 + <meta name="viewport" content="width=device-width" , initial-scale="1">
7 + <title>EPL 통계 사이트</title>
8 + <link rel="stylesheet" href="css/bootstrap.css">
9 + <link rel="stylesheet" href="css/style.css">
10 + <meta name="author" content="김대욱, 정지은">
11 + <meta name="description" content="리버풀 화이팅~!">
12 +</head>
13 +
14 +<body>
15 + <nav class="navbar navbar-default">
16 + <div class="contaner-fluid">
17 + <div class="navbar-header">
18 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
19 + data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
20 + <span class="sr-only"></span>
21 + <span class="icon-bar"></span>
22 + <span class="icon-bar"></span>
23 + <span class="icon-bar"></span>
24 + </button>
25 + <a class="navbar-brand" href="/">EPL 통계 사이트</a>
26 + </div>
27 + <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
28 + <ul class="nav navbar-nav">
29 + <li class="active"><a href="/" >프로젝트 소개<span class="sr-only"></span></a></li>
30 + <li><a href="/TeamStanding">팀 순위</a></li>
31 + <li><a href="/TopScorers">개인 순위</a></li>
32 + <li><a href="/TeamStat">팀별 통계</a></li>
33 + <li><a href="/PlayerStat">개인별 통계</a></li>
34 + <li><a href="Community.html">자유 게시판</a></li>
35 + </ul>
36 + <form class="navbar-form navbar-left">
37 + <div class="form-group">
38 + <input type="text" class="form-control" placeholder="내용을 입력하세요.">
39 +
40 + </div>
41 + <button type="submit" class="btn btn-default">검색</button>
42 + </form>
43 + <ul class="nav navbar-nav navbar-right">
44 + <li>
45 + <li class="dropdown">
46 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
47 + aria-expanded="false">접속하기<span class="caret"></span></a>
48 + <ul class="dropdown-menu">
49 + <li><a href="loginForm.html">로그인</a></li>
50 + <li><a href="registerForm.html">회원가입</a></li>
51 + </ul>
52 + </li>
53 + </li>
54 + </ul>
55 + </div>
56 +
57 + </div>
58 + </nav>
59 +
60 + <!--
61 + 테이블 디자인 교체
62 + 왠진 모르겠지만 css가 깨짐
63 + -->
64 +
65 + <table class='table'>
66 + <thead>
67 + <tr>
68 + <th></th>
69 + <th> 이름 </th>
70 + <th></th>
71 + <th> 몸무게 </th>
72 + <th> 생년월일 </th>
73 + </tr>
74 + </thead>
75 + <tbody>
76 + <tr>
77 + <td> <%= playerStat.statistics[0].team.name %> </td>
78 + <td> <%= playerStat.player.name %> </td>
79 + <td> <%= playerStat.player.height %> </td>
80 + <td> <%= playerStat.player.weight %> </td>
81 + <td> <%= playerStat.player.birth.date %> </td>
82 + </tr>
83 + </tbody>
84 + </table>
85 +
86 + <footer style="background-color:#33cc33; color:#ffffff">
87 + <div class="container">
88 + <br>
89 + <div class="row">
90 + <div class="col-sm-2" style="text-align: center;"><h5>Copyright &copy; 2020</h5><h5>김대욱(DaeWook Kim)</h5></div>
91 + <div class="col-sm-4"><h5>작성자 소개</h5><p>저는 경희대학교 학생 김대욱입니다.</p></div>
92 + </div>
93 + </div>
94 + </footer>
95 + <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
96 + <script src="js/bootstrap.js"></script>
97 +</body>
98 +
99 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html>
3 +
4 +<head>
5 + <meta charset="UTF-8">
6 + <meta name="viewport" content="width=device-width" , initial-scale="1">
7 + <title>EPL 통계 사이트</title>
8 + <link rel="stylesheet" href="css/bootstrap.css">
9 + <link rel="stylesheet" href="css/style.css">
10 + <meta name="author" content="김대욱, 정지은">
11 + <meta name="description" content="리버풀 화이팅~!">
12 + <style>
13 + [_nghost-fte-c8]{display:block}.team-name[_ngcontent-fte-c8]{font-size:.75em}.team-badge[_ngcontent-fte-c8]{width:40px}
14 + </style>
15 +</head>
16 +
17 +<body>
18 +
19 + <nav class="navbar navbar-default">
20 + <div class="contaner-fluid">
21 + <div class="navbar-header">
22 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
23 + data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
24 + <span class="sr-only"></span>
25 + <span class="icon-bar"></span>
26 + <span class="icon-bar"></span>
27 + <span class="icon-bar"></span>
28 + </button>
29 + <a class="navbar-brand" href="/" >EPL 통계 사이트</a>
30 + </div>
31 + <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
32 + <ul class="nav navbar-nav">
33 + <li class="active"><a href="/" >프로젝트 소개<span class="sr-only"></span></a></li>
34 + <li><a href="/TeamStanding">팀 순위</a></li>
35 + <li><a href="/TopScorers">개인 순위</a></li>
36 + <li><a href="/TeamStat">팀별 통계</a></li>
37 + <li><a href="/PlayerStat">개인별 통계</a></li>
38 + <li><a href="Community.html">자유 게시판</a></li>
39 + </ul>
40 + <form class="navbar-form navbar-left">
41 + <div class="form-group">
42 + <input type="text" class="form-control" placeholder="내용을 입력하세요.">
43 +
44 + </div>
45 + <button type="submit" class="btn btn-default">검색</button>
46 + </form>
47 + <ul class="nav navbar-nav navbar-right">
48 + <li>
49 + <li class="dropdown">
50 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
51 + aria-expanded="false">접속하기<span class="caret"></span></a>
52 + <ul class="dropdown-menu">
53 + <li><a href="loginForm.html">로그인</a></li>
54 + <li><a href="registerForm.html">회원가입</a></li>
55 + </ul>
56 + </li>
57 + </li>
58 + </ul>
59 + </div>
60 +
61 + </div>
62 + </nav>
63 +
64 + <table class='table'>
65 + <thead>
66 + <tr>
67 + <th></th>
68 + <th></th>
69 + <th></th>
70 + <th></th>
71 + <th> 득실 </th>
72 + <th> 승점 </th>
73 + </tr>
74 + </thead>
75 + <tbody>
76 + <% for(var i=0; i< teamStanding.response[0].league.standings[0].length; i++){ %>
77 + <tr>
78 + <td style="text-align: left; ">
79 + <div class="inner">
80 + <div style="float: left;">
81 + <img width="100" height="100" src=<%= teamStanding.response[0].league.standings[0][i].team.logo%> class="emblem">
82 + </div>
83 + <div style="float: right;">
84 + <span><%= teamStanding.response[0].league.standings[0][i].team.name %></span>
85 + </div>
86 + </div>
87 + </td>
88 + <td> <%= teamStanding.response[0].league.standings[0][i].all.win %> </td>
89 + <td> <%= teamStanding.response[0].league.standings[0][i].all.draw %> </td>
90 + <td> <%= teamStanding.response[0].league.standings[0][i].all.lose %> </td>
91 + <td> <%= teamStanding.response[0].league.standings[0][i].all.goals.for %>/<%= teamStanding.response[0].league.standings[0][i].all.goals.against %> </td>
92 + <td> <%= teamStanding.response[0].league.standings[0][i].points %> </td>
93 + </tr>
94 + <%}%>
95 + </tbody>
96 + </table>
97 +
98 + <footer style="background-color:#33cc33; color:#ffffff">
99 + <div class="container">
100 + <br>
101 + <div class="row">
102 + <div class="col-sm-2" style="text-align: center;"><h5>Copyright &copy; 2020</h5><h5>김대욱(DaeWook Kim)</h5></div>
103 + <div class="col-sm-4"><h5>작성자 소개</h5><p>저는 경희대학교 학생 김대욱입니다.</p></div>
104 + </div>
105 + </div>
106 + </footer>
107 + <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
108 + <script src="js/bootstrap.js"></script>
109 +</body>
110 +
111 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html>
3 +
4 +<head>
5 + <meta charset="UTF-8">
6 + <meta name="viewport" content="width=device-width" , initial-scale="1">
7 + <title>EPL 통계 사이트</title>
8 + <link rel="stylesheet" href="css/bootstrap.css">
9 + <link rel="stylesheet" href="css/style.css">
10 + <meta name="author" content="김대욱, 정지은">
11 + <meta name="description" content="리버풀 화이팅~!">
12 +</head>
13 +
14 +<body>
15 + <nav class="navbar navbar-default">
16 + <div class="contaner-fluid">
17 + <div class="navbar-header">
18 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
19 + data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
20 + <span class="sr-only"></span>
21 + <span class="icon-bar"></span>
22 + <span class="icon-bar"></span>
23 + <span class="icon-bar"></span>
24 + </button>
25 + <a class="navbar-brand" href="/">EPL 통계 사이트</a>
26 + </div>
27 + <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
28 + <ul class="nav navbar-nav">
29 + <li class="active"><a href="/" >프로젝트 소개<span class="sr-only"></span></a></li>
30 + <li><a href="/TeamStanding">팀 순위</a></li>
31 + <li><a href="/TopScorers">개인 순위</a></li>
32 + <li><a href="/TeamStat">팀별 통계</a></li>
33 + <li><a href="/PlayerStat">개인별 통계</a></li>
34 + <li><a href="Community.html">자유 게시판</a></li>
35 + </ul>
36 + <form class="navbar-form navbar-left">
37 + <div class="form-group">
38 + <input type="text" class="form-control" placeholder="내용을 입력하세요.">
39 +
40 + </div>
41 + <button type="submit" class="btn btn-default">검색</button>
42 + </form>
43 + <ul class="nav navbar-nav navbar-right">
44 + <li>
45 + <li class="dropdown">
46 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
47 + aria-expanded="false">접속하기<span class="caret"></span></a>
48 + <ul class="dropdown-menu">
49 + <li><a href="loginForm.html">로그인</a></li>
50 + <li><a href="registerForm.html">회원가입</a></li>
51 + </ul>
52 + </li>
53 + </li>
54 + </ul>
55 + </div>
56 +
57 + </div>
58 + </nav>
59 +
60 + <div class="row">
61 + <% for(var i=0; i < teams.response.length; i++){%>
62 + <div class="col-md-3">
63 + <a href="/TeamStat/<%= teams.response[i].team.id %>">
64 + <div class="thumbnail">
65 + <img src=<%=teams.response[i].team.logo%> >
66 + <h3 style="text-align: center;"><%=teams.response[i].team.name%></h3>
67 + </div>
68 + </a>
69 + </div>
70 + <%}%>
71 + </div>
72 +
73 + <footer style="background-color:#33cc33; color:#ffffff">
74 + <div class="container">
75 + <br>
76 + <div class="row">
77 + <div class="col-sm-2" style="text-align: center;"><h5>Copyright &copy; 2020</h5><h5>김대욱(DaeWook Kim)</h5></div>
78 + <div class="col-sm-4"><h5>작성자 소개</h5><p>저는 경희대학교 학생 김대욱입니다.</p></div>
79 + </div>
80 + </div>
81 + </footer>
82 + <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
83 + <script src="js/bootstrap.js"></script>
84 +</body>
85 +
86 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html>
3 +
4 +<head>
5 + <meta charset="UTF-8">
6 + <meta name="viewport" content="width=device-width" , initial-scale="1">
7 + <title>EPL 통계 사이트</title>
8 + <link rel="stylesheet" href="css/bootstrap.css">
9 + <link rel="stylesheet" href="css/style.css">
10 + <meta name="author" content="김대욱, 정지은">
11 + <meta name="description" content="리버풀 화이팅~!">
12 +</head>
13 +
14 +<body>
15 + <nav class="navbar navbar-default">
16 + <div class="contaner-fluid">
17 + <div class="navbar-header">
18 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
19 + data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
20 + <span class="sr-only"></span>
21 + <span class="icon-bar"></span>
22 + <span class="icon-bar"></span>
23 + <span class="icon-bar"></span>
24 + </button>
25 + <a class="navbar-brand" href="/">EPL 통계 사이트</a>
26 + </div>
27 + <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
28 + <ul class="nav navbar-nav">
29 + <li class="active"><a href="/" >프로젝트 소개<span class="sr-only"></span></a></li>
30 + <li><a href="/TeamStanding">팀 순위</a></li>
31 + <li><a href="/TopScorers">개인 순위</a></li>
32 + <li><a href="/TeamStat">팀별 통계</a></li>
33 + <li><a href="/PlayerStat">개인별 통계</a></li>
34 + <li><a href="Community.html">자유 게시판</a></li>
35 + </ul>
36 + <form class="navbar-form navbar-left">
37 + <div class="form-group">
38 + <input type="text" class="form-control" placeholder="내용을 입력하세요.">
39 +
40 + </div>
41 + <button type="submit" class="btn btn-default">검색</button>
42 + </form>
43 + <ul class="nav navbar-nav navbar-right">
44 + <li>
45 + <li class="dropdown">
46 + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
47 + aria-expanded="false">접속하기<span class="caret"></span></a>
48 + <ul class="dropdown-menu">
49 + <li><a href="loginForm.html">로그인</a></li>
50 + <li><a href="registerForm.html">회원가입</a></li>
51 + </ul>
52 + </li>
53 + </li>
54 + </ul>
55 + </div>
56 +
57 + </div>
58 + </nav>
59 +
60 + <!--
61 + 테이블 디자인 교체
62 + 왠진 모르겠지만 css가 깨짐
63 + -->
64 +
65 + <div class=table>
66 + <tr>
67 + <td>무실점 경기</td>
68 + <td>무득점 경기</td>
69 + <td>최근 전적</td>
70 + <td>평균 득점</td>
71 + <td>평균 실점</td>
72 + </tr>
73 + <tr>
74 + <td><%= teamStat.response.clean_sheet.total %></td>
75 + <td><%= teamStat.response.failed_to_score.total %></td>
76 + <td><%= teamStat.response.form %></td>
77 + <td><%= teamStat.response.goals.against.average.total %></td>
78 + <td><%= teamStat.response.goals.for.average.total %></td>
79 + </tr>
80 + </div>
81 +
82 + <table class='table'>
83 + <thead>
84 + <tr>
85 + <th></th>
86 + <th> 이름 </th>
87 + <th></th>
88 + <th> 몸무게 </th>
89 + <th> 생년월일 </th>
90 + </tr>
91 + </thead>
92 + <tbody>
93 + <% for(var i=0; i< players.length; i++){ %>
94 + <tr>
95 + <td> <%= players[i].statistics[0].team.name %> </td>
96 + <td><a href="/PlayerStat/<%= players[i].player.id %>"><%= players[i].player.name %> </a></td>
97 + <td> <%= players[i].player.height %> </td>
98 + <td> <%= players[i].player.weight %> </td>
99 + <td> <%= players[i].player.birth.date %> </td>
100 + </tr>
101 + <%}%>
102 + </tbody>
103 + </table>
104 +
105 + <footer style="background-color:#33cc33; color:#ffffff">
106 + <div class="container">
107 + <br>
108 + <div class="row">
109 + <div class="col-sm-2" style="text-align: center;"><h5>Copyright &copy; 2020</h5><h5>김대욱(DaeWook Kim)</h5></div>
110 + <div class="col-sm-4"><h5>작성자 소개</h5><p>저는 경희대학교 학생 김대욱입니다.</p></div>
111 + </div>
112 + </div>
113 + </footer>
114 + <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
115 + <script src="js/bootstrap.js"></script>
116 +</body>
117 +
118 +</html>
...\ No newline at end of file ...\ No newline at end of file
...@@ -32,30 +32,15 @@ ...@@ -32,30 +32,15 @@
32 <span class="icon-bar"></span> 32 <span class="icon-bar"></span>
33 <span class="icon-bar"></span> 33 <span class="icon-bar"></span>
34 </button> 34 </button>
35 - <form name="myForm" action="/request" method="POST"></form> 35 + <a class="navbar-brand" href="/">EPL 통계 사이트</a>
36 - <a class="navbar-brand" href="#" onclick="javascript:document.myForm.submit()" >EPL 통계 사이트</a>
37 </div> 36 </div>
38 <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 37 <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
39 <ul class="nav navbar-nav"> 38 <ul class="nav navbar-nav">
40 - <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li> 39 + <li class="active"><a href="/" >프로젝트 소개<span class="sr-only"></span></a></li>
41 - <form name="teamStandingForm" action="/TeamStanding" method="POST"></form> 40 + <li><a href="/TeamStanding">팀 순위</a></li>
42 - <li><a href="#" onclick="javascript:document.teamStandingForm.submit()">팀 순위</a></li> 41 + <li><a href="/TopScorers">개인 순위</a></li>
43 - <form name="topScorersForm" action="/TopScorers" method="POST"></form> 42 + <li><a href="/TeamStat">팀별 통계</a></li>
44 - <li><a href="#" onclick="javascript:document.topScorersForm.submit()">개인 순위</a></li> 43 + <li><a href="/PlayerStat">개인별 통계</a></li>
45 - <li><a href="TeamStat.html">팀 별 통계</a></li>
46 - <li class="dropdown">
47 - <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
48 - aria-expanded="false">개인 별 통계<span class="caret"></span></a>
49 - <ul class="dropdown-menu">
50 - <li><a href="PersonalStat.html?StatName=Goals">득점</a></li>
51 - <li><a href="PersonalStat.html?StatName=Assists">어시스트</a></li>
52 - <li><a href="PersonalStat.html?StatName=ShotsOnTarget">유효 슈팅</a></li>
53 - <li><a href="PersonalStat.html?StatName=Shots">슈팅</a></li>
54 - <li><a href="PersonalStat.html?StatName=CriticalPass">중요 패스</a></li>
55 - <li><a href="PersonalStat.html?StatName=Pass">경기당 패스 횟수</a></li>
56 - <li><a href="PersonalStat.html?StatName=PassingAccuracy">패스 성공률</a></li>
57 - </ul>
58 - </li>
59 <li><a href="Community.html">자유 게시판</a></li> 44 <li><a href="Community.html">자유 게시판</a></li>
60 </ul> 45 </ul>
61 <form class="navbar-form navbar-left"> 46 <form class="navbar-form navbar-left">
...@@ -92,22 +77,22 @@ ...@@ -92,22 +77,22 @@
92 <div class="col-md-3"> 77 <div class="col-md-3">
93 <h4>팀 순위</h4> 78 <h4>팀 순위</h4>
94 <p>이 사이트는 팀 순위를 다른 데이터와 함께 보여줍니다.</p> 79 <p>이 사이트는 팀 순위를 다른 데이터와 함께 보여줍니다.</p>
95 - <p><a class="btn btn-default" href="TeamStanding.html">자세히 알아보기</a></p> 80 + <p><a class="btn btn-default" href="/TeamStanding">자세히 알아보기</a></p>
96 </div> 81 </div>
97 <div class="col-md-3"> 82 <div class="col-md-3">
98 <h4>개인 순위</h4> 83 <h4>개인 순위</h4>
99 <p>이 사이트는 개인 순위를 다른 데이터와 함께 보여줍니다.</p> 84 <p>이 사이트는 개인 순위를 다른 데이터와 함께 보여줍니다.</p>
100 - <p><a class="btn btn-default" href="PersonalStanding.html">자세히 알아보기</a></p> 85 + <p><a class="btn btn-default" href="/TopScorers">자세히 알아보기</a></p>
101 </div> 86 </div>
102 <div class="col-md-3"> 87 <div class="col-md-3">
103 <h4>팀별 통계</h4> 88 <h4>팀별 통계</h4>
104 <p>이 사이트는 팀 별 통계를 조금 더 자세한 정보들과 함께 보여줍니다.</p> 89 <p>이 사이트는 팀 별 통계를 조금 더 자세한 정보들과 함께 보여줍니다.</p>
105 - <p><a class="btn btn-default" href="TeamStat.html">자세히 알아보기</a></p> 90 + <p><a class="btn btn-default" href="/TeamStat">자세히 알아보기</a></p>
106 </div> 91 </div>
107 <div class="col-md-3"> 92 <div class="col-md-3">
108 <h4>개인 통계</h4> 93 <h4>개인 통계</h4>
109 <p>이 사이트는 개인 별 통계를 조금 더 자세한 정보들과 함께 보여줍니다.</p> 94 <p>이 사이트는 개인 별 통계를 조금 더 자세한 정보들과 함께 보여줍니다.</p>
110 - <p><a class="btn btn-default" href="PersonalStat.html">자세히 알아보기</a></p> 95 + <p><a class="btn btn-default" href="/PersonalStat">자세히 알아보기</a></p>
111 </div> 96 </div>
112 </div> 97 </div>
113 <footer style="background-color:#33cc33; color:#ffffff"> 98 <footer style="background-color:#33cc33; color:#ffffff">
......
...@@ -140,7 +140,18 @@ ...@@ -140,7 +140,18 @@
140 <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li> 140 <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li>
141 <li><a href="TeamStanding.html">팀 순위</a></li> 141 <li><a href="TeamStanding.html">팀 순위</a></li>
142 <li><a href="PersonalStanding.html">개인 순위</a></li> 142 <li><a href="PersonalStanding.html">개인 순위</a></li>
143 - <li><a href="TeamStat.html">팀 별 통계</a></li> 143 + <li class="dropdown">
144 + <a href="TeamStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button"
145 + aria-haspopup="true" aria-expanded="false">팀 별 통계<span class="caret"></span></a>
146 + <ul class="dropdown-menu">
147 + <li><a href="TeamStat.html?StatName=Possession">점유율</a></li>
148 + <li><a href="TeamStat.html?StatName=Goals">득점</a></li>
149 + <li><a href="TeamStat.html?StatName=ShotsOnTarget">유효 슈팅</a></li>
150 + <li><a href="TeamStat.html?StatName=Shots">슈팅</a></li>
151 + <li><a href="TeamStat.html?StatName=Pass">경기당 패스 횟수</a></li>
152 + <li><a href="TeamStat.html?StatName=PassingAccuracy">패스 성공률</a></li>
153 + </ul>
154 + </li>
144 <li class="dropdown"> 155 <li class="dropdown">
145 <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button" 156 <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button"
146 aria-haspopup="true" aria-expanded="false">개인 별 통계<span class="caret"></span></a> 157 aria-haspopup="true" aria-expanded="false">개인 별 통계<span class="caret"></span></a>
......
...@@ -140,7 +140,18 @@ ...@@ -140,7 +140,18 @@
140 <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li> 140 <li class="active"><a href="index.html">프로젝트 소개<span class="sr-only"></span></a></li>
141 <li><a href="TeamStanding.html">팀 순위</a></li> 141 <li><a href="TeamStanding.html">팀 순위</a></li>
142 <li><a href="PersonalStanding.html">개인 순위</a></li> 142 <li><a href="PersonalStanding.html">개인 순위</a></li>
143 - <li><a href="TeamStat.html">팀 별 통계</a></li> 143 + <li class="dropdown">
144 + <a href="TeamStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button"
145 + aria-haspopup="true" aria-expanded="false">팀 별 통계<span class="caret"></span></a>
146 + <ul class="dropdown-menu">
147 + <li><a href="TeamStat.html?StatName=Possession">점유율</a></li>
148 + <li><a href="TeamStat.html?StatName=Goals">득점</a></li>
149 + <li><a href="TeamStat.html?StatName=ShotsOnTarget">유효 슈팅</a></li>
150 + <li><a href="TeamStat.html?StatName=Shots">슈팅</a></li>
151 + <li><a href="TeamStat.html?StatName=Pass">경기당 패스 횟수</a></li>
152 + <li><a href="TeamStat.html?StatName=PassingAccuracy">패스 성공률</a></li>
153 + </ul>
154 + </li>
144 <li class="dropdown"> 155 <li class="dropdown">
145 <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button" 156 <a href="PersonalStat.html" class="dropdown-toggle" data-toggle="dropdown" role="button"
146 aria-haspopup="true" aria-expanded="false">개인 별 통계<span class="caret"></span></a> 157 aria-haspopup="true" aria-expanded="false">개인 별 통계<span class="caret"></span></a>
......