This commit is contained in:
CakeCN
2025-01-01 01:43:28 +08:00
parent 1280a978f5
commit eb67bcfb70
115 changed files with 989 additions and 535 deletions

View File

@@ -1,60 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>课程详情</title>
<link rel="stylesheet" href="/static/css/book.css">
</head>
<body>
{% include 'navbar.html' %} <!-- 引入navbar.html -->
<!-- 课程详情主体部分 -->
<div class="course-details">
<!-- 上半部分:课程封面和详情 -->
<div class="course-overview">
<div class="course-cover">
<img src="/static/image/algorithm/book_cover.png" alt="课程封面" class="cover-image">
</div>
<div class="course-info">
<h2 class="course-title">计算机科学导论</h2>
<p class="course-author">作者:张教授</p>
<p class="course-description">
本课程将介绍计算机科学的基本概念,包括计算机的硬件结构、操作系统、编程语言等基础知识,适合初学者。
</p>
</div>
</div>
<hr/>
<br/>
<!-- 下半部分:课程教案列表 -->
<div class="lesson-plans">
<!-- <h3>课程教案</h3> -->
<div class="lesson-cards">
<!-- 每个教案的卡片 -->
<div class="lesson-card">
<img src="/static/image/algorithm/book_cover.png" alt="教案封面" class="lesson-image">
<div class="lesson-info">
<h4 class="lesson-title">第一章:计算机概述</h4>
<p class="lesson-description">介绍计算机的基础概念和发展历程。</p>
</div>
</div>
<!-- 继续添加其他教案 -->
<div class="lesson-card">
<img src="/static/image/algorithm/book_cover.png" alt="教案封面" class="lesson-image">
<div class="lesson-info">
<h4 class="lesson-title">第二章:操作系统基础</h4>
<p class="lesson-description">学习操作系统的基本原理与结构。</p>
</div>
</div>
<!-- 可以继续添加更多教案卡片 -->
</div>
</div>
</div>
</body>
<script>
var book_name = "{{book_name}}";
</script>
</html>

View File

@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>课程详情</title>
<link rel="stylesheet" href="/static/css/course.css">
</head>
<body>
{% include 'navbar.html' %} <!-- 引入navbar.html -->
<!-- 课程详情主体部分 -->
<div class="course-details">
<!-- 上半部分:课程封面和详情 -->
<div class="course-overview">
<div class="course-cover">
<img src="{{course_data.course_img_path}}" alt="课程封面" class="cover-image">
</div>
<div class="course-info">
<h2 class="course-title">{{course_data.course_name}}</h2>
<p class="course-author">作者:{{course_data.course_auther}}</p>
<p class="course-description">
{{course_data.description}}
</p>
</div>
</div>
<hr/>
<br/>
<!-- 下半部分:课程教案列表 -->
<div class="lesson-plans">
<!-- <h3>课程教案</h3> -->
<div class="lesson-cards">
<!-- 每个教案的卡片 -->
{% for lesson in course_data.lessons %}
<div class="lesson-card">
<img src="{{lesson.lesson_img_path}}" alt="教案封面" class="lesson-image">
<div class="lesson-info">
<h4 class="lesson-title">{{lesson.lesson_name}}</h4>
<p class="lesson-description">{{lesson.markdown}}</p>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</body>
<script>
var course_id = "{{course_id}}";
</script>
</html>

View File

@@ -13,7 +13,7 @@
<!-- 主页主体部分 -->
<div class="dashboard">
<h2 class="dashboard-title">—— 我的选课 ——</h2>
<div class="course-cards" >
<div class="course-cards" id="course-cards">
<!-- 每个课程的卡片 -->
<div class="course-card"onclick="openCourseProgress('algorithm')">
<img src="/static/image/algorithm/book_cover.png" alt="课程封面" class="course-image">
@@ -51,5 +51,14 @@
</div>
</div>
<script src="/static/js/dashboard.js"></script>
<script>
window.appData = {
user_data: JSON.parse(`{{user_data}}`.replace(/&#34;/g, "\"")),
user_course_data: JSON.parse(`{{user_course_data}}`.replace(/&#34;/g, "\""))
}
console.log(window.appData.user_data)
console.log(window.appData.user_course_data)
show_user_data(window.appData.user_data, window.appData.user_course_data)
</script>
</body>
</html>

View File

@@ -10,7 +10,7 @@
<script>
document.cookie = "vscode-tkn=44edc269-6f88-46ab-9790-dc253f66ac36; path=/; SameSite=None; Secure";
</script>
<script src="https://cdn.bootcdn.net/ajax/libs/marked/13.0.2/marked.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/1.1.1/marked.min.js"></script>
<script src="https://cdn.socket.io/4.0.0/socket.io.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://unpkg.com/split.js/dist/split.min.js"></script>
@@ -33,8 +33,7 @@
<!-- 中间嵌入的 Vscode-web 窗口,带有 tkn 参数 -->
<div class="vscode-web"id="vscodeWeb">
<!-- <iframe src="http://127.0.0.1:9888/?workspace=/mnt/c/CAKE/vscode/example_folder&folder=/mnt/c/CAKE/vscode/example_folder" style="width: 100%;height: 100%;"></iframe> -->
</div>
</div>
<div id="dragbar2"></div>
@@ -65,7 +64,8 @@
<script type="text/javascript">
window.appData = {
username:"{{user_id}}",
folder:"{{path}}",
course_id:"{{course_id}}",
chapter_id:"{{chapter_id}}"
}
</script>
<script src="/static/js/chatbox.js"></script>
@@ -126,7 +126,7 @@
// 在成功获取 session 后创建并插入 iframe
const iframe = document.createElement('iframe');
const sessionInfo = data
iframe.src = 'http://127.0.0.1:9090/?workspace=/mnt/c/CAKE/vscode/{{user_id}}/{{path}}&folder=/mnt/c/CAKE/vscode/{{user_id}}/{{path}}';
iframe.src = '{{vscode_web_url}}/?workspace={{workspace_path}}&folder={{workspace_path}}';
iframe.style.width = '100%';
iframe.style.height = '100%';
@@ -146,8 +146,8 @@
// 动态加载 Markdown 文件
function loadMarkdown(filename) {
fetch(`/${filename}-markdown`)
function loadMarkdown(course_id, filename) {
fetch(`/${course_id}-${filename}-markdown`)
.then(response => response.json())
.then(data => {
if (data.html_url) {
@@ -166,7 +166,7 @@
});
}
document.addEventListener('DOMContentLoaded', function() {
loadMarkdown('{{path}}');
loadMarkdown('{{course_id}}','{{chapter_id}}');
});

View File

@@ -6,37 +6,39 @@
<title>课程选择主页</title>
<link rel="stylesheet" href="/static/css/index.css">
</head>
<body>
<body onload="init_index()" >
{% include 'navbar.html' %} <!-- 引入navbar.html -->
<main>
<div class="course-selection">
<h2>课程列表</h2>
<div class="course-list">
<div class="course-card">
<img src="/static/image/algorithm/book_cover.png" alt="课程1">
<h3>课程名称 1</h3>
<p>课程描述信息,简要介绍课程内容和学习目标。</p>
<button class="select-button">选择课程</button>
{% for course_id, course in courses_data.items() %}
<div class="course-card" onclick="show_course_details('{{ course_id }}')">
<img src="{{ course.course_img_path }}" alt="{{ course.course_name }}">
<h3>{{ course.course_name }}</h3>
<p>{{ course.course_description }}</p>
{% if course_id in selected_courses %}
<button class="selected-button">已选择</button>
{% else %}
<button class="select-button" data-course-id="{{course_id}}">选择课程</button>
{% endif %}
</div>
<div class="course-card">
<img src="/static/image/algorithm/book_cover.png" alt="课程2">
<h3>课程名称 2</h3>
<p>课程描述信息,简要介绍课程内容和学习目标。</p>
<button class="select-button">选择课程</button>
</div>
<div class="course-card">
<img src="/static/image/algorithm/book_cover.png" alt="课程3">
<h3>课程名称 3</h3>
<p>课程描述信息,简要介绍课程内容和学习目标。</p>
<button class="select-button">选择课程</button>
</div>
<!-- 添加更多课程卡片 -->
{% endfor %}
</div>
</div>
</main>
<footer>
<p>&copy; 2024 学生管理系统 | 所有权利保留</p>
<p>版权所有 &copy; 2024 “华实伴学君”——教学练评一体的虚拟编码助教</p>
</footer>
</body>
<script>
window.appData = {
user_selected_courses: JSON.parse(`{{selected_courses}}`.replace(/&#34;/g, "\""))
}
</script>
<script src="/static/js/index.js"></script>
</html>

View File

@@ -21,6 +21,9 @@
<input type="password" id="password" name="password" placeholder="请输入密码" required>
</div>
<button type="submit" class="login-btn">登录</button>
<div class="register-link">
<a href="/register">注册新账号</a>
</div>
<div class="forgot-password">
<a href="#">忘记密码?</a>
</div>

View File

@@ -1,7 +1,48 @@
<!-- 页眉导航栏 -->
<header class="navbar">
<style>
/* 页眉导航栏 */
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #2575fc;
padding: 10px 30px;
color: white;
border-radius: 10px;
margin: 20px;
margin-bottom: 30px;
}
.navbar .logo h1 {
font-size: 24px;
font-weight: bold;
}
.navbar-links a {
color: white;
text-decoration: none;
margin: 0 20px;
font-size: 16px;
transition: color 0.3s;
}
.navbar-links a:hover {
color: #f1c40f;
}
.navbar .avatar img {
width: 40px;
height: 40px;
border-radius: 50%;
border: 2px solid white;
}
.avatar{
margin-left: 200px;
}
</style>
<div class="logo">
<h1>学生管理系统</h1>
<h1>华实君:教学练评一体的虚拟助教</h1>
</div>
<nav class="navbar-links">
<a href="/">首页</a>

View File

@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户注册</title>
<link rel="stylesheet" href="/static/css/login.css">
<script src="/static/js/register.js"></script>
</head>
<body>
<div class="login-container">
<div class="login-card">
<h2 class="login-title">欢迎注册!</h2>
<form class="login-form" id="register-form">
<div class="input-group">
<label for="username">用户名</label>
<input type="text" id="username" name="username" placeholder="请输入用户名" required>
</div>
<div class="input-group">
<label for="email">邮箱</label>
<input type="email" id="email" name="email" placeholder="请输入邮箱" required>
</div>
<div class="input-group">
<label for="password">密码</label>
<input type="password" id="password" name="password" placeholder="请输入密码" required>
</div>
<div class="input-group">
<label for="confirm-password">确认密码</label>
<input type="password" id="confirm-password" name="confirm-password" placeholder="请确认密码" required>
</div>
<button type="submit" class="login-btn">注册</button>
</form>
</div>
</div>
</body>
</html>