Gabungkan aplikasi RPS & Portofolio OBE (dashboard jadi bagian aplikasi)

Dashboard pemetaan statis kini dilayani aplikasi di /dashboard
(app/static/dashboard.html). Fitur lengkap Tahap 1-4 + dasbor monitoring,
menu global, filter semester, input nilai langsung, penggabungan nilai
team teaching, tabel bisa urut. Dockerfile berubah dari nginx statis ke
uvicorn/FastAPI: healthcheck, proxy-headers, volume /data (SQLite).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Power BI Dev
2026-07-18 12:05:28 +07:00
parent 3405dc21ff
commit 9be6bd03e3
42 changed files with 11366 additions and 53 deletions
+53
View File
@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block judul %}RPS &amp; Portofolio — Informatika UNTAN{% endblock %}</title>
<link rel="stylesheet" href="/static/style.css">
<script src="/static/tabel.js" defer></script>
</head>
<body>
<div class="kertas">
<div class="kop">
<img class="kop-logo" src="/static/logo-untan.png" alt="Logo Universitas Tanjungpura" width="74" height="74">
<div class="kop-teks">
<div class="uni">UNIVERSITAS TANJUNGPURA — FAKULTAS TEKNIK</div>
<div class="prodi">PROGRAM STUDI INFORMATIKA</div>
<div class="app">Sistem Penyusunan RPS &amp; Portofolio Mata Kuliah — Kurikulum OBE · {{ tahun }}</div>
</div>
<span class="kop-imbang" aria-hidden="true"></span>
</div>
<hr class="kop-rule"><hr class="kop-rule2">
{% if user %}
{% set path = request.url.path %}
{% macro tautan(href, label) -%}
<a href="{{ href }}"{% if path == href %} class="aktif" aria-current="page"{% endif %}>{{ label }}</a>
{%- endmacro %}
<nav class="menu-baris">
<span class="menu-kiri">
{{ tautan('/', 'Beranda') }}
{{ tautan('/pantau', 'Dasbor Monitoring') }}
{{ tautan('/rekap', 'Rekap CPL/CPMK') }}
{{ tautan('/rekap/riwayat', 'Riwayat') }}
{{ tautan('/metodologi', 'Metodologi') }}
{{ tautan('/dashboard', 'Pemetaan CPMK') }}
{% if user.role == 'kaprodi' %}{{ tautan('/admin', 'Kelola Akun & Mahasiswa') }}{% endif %}
</span>
<span class="menu-kanan">
<b>{{ user.nama }}</b> — {{ 'Kaprodi' if user.role == 'kaprodi' else 'Dosen' }}
· <a href="/keluar">Keluar</a>
</span>
</nav>
{% endif %}
{% block isi %}{% endblock %}
<div class="kaki">
<span>Format keluaran: RPS APTIKOM 2024 (.docx) · Portofolio MK (.docx)</span>
<span>Pemetaan: 10 CPL · 34 CPMK · 49 MK · 549 Sub-CPMK</span>
</div>
</div>
</body>
</html>