-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.js
More file actions
141 lines (129 loc) · 3.86 KB
/
script.js
File metadata and controls
141 lines (129 loc) · 3.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
const app = document.getElementById("app");
// 공통 레이아웃
const mainLayout = (content) => `
<div class="page-layout">
<div class="sidebar">
<div>
<div class="profile">
<img src="assets/profile.png" alt="Profile Picture">
<h3>${localStorage.getItem("user") || "Guest"}</h3>
</div>
<ul>
<li onclick="logout()">Logout</li>
<li onclick="navigateContent('test')">Test</li>
<li onclick="navigateContent('answer')">Answer</li>
<li onclick="navigateContent('ranking')">Ranking</li>
</ul>
</div>
<div class="logo">
<img src="assets/logo.png" alt="Logo">
</div>
</div>
<div class="content" id="content-area">
${content}
</div>
</div>
`;
// 콘텐츠별 페이지
const pages = {
welcome: `
<div class="welcome-container">
<div>
<h1>Know Yourself!</h1>
<p>자네 인공지능을 좀 아는가</p>
<img src="assets/welcome.png" alt="Welcome Image">
<br/>
<button onclick="navigate('register')">시작하기</button>
</div>
</div>
`,
register: `
<div class="register-container">
<div class="register-image">
<img src="assets/loginpage.png" alt="Register Image">
</div>
<div class="register-form">
<h1>Create Account</h1>
<p>아이디와 비밀번호를 입력해주세요.</p>
<form onsubmit="createAccount(event)">
<input type="text" id="username" placeholder="Username" required>
<input type="password" id="password" placeholder="Password" required>
<button type="submit">Create Account</button>
</form>
<br/>
<button id="start-button" onclick="navigate('test')">시작하기</button>
</div>
</div>
`,
test: `
<div class="container">
<h1>시험 문제</h1>
<div id="questions">
<!-- 질문이 여기에 동적으로 추가됨 -->
</div>
<button onclick="submitTest()">채점하기</button>
</div>
`,
answer: `
<div class="container">
<h1>정답 페이지</h1>
<p>정답 페이지 콘텐츠입니다.</p>
</div>
`,
ranking: `
<div class="container">
<h1>랭킹 페이지</h1>
<p>랭킹 페이지 콘텐츠입니다.</p>
</div>
`,
};
// 페이지 이동 함수
function navigate(page) {
if (page === "welcome" || page === "register") {
app.innerHTML = pages[page];
} else {
const content = pages[page] || pages.test;
app.innerHTML = mainLayout(content);
if (page === "test") loadQuestions();
}
}
// 콘텐츠 변경 함수 (사이드바 클릭 시)
function navigateContent(content) {
const contentArea = document.getElementById("content-area");
contentArea.innerHTML = pages[content] || pages.test;
if (content === "test") loadQuestions();
}
// 계정 생성 함수
function createAccount(event) {
event.preventDefault();
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
if (username && password) {
localStorage.setItem("user", username);
// "시작하기" 버튼 표시
const startButton = document.getElementById("start-button");
startButton.style.display = "block";
} else {
alert("아이디와 비밀번호를 입력해주세요.");
}
}
// 시험 문제 로드 함수
function loadQuestions() {
const questions = [
];
const questionContainer = document.getElementById("questions");
questions.forEach((q, index) => {
questionContainer.innerHTML += `
<p>${index + 1}. ${q.question}</p>
<input type="text" id="answer-${index}" placeholder="정답 입력">
`;
});
window.questions = questions;
}
//로그아웃 페이지
function logout() {
localStorage.removeItem("user");
navigate("welcome");
}
// 초기 페이지 로드
navigate("welcome");