first commit

This commit is contained in:
2026-09-22 10:48:18 +08:00
commit 2006f7b4a4
20 changed files with 1877 additions and 0 deletions

55
app/templates/home.html Normal file
View File

@@ -0,0 +1,55 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>航标 · 班级达线指标预估</title>
<link rel="stylesheet" href="/static/css/app.css">
</head>
<body>
<header class="topbar">
<a class="brand" href="/">
<div class="mark">航</div>
<div><b>航标</b><span>班级达线指标预估系统</span></div>
</a>
<form action="/logout" method="post"><button class="ghost" type="submit">退出 {{ user }}</button></form>
</header>
<main class="wrap">
<section class="hero">
<div>
<h1>把历史成绩当成导航轨迹,<br>而不是一张静态排名表。</h1>
<p>
上传各次大考总分后,系统会把分数换成同一次考试内的标准分,用卡尔曼滤波估计每个学生的稳定水平,
再模拟下一次全年级排名,把达线概率加总到班级。下达的是“按现有轨迹本来会到的人数”,班级工作是超越它。
</p>
</div>
<form class="drop" action="/upload" method="post" enctype="multipart/form-data">
<h3>上传成绩表</h3>
<p class="muted">xlsx,需含学号/姓名/班级,以及多次考试总分列。若有「方向」或物理/历史分表,会分开测算。</p>
<input type="file" name="file" accept=".xlsx,.xlsm" required>
<div class="actions">
<button class="primary" type="submit">开始逐步分析</button>
</div>
</form>
</section>
{% if has_sample %}
<form action="/demo" method="post" style="margin-top:12px">
<button class="btn teal" type="submit">用文件夹里的 2024 级示例表走一遍</button>
</form>
{% endif %}
<div class="list">
{% for it in items %}
<a class="item" href="/analysis/{{ it.id }}?step={{ it.step or 1 }}">
<div>
<b>{{ it.title }}</b>
<div class="tiny">{{ it.filename }} · {{ it.created_at }}</div>
</div>
<span class="chip">继续第 {{ it.step or 1 }} 步</span>
</a>
{% else %}
<div class="muted">还没有分析记录。上传成绩表后会在这里列出。</div>
{% endfor %}
</div>
</main>
</body>
</html>