Showing
8 changed files
with
187 additions
and
7 deletions
... | @@ -32,7 +32,10 @@ app.get('/',(req,res)=>{ | ... | @@ -32,7 +32,10 @@ app.get('/',(req,res)=>{ |
32 | }) | 32 | }) |
33 | 33 | ||
34 | app.get('/main',(req,res)=>{ | 34 | app.get('/main',(req,res)=>{ |
35 | - fs.readFile('./views/main') | 35 | + if(!req.session.sid) |
36 | - res.writeHead(200,{'Content-Type':'text/html'}) | 36 | + res.redirect('/login') |
37 | - | 37 | + else { |
38 | + fs.readFile('./views/main') | ||
39 | + res.writeHead(200, {'Content-Type': 'text/html'}) | ||
40 | + } | ||
38 | }) | 41 | }) |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
views/html/decklist.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html lang="ko"> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
6 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
7 | + <title>Who Are You? - 하스스톤 멀리건 도우미</title> | ||
8 | + | ||
9 | + <!-- 부트스트랩 --> | ||
10 | + <link href="../../static/bootstrap-3.3.2-dist/css/bootstrap.min.css?ver=1" rel="stylesheet"> | ||
11 | + <link href="../../static/main.css" rel="stylesheet"> | ||
12 | + <!-- IE8 에서 HTML5 요소와 미디어 쿼리를 위한 HTML5 shim 와 Respond.js --> | ||
13 | + <!-- WARNING: Respond.js 는 당신이 file:// 을 통해 페이지를 볼 때는 동작하지 않습니다. --> | ||
14 | + <!--[if lt IE 9]> | ||
15 | + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | ||
16 | + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | ||
17 | + <![endif]--> | ||
18 | +</head> | ||
19 | +<body> | ||
20 | + <nav class="navbar-default navbar-fixed-top"> | ||
21 | + <div class="container"> | ||
22 | + <div class="navbar-header"> | ||
23 | + <button class="navbar-toggle collapsed" aria-expanded="false" aria-controls="navbar" type="button" data-toggle="collapse" data-target="#navbar"> | ||
24 | + <span class="sr-only">Toggle navigation</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="/main">Who Are You?</a> | ||
30 | + </div> | ||
31 | + <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> | ||
32 | + <ul class="nav navbar-nav"> | ||
33 | + </ul> | ||
34 | + <div class="navbar-right"> | ||
35 | + <a href="#"><button class="btn navbar-btn" style="color:#000;">로그아웃</button></a> | ||
36 | + </div> | ||
37 | + </div> | ||
38 | + </div> | ||
39 | + </nav> | ||
40 | + | ||
41 | + <div class="container show-grid" > | ||
42 | + <div class="padding" style="width:100px"></div> | ||
43 | + <div class="container" style="width:50%;"> | ||
44 | + <div class="row"> | ||
45 | + <h3 class="form-signin-heading col-md-10" style="text-align: left;">내 덱 리스트</h3> | ||
46 | + <input type="button" class="btn col-md-2" value="+" style="margin-top: 18px;" /> | ||
47 | + </div> | ||
48 | + <br> | ||
49 | + <table class="table"> | ||
50 | + <tr><td style="text-align: center;"><a class="list-group-item" href="#">덱 이름</a></td></tr> | ||
51 | + <tr><td style="text-align: center;"><a class="list-group-item" href="#">덱 이름</a></td></tr> | ||
52 | + </table> | ||
53 | + </div> | ||
54 | + </div> | ||
55 | + | ||
56 | + <!-- jQuery (부트스트랩의 자바스크립트 플러그인을 위해 필요합니다) --> | ||
57 | + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> | ||
58 | + <!-- 모든 컴파일된 플러그인을 포함합니다 (아래), 원하지 않는다면 필요한 각각의 파일을 포함하세요 --> | ||
59 | + <script src="../../static/bootstrap-3.3.2-dist/js/bootstrap.min.js"></script> | ||
60 | +</body> | ||
61 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -26,7 +26,7 @@ | ... | @@ -26,7 +26,7 @@ |
26 | <span class="icon-bar"></span> | 26 | <span class="icon-bar"></span> |
27 | <span class="icon-bar"></span> | 27 | <span class="icon-bar"></span> |
28 | </button> | 28 | </button> |
29 | - <a class="navbar-brand" href="#">Who Are You?</a> | 29 | + <a class="navbar-brand" href="/main">Who Are You?</a> |
30 | </div> | 30 | </div> |
31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> | 31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> |
32 | <ul class="nav navbar-nav"> | 32 | <ul class="nav navbar-nav"> | ... | ... |
... | @@ -26,7 +26,7 @@ | ... | @@ -26,7 +26,7 @@ |
26 | <span class="icon-bar"></span> | 26 | <span class="icon-bar"></span> |
27 | <span class="icon-bar"></span> | 27 | <span class="icon-bar"></span> |
28 | </button> | 28 | </button> |
29 | - <a class="navbar-brand" href="#">Who Are You?</a> | 29 | + <a class="navbar-brand" href="/main">Who Are You?</a> |
30 | </div> | 30 | </div> |
31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> | 31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> |
32 | <ul class="nav navbar-nav"> | 32 | <ul class="nav navbar-nav"> | ... | ... |
... | @@ -26,7 +26,7 @@ | ... | @@ -26,7 +26,7 @@ |
26 | <span class="icon-bar"></span> | 26 | <span class="icon-bar"></span> |
27 | <span class="icon-bar"></span> | 27 | <span class="icon-bar"></span> |
28 | </button> | 28 | </button> |
29 | - <a class="navbar-brand" href="#">Who Are You?</a> | 29 | + <a class="navbar-brand" href="/main">Who Are You?</a> |
30 | </div> | 30 | </div> |
31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> | 31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> |
32 | <ul class="nav navbar-nav"> | 32 | <ul class="nav navbar-nav"> | ... | ... |
views/html/newdeck.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html lang="ko"> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
6 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
7 | + <title>Who Are You? - 하스스톤 멀리건 도우미</title> | ||
8 | + | ||
9 | + <!-- 부트스트랩 --> | ||
10 | + <link href="../../static/bootstrap-3.3.2-dist/css/bootstrap.min.css?ver=1" rel="stylesheet"> | ||
11 | + <link href="../../static/main.css" rel="stylesheet"> | ||
12 | + <!-- IE8 에서 HTML5 요소와 미디어 쿼리를 위한 HTML5 shim 와 Respond.js --> | ||
13 | + <!-- WARNING: Respond.js 는 당신이 file:// 을 통해 페이지를 볼 때는 동작하지 않습니다. --> | ||
14 | + <!--[if lt IE 9]> | ||
15 | + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | ||
16 | + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | ||
17 | + <![endif]--> | ||
18 | +</head> | ||
19 | +<body> | ||
20 | + <nav class="navbar-default navbar-fixed-top"> | ||
21 | + <div class="container"> | ||
22 | + <div class="navbar-header"> | ||
23 | + <button class="navbar-toggle collapsed" aria-expanded="false" aria-controls="navbar" type="button" data-toggle="collapse" data-target="#navbar"> | ||
24 | + <span class="sr-only">Toggle navigation</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="/main">Who Are You?</a> | ||
30 | + </div> | ||
31 | + <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> | ||
32 | + <ul class="nav navbar-nav"> | ||
33 | + </ul> | ||
34 | + <div class="navbar-right"> | ||
35 | + <a href="#"><button class="btn navbar-btn" style="color:#000;">로그아웃</button></a> | ||
36 | + </div> | ||
37 | + </div> | ||
38 | + </div> | ||
39 | + </nav> | ||
40 | + | ||
41 | + <div class="container show-grid" > | ||
42 | + <div class="padding" style="width:100px"></div> | ||
43 | + <div class="container" style="width:50%;"> | ||
44 | + <h3 class="form-signin-heading">덱 추가</h3> | ||
45 | + <label class="sr-only" for="deckTitle">덱 이름</label> | ||
46 | + <input class="form-control" id="deckTitle" autofocus="" required="" type="text" placeholder="덱 이름" name="userId"> | ||
47 | + <label class="sr-only" for="deckCode">덱 코드</label> | ||
48 | + <textarea class="form-control" id="deckCode" required="" placeholder="덱 코드" name="password" style="resize:none;height:150px;"></textarea> | ||
49 | + <input type="button" class="btn btn-primary btn-block" value="확인" /> | ||
50 | + </div> | ||
51 | + </div> | ||
52 | + | ||
53 | + <!-- jQuery (부트스트랩의 자바스크립트 플러그인을 위해 필요합니다) --> | ||
54 | + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> | ||
55 | + <!-- 모든 컴파일된 플러그인을 포함합니다 (아래), 원하지 않는다면 필요한 각각의 파일을 포함하세요 --> | ||
56 | + <script src="../../static/bootstrap-3.3.2-dist/js/bootstrap.min.js"></script> | ||
57 | +</body> | ||
58 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -26,7 +26,7 @@ | ... | @@ -26,7 +26,7 @@ |
26 | <span class="icon-bar"></span> | 26 | <span class="icon-bar"></span> |
27 | <span class="icon-bar"></span> | 27 | <span class="icon-bar"></span> |
28 | </button> | 28 | </button> |
29 | - <a class="navbar-brand" href="#">Who Are You?</a> | 29 | + <a class="navbar-brand" href="/main">Who Are You?</a> |
30 | </div> | 30 | </div> |
31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> | 31 | <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> |
32 | <ul class="nav navbar-nav"> | 32 | <ul class="nav navbar-nav"> | ... | ... |
프로젝트계획.txt
0 → 100644
1 | +1. 목적 : 사용자가 게임 시작 시, 직업만 선택하면 상위 픽률 3개의 덱타입을 알려줌. 사용자의 덱 정보를 바탕으로 어떤 카드를 멀리건으로 잡을때, 승률이 높은지, 5개의 카드를 알려줌. | ||
2 | + | ||
3 | +2. 작동 순서 | ||
4 | +1) 회원가입 | ||
5 | +2) 로그인 | ||
6 | +3) 덱 선택 | ||
7 | +4-1) 덱 등록 | ||
8 | +4-2) 덱 삭제 | ||
9 | +5) 상대 직업 선택 | ||
10 | +6) 멀리건 추천 | ||
11 | +7) 로그아웃 | ||
12 | + | ||
13 | +3. 구현 방법 (2번 참고) | ||
14 | +1) db에 저장 | ||
15 | +2) db에서 불러오기, 세션 유지 | ||
16 | +3) 덱 이름, 덱 코드 변환 (deck.code 파싱), db에 저장 | ||
17 | +4-1) db에서 가져오기, 세션 유지 | ||
18 | +4-2) db에서 삭제시키기 | ||
19 | +5) hsreplay.net 파싱 | ||
20 | +6) hsreplay.net 파싱 | ||
21 | +7) 세션 삭제 | ||
22 | + | ||
23 | +4. 필요한 페이지 | ||
24 | +1) 로그인 페이지 | ||
25 | +2) 회원가입 페이지 | ||
26 | +3) 메인 페이지 (덱 추가/게임 시작) | ||
27 | +4) 덱 리스트 출력 및 선택 | ||
28 | +5) 덱 리스트 추가 | ||
29 | +6) 덱 리스트 삭제 | ||
30 | +7) 상대 덱 선택 | ||
31 | +8) 상위 픽률 3개의 덱 출력 | ||
32 | +9) 멀리건 5개 출력 | ||
33 | + | ||
34 | +5. 해결해야 할 문제 | ||
35 | +1) MySQL 배우기(row 추가, 변경, 삭제) | ||
36 | +2) deck.code에서 가져 올 수 있는 정보는 직업, 덱에 들어간 카드의 영어 이름, 갯수만 나옴. -> hsreplay.net의 덱들과 매치시키는 문제 => hsreplay에 | ||
37 | +3) 상대의 직업을 안다고 해도, 어그로, 미드레인지, 컨트롤 구분하기 힘듦. => 추천 | ||
38 | + | ||
39 | +6. 기술스택 | ||
40 | +웹프론트: html+css+javascript+ejs | ||
41 | +웹서버 : node.js express | ||
42 | +데이터베이스 : mySQL | ||
43 | + | ||
44 | +7. 데이터 정보 | ||
45 | +<User> | ||
46 | +userId(string): 유저의 ID | ||
47 | +password(string): 유저의 비밀번호 | ||
48 | +decks(Array): 덱 리스트 | ||
49 | +<Deck> | ||
50 | +deckTitle(string): 덱의 이름 | ||
51 | +deckClass(string): 덱의 직업 | ||
52 | +deckCode(string): 덱 코드 | ||
53 | +cards(Array): 카드 리스트 | ||
54 | +<Card> | ||
55 | +cardClass(string): 카드의 직업 | ||
56 | +cardCost(Number): 카드의 코스트 | ||
57 | +cardName(string): 카드의 이름 | ||
58 | +cardNum(Number): 카드의 개수 | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment