feat: redesign to minimalist white theme and add multi-architecture APK downloads (universal, 64-bit, 32-bit)
This commit is contained in:
1 parent
3d4c4b33fc
commit
a739db89d6
13 files changed
+590
-356
No files matched your search
Binary file not shown.
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 33 KiB |
@@ -28,30 +28,32 @@ const showcaseTabs = [
|
|||||||
];
|
];
|
||||||
---
|
---
|
||||||
|
|
||||||
<section id="showcase" class="relative bg-[#09110c] py-24 text-white border-t border-white/5">
|
<section id="showcase" class="relative bg-white py-20 border-t border-slate-200">
|
||||||
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mx-auto max-w-2xl text-center">
|
<div class="mx-auto max-w-2xl text-center">
|
||||||
<p class="text-sm font-semibold text-[#4ade80] uppercase tracking-widest mb-3">App Preview</p>
|
<div class="inline-flex items-center gap-1.5 rounded-full border border-emerald-200 bg-[#ecfdf5] px-3.5 py-1 text-xs font-semibold text-[#15803d] uppercase tracking-wider mb-3.5">
|
||||||
<h2 class="font-display text-3xl font-bold text-white sm:text-4xl">
|
App Preview
|
||||||
|
</div>
|
||||||
|
<h2 class="font-display text-3xl font-bold text-slate-900 sm:text-4xl">
|
||||||
See the app in action.
|
See the app in action.
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mt-4 text-base text-slate-400 leading-relaxed">
|
<p class="mt-3 text-base text-slate-600 leading-relaxed">
|
||||||
Real screenshots from the desktop app built specifically for Talisay Integrated School.
|
Real screenshots from the desktop app built specifically for Talisay Integrated School.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Tab Buttons -->
|
<!-- Tab Buttons -->
|
||||||
<div class="mt-10 flex flex-wrap items-center justify-center gap-2">
|
<div class="mt-9 flex flex-wrap items-center justify-center gap-2">
|
||||||
{showcaseTabs.map((tab, idx) => (
|
{showcaseTabs.map((tab, idx) => (
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
data-tab={tab.id}
|
data-tab={tab.id}
|
||||||
class={`tab-btn rounded-lg px-4 py-2 text-sm font-medium transition-all border ${
|
class={`tab-btn rounded-xl px-4 py-2 text-sm font-semibold transition-all border shadow-xs ${
|
||||||
idx === 0
|
idx === 0
|
||||||
? "bg-[#16a34a] text-white border-[#16a34a]"
|
? "bg-[#15803d] text-white border-[#15803d] shadow-sm"
|
||||||
: "bg-transparent text-slate-400 border-white/10 hover:text-white hover:border-white/20"
|
: "bg-white text-slate-600 border-slate-200 hover:text-slate-900 hover:border-slate-300"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{tab.title}
|
{tab.title}
|
||||||
@@ -59,34 +61,42 @@ const showcaseTabs = [
|
|||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Screenshot Window -->
|
<!-- Screenshot Window (Authentic Desktop Client Window Styling) -->
|
||||||
<div class="mt-8 overflow-hidden rounded-2xl border border-white/10 bg-[#0c1610] shadow-2xl shadow-black/60">
|
<div class="mt-8 overflow-hidden rounded-2xl border border-slate-300/80 bg-white shadow-xl">
|
||||||
|
|
||||||
<!-- Simple window titlebar -->
|
<!-- Desktop Client Titlebar matching app screenshot -->
|
||||||
<div class="flex items-center gap-2.5 border-b border-white/5 bg-[#15803d] px-4 py-2.5">
|
<div class="flex items-center justify-between border-b border-emerald-800/40 bg-[#15803d] px-4 py-2.5 select-none">
|
||||||
<img src="/tis_logo.png" alt="TIS" class="h-4 w-4 object-contain" />
|
<div class="flex items-center gap-2.5">
|
||||||
<span class="text-sm font-semibold text-white">TIS Record Management System</span>
|
<img src="/tis_logo.png" alt="TIS Logo" class="h-4.5 w-4.5 object-contain" width="18" height="18" />
|
||||||
|
<span class="text-xs sm:text-sm font-medium text-white tracking-wide">TIS Record Management System</span>
|
||||||
|
</div>
|
||||||
|
<!-- Window minimize / maximize / close icons matching desktop app -->
|
||||||
|
<div class="flex items-center gap-4 text-white/80 text-xs">
|
||||||
|
<span class="hover:text-white cursor-default transition">─</span>
|
||||||
|
<span class="hover:text-white cursor-default transition">□</span>
|
||||||
|
<span class="hover:text-white cursor-default transition">✕</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Screenshot Area -->
|
<!-- Screenshot Area -->
|
||||||
<div class="relative bg-[#09110c] p-3 sm:p-4">
|
<div class="relative bg-slate-100/70 p-2 sm:p-4">
|
||||||
{showcaseTabs.map((tab, idx) => (
|
{showcaseTabs.map((tab, idx) => (
|
||||||
<div
|
<div
|
||||||
id={`tab-content-${tab.id}`}
|
id={`tab-content-${tab.id}`}
|
||||||
class={`tab-content ${idx === 0 ? "block" : "hidden"}`}
|
class={`tab-content ${idx === 0 ? "block" : "hidden"}`}
|
||||||
>
|
>
|
||||||
<div class="overflow-hidden rounded-xl border border-white/8">
|
<div class="overflow-hidden rounded-xl border border-slate-200 shadow-xs bg-white">
|
||||||
<img
|
<img
|
||||||
src={tab.image}
|
src={tab.image}
|
||||||
alt={`TIS RMS ${tab.title}`}
|
alt={`TIS RMS ${tab.title}`}
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
class="w-full object-cover aspect-[16/10]"
|
class="w-full object-cover aspect-[16/9.5]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- Caption -->
|
<!-- Caption -->
|
||||||
<div class="mt-4 text-center">
|
<div class="mt-4 text-center pb-2">
|
||||||
<h3 class="font-display text-lg font-semibold text-white">{tab.title}</h3>
|
<h3 class="font-display text-lg font-bold text-slate-900">{tab.title}</h3>
|
||||||
<p class="text-sm text-slate-400 mt-1">{tab.tagline}</p>
|
<p class="text-sm text-slate-600 mt-0.5">{tab.tagline}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
@@ -105,12 +115,12 @@ const showcaseTabs = [
|
|||||||
const target = btn.dataset.tab;
|
const target = btn.dataset.tab;
|
||||||
|
|
||||||
buttons.forEach((b) => {
|
buttons.forEach((b) => {
|
||||||
b.classList.remove('bg-[#16a34a]', 'text-white', 'border-[#16a34a]');
|
b.classList.remove('bg-[#15803d]', 'text-white', 'border-[#15803d]', 'shadow-sm');
|
||||||
b.classList.add('bg-transparent', 'text-slate-400', 'border-white/10');
|
b.classList.add('bg-white', 'text-slate-600', 'border-slate-200');
|
||||||
});
|
});
|
||||||
|
|
||||||
btn.classList.remove('bg-transparent', 'text-slate-400', 'border-white/10');
|
btn.classList.remove('bg-white', 'text-slate-600', 'border-slate-200');
|
||||||
btn.classList.add('bg-[#16a34a]', 'text-white', 'border-[#16a34a]');
|
btn.classList.add('bg-[#15803d]', 'text-white', 'border-[#15803d]', 'shadow-sm');
|
||||||
|
|
||||||
contents.forEach((content) => {
|
contents.forEach((content) => {
|
||||||
if (content.id === `tab-content-${target}`) {
|
if (content.id === `tab-content-${target}`) {
|
||||||
|
|||||||
@@ -2,43 +2,48 @@
|
|||||||
// Architecture component - How TIS RMS works on campus
|
// Architecture component - How TIS RMS works on campus
|
||||||
---
|
---
|
||||||
|
|
||||||
<section id="architecture" class="relative bg-[#09110c] py-24 border-t border-white/5 text-white">
|
<section id="architecture" class="relative bg-[#f8fafc] py-20 border-t border-slate-200">
|
||||||
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mx-auto max-w-2xl text-center">
|
<div class="mx-auto max-w-2xl text-center">
|
||||||
<p class="text-sm font-semibold text-[#4ade80] uppercase tracking-widest mb-3">How It's Set Up</p>
|
<div class="inline-flex items-center gap-1.5 rounded-full border border-emerald-200 bg-[#ecfdf5] px-3.5 py-1 text-xs font-semibold text-[#15803d] uppercase tracking-wider mb-3.5">
|
||||||
<h2 class="font-display text-3xl font-bold text-white sm:text-4xl">
|
How It's Set Up
|
||||||
|
</div>
|
||||||
|
<h2 class="font-display text-3xl font-bold text-slate-900 sm:text-4xl">
|
||||||
Works on your school's network — no internet needed.
|
Works on your school's network — no internet needed.
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mt-4 text-base text-slate-400 leading-relaxed">
|
<p class="mt-3 text-base text-slate-600 leading-relaxed">
|
||||||
TIS RMS runs on a designated school computer. Teachers connect through the school Wi-Fi or cable network. Everything stays inside the school.
|
TIS RMS runs on a designated school computer. Teachers connect through the school Wi-Fi or cable network. Everything stays inside the school.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 3 cards -->
|
<!-- 3 network cards -->
|
||||||
<div class="mt-14 grid gap-5 sm:grid-cols-3">
|
<div class="mt-12 grid gap-5 sm:grid-cols-3">
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-7 text-center">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-7 text-center shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="text-4xl mb-4">🖥️</div>
|
<div class="flex h-14 w-14 items-center justify-center rounded-2xl bg-slate-100 text-3xl mx-auto mb-4">🖥️</div>
|
||||||
<h3 class="font-display text-lg font-semibold text-white">Teacher Computers</h3>
|
<h3 class="font-display text-lg font-bold text-slate-900">Teacher Computers</h3>
|
||||||
<p class="mt-2 text-sm text-slate-400 leading-relaxed">
|
<p class="mt-2 text-sm text-slate-600 leading-relaxed">
|
||||||
Teachers use the Windows desktop app on their workstations or the Android app on their phones to scan documents.
|
Teachers use the Windows desktop app on their workstations or the Android app on their phones to scan documents.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-2xl border border-[#16a34a]/30 bg-[#16a34a]/5 p-7 text-center">
|
<div class="rounded-2xl border-2 border-[#15803d]/40 bg-[#ecfdf5] p-7 text-center shadow-xs relative">
|
||||||
<div class="text-4xl mb-4">🏫</div>
|
<span class="absolute -top-3 left-1/2 -translate-x-1/2 rounded-full bg-[#15803d] px-3 py-0.5 text-xs font-bold text-white shadow-xs">
|
||||||
<h3 class="font-display text-lg font-semibold text-white">School Server PC</h3>
|
Campus Host
|
||||||
<p class="mt-2 text-sm text-slate-400 leading-relaxed">
|
</span>
|
||||||
|
<div class="flex h-14 w-14 items-center justify-center rounded-2xl bg-white text-3xl mx-auto mb-4 shadow-xs">🏫</div>
|
||||||
|
<h3 class="font-display text-lg font-bold text-[#15803d]">School Server PC</h3>
|
||||||
|
<p class="mt-2 text-sm text-slate-700 leading-relaxed">
|
||||||
One designated school computer acts as the server. It stores all records and runs quietly in the background — always on.
|
One designated school computer acts as the server. It stores all records and runs quietly in the background — always on.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-7 text-center">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-7 text-center shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="text-4xl mb-4">📡</div>
|
<div class="flex h-14 w-14 items-center justify-center rounded-2xl bg-slate-100 text-3xl mx-auto mb-4">📡</div>
|
||||||
<h3 class="font-display text-lg font-semibold text-white">School Wi-Fi / LAN</h3>
|
<h3 class="font-display text-lg font-bold text-slate-900">School Wi-Fi / LAN</h3>
|
||||||
<p class="mt-2 text-sm text-slate-400 leading-relaxed">
|
<p class="mt-2 text-sm text-slate-600 leading-relaxed">
|
||||||
All devices communicate through the local school network. No data leaves the campus — private and fast.
|
All devices communicate through the local school network. No data leaves the campus — private and fast.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -46,25 +51,31 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 3 benefit cards -->
|
<!-- 3 benefit cards -->
|
||||||
<div class="mt-8 grid gap-5 sm:grid-cols-3">
|
<div class="mt-6 grid gap-5 sm:grid-cols-3">
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-6">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-6 shadow-xs">
|
||||||
<h4 class="font-display text-base font-semibold text-white mb-2">Works Without Internet</h4>
|
<h4 class="font-display text-base font-bold text-slate-900 mb-2 flex items-center gap-2">
|
||||||
<p class="text-sm text-slate-400 leading-relaxed">
|
<span class="text-[#15803d]">✓</span> Works Without Internet
|
||||||
|
</h4>
|
||||||
|
<p class="text-sm text-slate-600 leading-relaxed">
|
||||||
Teachers can access and update records even when the school's internet connection is slow or down.
|
Teachers can access and update records even when the school's internet connection is slow or down.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-6">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-6 shadow-xs">
|
||||||
<h4 class="font-display text-base font-semibold text-white mb-2">Student Data Stays Private</h4>
|
<h4 class="font-display text-base font-bold text-slate-900 mb-2 flex items-center gap-2">
|
||||||
<p class="text-sm text-slate-400 leading-relaxed">
|
<span class="text-[#15803d]">✓</span> Student Data Stays Private
|
||||||
|
</h4>
|
||||||
|
<p class="text-sm text-slate-600 leading-relaxed">
|
||||||
All student records are stored only on school hardware — never uploaded to any external service or cloud.
|
All student records are stored only on school hardware — never uploaded to any external service or cloud.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-6">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-6 shadow-xs">
|
||||||
<h4 class="font-display text-base font-semibold text-white mb-2">Fast Local Performance</h4>
|
<h4 class="font-display text-base font-bold text-slate-900 mb-2 flex items-center gap-2">
|
||||||
<p class="text-sm text-slate-400 leading-relaxed">
|
<span class="text-[#15803d]">✓</span> Fast Local Performance
|
||||||
|
</h4>
|
||||||
|
<p class="text-sm text-slate-600 leading-relaxed">
|
||||||
Because everything runs on your local network, searching and loading records is instant across all workstations.
|
Because everything runs on your local network, searching and loading records is instant across all workstations.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+248
-103
@@ -1,136 +1,253 @@
|
|||||||
---
|
---
|
||||||
// Downloads component - Official installers for Talisay Integrated School
|
// Downloads component - Official installers for Talisay Integrated School
|
||||||
let latestReleaseTag = "v1.0.10";
|
// Default asset sizes & URLs (v1.0.27 latest release)
|
||||||
let winAssetSize = "19.6 MB";
|
let latestReleaseTag = "v1.0.27";
|
||||||
let apkAssetSize = "83.4 MB";
|
|
||||||
let publishedDateStr = "Latest Release";
|
let publishedDateStr = "Latest Release";
|
||||||
|
|
||||||
try {
|
let winAssetSize = "18.2 MB";
|
||||||
const res = await fetch("https://api.github.com/repos/ssbg04/TIS_RMS/releases/latest", {
|
let winDownloadUrl = "https://github.com/ssbg04/TIS_RMS/releases/download/v1.0.27/TIS_RMS_Client_Setup_v1.0.27.exe";
|
||||||
headers: { "User-Agent": "TIS-RMS-Web" }
|
|
||||||
});
|
let apkUniversalSize = "75.4 MB";
|
||||||
if (res.ok) {
|
let apkUniversalUrl = "https://github.com/ssbg04/TIS_RMS/releases/download/v1.0.27/TIS_RMS_Universal_v1.0.27.apk";
|
||||||
const data = await res.json();
|
|
||||||
if (data.tag_name) latestReleaseTag = data.tag_name;
|
let apk64Size = "29.4 MB";
|
||||||
if (data.published_at) {
|
let apk64Url = "https://github.com/ssbg04/TIS_RMS/releases/download/v1.0.27/TIS_RMS_64_v1.0.27.apk";
|
||||||
publishedDateStr = new Date(data.published_at).toLocaleDateString("en-US", {
|
|
||||||
month: "long",
|
let apk32Size = "27.4 MB";
|
||||||
day: "numeric",
|
let apk32Url = "https://github.com/ssbg04/TIS_RMS/releases/download/v1.0.27/TIS_RMS_32bit_v1.0.27.apk";
|
||||||
year: "numeric"
|
|
||||||
});
|
let releaseHtmlUrl = "https://github.com/ssbg04/TIS_RMS/releases/latest";
|
||||||
}
|
|
||||||
const winAsset = data.assets?.find((a: any) => a.name === "TIS_RMS_Client_Setup.exe" || a.name.endsWith(".exe"));
|
|
||||||
const apkAsset = data.assets?.find((a: any) => a.name === "TIS_RMS_Android_Universal.apk" || a.name.endsWith(".apk"));
|
|
||||||
if (winAsset) winAssetSize = `${(winAsset.size / (1024 * 1024)).toFixed(1)} MB`;
|
|
||||||
if (apkAsset) apkAssetSize = `${(apkAsset.size / (1024 * 1024)).toFixed(1)} MB`;
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
// Gracefully fallback to defaults
|
|
||||||
}
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<section id="downloads" class="bg-[#09110c] py-24 text-white border-t border-white/5">
|
<section id="downloads" class="relative bg-white py-24 border-t border-slate-200">
|
||||||
<div class="mx-auto max-w-5xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="text-center mb-14">
|
<div class="text-center mb-14">
|
||||||
<p class="text-sm font-semibold text-[#4ade80] uppercase tracking-widest mb-3">Downloads</p>
|
<div class="inline-flex items-center gap-1.5 rounded-full border border-emerald-200 bg-[#ecfdf5] px-3.5 py-1 text-xs font-semibold text-[#15803d] uppercase tracking-wider mb-3.5">
|
||||||
<h2 class="font-display text-3xl font-bold text-white sm:text-4xl">
|
Official Installers
|
||||||
Get the TIS RMS App
|
</div>
|
||||||
|
<h2 class="font-display text-3xl font-bold text-slate-900 sm:text-4xl">
|
||||||
|
Download TIS RMS
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mt-4 text-base text-slate-400 max-w-lg mx-auto leading-relaxed">
|
<p class="mt-3 text-base text-slate-600 max-w-xl mx-auto leading-relaxed">
|
||||||
Free for all Talisay Integrated School staff. Available for Windows and Android.
|
Free for all Talisay Integrated School staff. Available for Windows campus workstations and Android mobile devices.
|
||||||
</p>
|
</p>
|
||||||
<div class="mt-4 flex items-center justify-center gap-2 text-sm text-slate-500">
|
<div class="mt-4 flex flex-wrap items-center justify-center gap-2 text-sm text-slate-500">
|
||||||
<span id="release-version-label" class="text-slate-300 font-medium">{latestReleaseTag}</span>
|
<span id="release-version-label" class="inline-flex items-center rounded-md bg-emerald-50 px-2.5 py-0.5 text-xs font-semibold text-[#15803d] border border-emerald-200">
|
||||||
<span>·</span>
|
{latestReleaseTag}
|
||||||
|
</span>
|
||||||
|
<span class="text-slate-300">·</span>
|
||||||
<span id="release-date-label">{publishedDateStr}</span>
|
<span id="release-date-label">{publishedDateStr}</span>
|
||||||
<span>·</span>
|
<span class="text-slate-300">·</span>
|
||||||
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest" target="_blank" rel="noopener noreferrer" class="github-release-notes-link text-[#4ade80] hover:underline">Release Notes →</a>
|
<a href={releaseHtmlUrl} target="_blank" rel="noopener noreferrer" class="github-release-notes-link font-medium text-[#15803d] hover:underline">
|
||||||
|
Release Notes →
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Download Cards -->
|
<!-- Download Grid -->
|
||||||
<div class="grid gap-5 sm:grid-cols-2">
|
<div class="grid gap-6 lg:grid-cols-12">
|
||||||
|
|
||||||
<!-- Windows Card -->
|
<!-- Windows Card (lg:col-span-5) -->
|
||||||
<div class="flex flex-col rounded-2xl border border-white/8 bg-white/3 p-8">
|
<div class="lg:col-span-5 flex flex-col justify-between rounded-2xl border border-slate-200/90 bg-white p-7 sm:p-8 shadow-xs hover:shadow-md transition">
|
||||||
<div class="mb-6 flex h-14 w-14 items-center justify-center rounded-xl bg-blue-500/10 border border-blue-500/15">
|
<div>
|
||||||
<svg class="h-7 w-7 text-blue-400" fill="currentColor" viewBox="0 0 24 24">
|
<!-- Header icon & badge -->
|
||||||
<path d="M0 3.449L9.75 2.1v9.451H0m10.949-9.602L24 0v11.551H10.949M0 12.6h9.75v9.451L0 20.699M10.949 12.6H24V24l-12.9-1.801"/>
|
<div class="flex items-center justify-between mb-6">
|
||||||
</svg>
|
<div class="flex h-14 w-14 items-center justify-center rounded-2xl bg-blue-50 border border-blue-100 text-blue-600 shadow-xs">
|
||||||
|
<svg class="h-7 w-7" fill="currentColor" viewBox="0 0 24 24">
|
||||||
|
<path d="M0 3.449L9.75 2.1v9.451H0m10.949-9.602L24 0v11.551H10.949M0 12.6h9.75v9.451L0 20.699M10.949 12.6H24V24l-12.9-1.801"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<span class="rounded-full bg-slate-100 px-3 py-1 text-xs font-semibold text-slate-700">
|
||||||
|
Desktop Client
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3 class="font-display text-2xl font-bold text-slate-900">Windows</h3>
|
||||||
|
<p class="mt-2.5 text-sm text-slate-600 leading-relaxed">
|
||||||
|
The complete management application for teachers and registrars. Includes student lookup, document directory, and automated SF-10 Excel export.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Specifications list -->
|
||||||
|
<div class="mt-6 rounded-xl border border-slate-200/80 bg-slate-50/70 p-4 space-y-2 text-xs">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<span class="text-slate-500">Compatibility</span>
|
||||||
|
<span class="font-semibold text-slate-800">Windows 10 / 11 (64-bit)</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center justify-between border-t border-slate-200/60 pt-2">
|
||||||
|
<span class="text-slate-500">Installer Type</span>
|
||||||
|
<span class="font-semibold text-slate-800">NSIS One-Click Setup (.exe)</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center justify-between border-t border-slate-200/60 pt-2">
|
||||||
|
<span class="text-slate-500">Download Size</span>
|
||||||
|
<span id="win-release-size" class="font-bold text-[#15803d]">{winAssetSize}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="font-display text-xl font-bold text-white">Windows</h3>
|
<div class="mt-8">
|
||||||
<p class="mt-2 text-base text-slate-400 leading-relaxed flex-1">
|
<a
|
||||||
The main desktop app for teachers and registrars. One-click installer — works on your school network.
|
id="win-download-btn"
|
||||||
</p>
|
href={winDownloadUrl}
|
||||||
<p class="mt-3 text-sm text-slate-500">Windows 10 / 11 · <span id="win-release-size">{winAssetSize}</span></p>
|
class="flex w-full items-center justify-center gap-2.5 rounded-xl bg-[#15803d] px-5 py-3.5 text-base font-semibold text-white shadow-md shadow-[#15803d]/15 hover:bg-[#166534] transition"
|
||||||
|
>
|
||||||
<a
|
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
id="win-download-btn"
|
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||||
href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_Client_Setup.exe"
|
</svg>
|
||||||
class="mt-6 flex items-center justify-center gap-2.5 rounded-xl bg-[#16a34a] px-5 py-4 text-base font-semibold text-white hover:bg-[#15803d] transition shadow-lg shadow-[#16a34a]/20"
|
Download for Windows
|
||||||
>
|
</a>
|
||||||
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
<p class="mt-2.5 text-center text-xs text-slate-500">
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
Works offline on school local Wi-Fi or wired network.
|
||||||
</svg>
|
</p>
|
||||||
Download for Windows
|
</div>
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Android Card -->
|
<!-- Android Hub Card (lg:col-span-7) -->
|
||||||
<div class="flex flex-col rounded-2xl border border-white/8 bg-white/3 p-8">
|
<div class="lg:col-span-7 flex flex-col justify-between rounded-2xl border border-slate-200/90 bg-white p-7 sm:p-8 shadow-xs hover:shadow-md transition">
|
||||||
<div class="mb-6 flex h-14 w-14 items-center justify-center rounded-xl bg-[#4ade80]/10 border border-[#4ade80]/15">
|
<div>
|
||||||
<svg class="h-7 w-7 text-[#4ade80]" fill="currentColor" viewBox="0 0 24 24">
|
<!-- Header icon & badge -->
|
||||||
<path d="M17.523 15.341a1 1 0 01-1 1H7.477a1 1 0 01-1-1V8.659a1 1 0 011-1h9.046a1 1 0 011 1v6.682zM14.56 3.239l1.32-2.286a.25.25 0 00-.433-.25l-1.337 2.314A7.966 7.966 0 0012 2.659a7.966 7.966 0 00-2.11.358L8.553.703a.25.25 0 00-.433.25l1.32 2.286A8.02 8.02 0 004 9.659v.5h16v-.5a8.02 8.02 0 00-5.44-6.42zM9.5 7.659a.75.75 0 110-1.5.75.75 0 010 1.5zm5 0a.75.75 0 110-1.5.75.75 0 010 1.5zM4 21.659a2 2 0 002 2h.5v-8.5H4v6.5zm13.5 2a2 2 0 002-2v-6.5h-2.5v8.5h.5zM6.477 22.659H17.523V13.5H6.477v9.159z"/>
|
<div class="flex items-center justify-between mb-6">
|
||||||
</svg>
|
<div class="flex h-14 w-14 items-center justify-center rounded-2xl bg-[#ecfdf5] border border-emerald-200 text-[#15803d] shadow-xs">
|
||||||
|
<svg class="h-7 w-7" fill="currentColor" viewBox="0 0 24 24">
|
||||||
|
<path d="M17.523 15.341a1 1 0 01-1 1H7.477a1 1 0 01-1-1V8.659a1 1 0 011-1h9.046a1 1 0 011 1v6.682zM14.56 3.239l1.32-2.286a.25.25 0 00-.433-.25l-1.337 2.314A7.966 7.966 0 0012 2.659a7.966 7.966 0 00-2.11.358L8.553.703a.25.25 0 00-.433.25l1.32 2.286A8.02 8.02 0 004 9.659v.5h16v-.5a8.02 8.02 0 00-5.44-6.42zM9.5 7.659a.75.75 0 110-1.5.75.75 0 010 1.5zm5 0a.75.75 0 110-1.5.75.75 0 010 1.5zM4 21.659a2 2 0 002 2h.5v-8.5H4v6.5zm13.5 2a2 2 0 002-2v-6.5h-2.5v8.5h.5zM6.477 22.659H17.523V13.5H6.477v9.159z"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<span class="rounded-full bg-emerald-50 text-[#15803d] border border-emerald-200 px-3 py-1 text-xs font-semibold">
|
||||||
|
Android 8.0+
|
||||||
|
</span>
|
||||||
|
<span class="rounded-full bg-slate-100 px-3 py-1 text-xs font-semibold text-slate-700">
|
||||||
|
Mobile Scanner
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3 class="font-display text-2xl font-bold text-slate-900">Android APK Packages</h3>
|
||||||
|
<p class="mt-2.5 text-sm text-slate-600 leading-relaxed">
|
||||||
|
Scan paper SF-10 and SF-9 forms using your smartphone camera. Choose the package suited for your device:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- 3 APK Packages -->
|
||||||
|
<div class="mt-5 space-y-3">
|
||||||
|
|
||||||
|
<!-- 1. Universal APK -->
|
||||||
|
<div class="rounded-xl border-2 border-[#15803d]/40 bg-[#ecfdf5]/50 p-4 transition hover:bg-[#ecfdf5]/80">
|
||||||
|
<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-3">
|
||||||
|
<div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<span class="font-bold text-slate-900 text-sm">Universal APK</span>
|
||||||
|
<span class="rounded-md bg-[#15803d] text-white px-2 py-0.5 text-[11px] font-bold">Recommended</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-slate-600 mt-1">
|
||||||
|
Compatible with all Android phones (32-bit & 64-bit). If unsure, pick this.
|
||||||
|
</p>
|
||||||
|
<p class="text-xs font-medium text-slate-500 mt-1">
|
||||||
|
Size: <span id="apk-universal-size" class="font-bold text-[#15803d]">{apkUniversalSize}</span> · All architectures
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a
|
||||||
|
id="apk-universal-btn"
|
||||||
|
href={apkUniversalUrl}
|
||||||
|
class="shrink-0 inline-flex items-center justify-center gap-2 rounded-lg bg-[#15803d] px-4 py-2 text-xs font-semibold text-white shadow-xs hover:bg-[#166534] transition"
|
||||||
|
>
|
||||||
|
<svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||||
|
</svg>
|
||||||
|
Download Universal
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 2. 64-bit APK -->
|
||||||
|
<div class="rounded-xl border border-slate-200/90 bg-slate-50/70 p-4 transition hover:bg-slate-50">
|
||||||
|
<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-3">
|
||||||
|
<div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<span class="font-bold text-slate-900 text-sm">64-bit APK</span>
|
||||||
|
<span class="rounded-md bg-blue-50 text-blue-700 border border-blue-200 px-2 py-0.5 text-[11px] font-semibold">arm64-v8a</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-slate-600 mt-1">
|
||||||
|
Optimized for modern Android smartphones (2018+). Faster install, 60% smaller file.
|
||||||
|
</p>
|
||||||
|
<p class="text-xs font-medium text-slate-500 mt-1">
|
||||||
|
Size: <span id="apk-64-size" class="font-bold text-slate-800">{apk64Size}</span> · 64-bit ARM
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a
|
||||||
|
id="apk-64-btn"
|
||||||
|
href={apk64Url}
|
||||||
|
class="shrink-0 inline-flex items-center justify-center gap-2 rounded-lg border border-slate-300 bg-white px-4 py-2 text-xs font-semibold text-slate-800 shadow-xs hover:bg-slate-50 hover:border-slate-400 transition"
|
||||||
|
>
|
||||||
|
<svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||||
|
</svg>
|
||||||
|
Download 64-bit
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 3. 32-bit APK -->
|
||||||
|
<div class="rounded-xl border border-slate-200/90 bg-slate-50/70 p-4 transition hover:bg-slate-50">
|
||||||
|
<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-3">
|
||||||
|
<div>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<span class="font-bold text-slate-900 text-sm">32-bit APK</span>
|
||||||
|
<span class="rounded-md bg-amber-50 text-amber-700 border border-amber-200 px-2 py-0.5 text-[11px] font-semibold">armeabi-v7a</span>
|
||||||
|
</div>
|
||||||
|
<p class="text-xs text-slate-600 mt-1">
|
||||||
|
Tailored for older Android models or budget school handheld devices.
|
||||||
|
</p>
|
||||||
|
<p class="text-xs font-medium text-slate-500 mt-1">
|
||||||
|
Size: <span id="apk-32-size" class="font-bold text-slate-800">{apk32Size}</span> · 32-bit ARM
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a
|
||||||
|
id="apk-32-btn"
|
||||||
|
href={apk32Url}
|
||||||
|
class="shrink-0 inline-flex items-center justify-center gap-2 rounded-lg border border-slate-300 bg-white px-4 py-2 text-xs font-semibold text-slate-800 shadow-xs hover:bg-slate-50 hover:border-slate-400 transition"
|
||||||
|
>
|
||||||
|
<svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||||
|
</svg>
|
||||||
|
Download 32-bit
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="font-display text-xl font-bold text-white">Android</h3>
|
<!-- Android installation tip -->
|
||||||
<p class="mt-2 text-base text-slate-400 leading-relaxed flex-1">
|
<div class="mt-6 pt-4 border-t border-slate-200/80 flex items-start gap-2.5 text-xs text-slate-500">
|
||||||
Use your phone to scan paper documents. The app reads student details automatically — no Play Store needed.
|
<span class="text-base text-amber-500 leading-none">💡</span>
|
||||||
</p>
|
<span>
|
||||||
<p class="mt-3 text-sm text-slate-500">Android 8.0+ · <span id="apk-release-size">{apkAssetSize}</span></p>
|
<strong class="text-slate-700">Android Tip:</strong> When installing, allow <strong class="text-slate-700 font-semibold">"Install unknown apps"</strong> or <strong class="text-slate-700 font-semibold">"Unknown sources"</strong> in your device settings.
|
||||||
|
</span>
|
||||||
<a
|
</div>
|
||||||
id="apk-download-btn"
|
|
||||||
href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_Android_Universal.apk"
|
|
||||||
class="mt-6 flex items-center justify-center gap-2.5 rounded-xl border border-white/12 bg-white/6 px-5 py-4 text-base font-semibold text-white hover:bg-white/10 transition"
|
|
||||||
>
|
|
||||||
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
|
||||||
</svg>
|
|
||||||
Download for Android
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- IT Admin / Server note -->
|
<!-- IT Admin / Campus Server Note -->
|
||||||
<div class="mt-6 rounded-2xl border border-white/6 bg-white/2 p-6 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
|
<div class="mt-8 rounded-2xl border border-slate-200 bg-slate-50/80 p-6 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 shadow-xs">
|
||||||
<div>
|
<div>
|
||||||
<p class="text-sm font-semibold text-slate-300">For IT Admins — Campus Server Setup</p>
|
<p class="text-sm font-bold text-slate-900">For IT Admins — Campus Server Setup</p>
|
||||||
<p class="mt-1 text-sm text-slate-500">The backend server runs on Node.js on a designated school PC. Visit GitHub for setup instructions.</p>
|
<p class="mt-1 text-sm text-slate-600">The backend server runs locally on Node.js and SQLite on a designated school computer. Setup guides and API endpoints are on GitHub.</p>
|
||||||
</div>
|
</div>
|
||||||
<a
|
<a
|
||||||
href="https://github.com/ssbg04/TIS_RMS"
|
href="https://github.com/ssbg04/TIS_RMS"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
class="shrink-0 inline-flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2.5 text-sm font-medium text-slate-300 hover:bg-white/10 hover:text-white transition"
|
class="shrink-0 inline-flex items-center gap-2 rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm font-semibold text-slate-700 hover:bg-slate-50 hover:text-slate-900 transition shadow-xs"
|
||||||
>
|
>
|
||||||
<svg class="h-4 w-4" fill="currentColor" viewBox="0 0 24 24">
|
<svg class="h-4 w-4" fill="currentColor" viewBox="0 0 24 24">
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.53 1.032 1.53 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" />
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.53 1.032 1.53 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" />
|
||||||
</svg>
|
</svg>
|
||||||
View on GitHub
|
View GitHub Repository
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Android install note -->
|
|
||||||
<p class="mt-6 text-center text-sm text-slate-600">
|
|
||||||
For Android: enable <strong class="text-slate-400">Install unknown apps</strong> in your device settings before installing the APK.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -150,11 +267,25 @@ try {
|
|||||||
})
|
})
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
const winAsset = release.assets?.find(
|
const assets: any[] = release.assets || [];
|
||||||
(a: any) => a.name === "TIS_RMS_Client_Setup.exe" || a.name.endsWith(".exe")
|
|
||||||
|
// Windows
|
||||||
|
const winAsset = assets.find((a: any) => a.name.endsWith(".exe"));
|
||||||
|
// Universal APK
|
||||||
|
const universalAsset = assets.find((a: any) =>
|
||||||
|
a.name.toLowerCase().includes("universal") && a.name.endsWith(".apk")
|
||||||
);
|
);
|
||||||
const apkAsset = release.assets?.find(
|
// 64-bit APK
|
||||||
(a: any) => a.name === "TIS_RMS_Android_Universal.apk" || a.name.endsWith(".apk")
|
const asset64 = assets.find((a: any) =>
|
||||||
|
(a.name.includes("64") || a.name.toLowerCase().includes("arm64")) &&
|
||||||
|
!a.name.toLowerCase().includes("universal") &&
|
||||||
|
a.name.endsWith(".apk")
|
||||||
|
);
|
||||||
|
// 32-bit APK
|
||||||
|
const asset32 = assets.find((a: any) =>
|
||||||
|
(a.name.includes("32") || a.name.toLowerCase().includes("v7a")) &&
|
||||||
|
!a.name.toLowerCase().includes("universal") &&
|
||||||
|
a.name.endsWith(".apk")
|
||||||
);
|
);
|
||||||
|
|
||||||
const versionLabel = document.getElementById("release-version-label");
|
const versionLabel = document.getElementById("release-version-label");
|
||||||
@@ -169,11 +300,25 @@ try {
|
|||||||
if (winBtn && winAsset.browser_download_url) winBtn.href = winAsset.browser_download_url;
|
if (winBtn && winAsset.browser_download_url) winBtn.href = winAsset.browser_download_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (apkAsset) {
|
if (universalAsset) {
|
||||||
const apkSize = document.getElementById("apk-release-size");
|
const univSize = document.getElementById("apk-universal-size");
|
||||||
if (apkSize) apkSize.textContent = `${(apkAsset.size / (1024 * 1024)).toFixed(1)} MB`;
|
if (univSize) univSize.textContent = `${(universalAsset.size / (1024 * 1024)).toFixed(1)} MB`;
|
||||||
const apkBtn = document.getElementById("apk-download-btn") as HTMLAnchorElement | null;
|
const univBtn = document.getElementById("apk-universal-btn") as HTMLAnchorElement | null;
|
||||||
if (apkBtn && apkAsset.browser_download_url) apkBtn.href = apkAsset.browser_download_url;
|
if (univBtn && universalAsset.browser_download_url) univBtn.href = universalAsset.browser_download_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (asset64) {
|
||||||
|
const size64 = document.getElementById("apk-64-size");
|
||||||
|
if (size64) size64.textContent = `${(asset64.size / (1024 * 1024)).toFixed(1)} MB`;
|
||||||
|
const btn64 = document.getElementById("apk-64-btn") as HTMLAnchorElement | null;
|
||||||
|
if (btn64 && asset64.browser_download_url) btn64.href = asset64.browser_download_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (asset32) {
|
||||||
|
const size32 = document.getElementById("apk-32-size");
|
||||||
|
if (size32) size32.textContent = `${(asset32.size / (1024 * 1024)).toFixed(1)} MB`;
|
||||||
|
const btn32 = document.getElementById("apk-32-btn") as HTMLAnchorElement | null;
|
||||||
|
if (btn32 && asset32.browser_download_url) btn32.href = asset32.browser_download_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
const notesLinks = document.querySelectorAll<HTMLAnchorElement>(".github-release-notes-link");
|
const notesLinks = document.querySelectorAll<HTMLAnchorElement>(".github-release-notes-link");
|
||||||
|
|||||||
@@ -34,27 +34,31 @@ const featuresList = [
|
|||||||
];
|
];
|
||||||
---
|
---
|
||||||
|
|
||||||
<section id="features" class="relative bg-[#09110c] py-24 border-t border-white/5 text-white">
|
<section id="features" class="relative bg-white py-20 border-t border-slate-200">
|
||||||
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mx-auto max-w-2xl text-center">
|
<div class="mx-auto max-w-2xl text-center">
|
||||||
<p class="text-sm font-semibold text-[#4ade80] uppercase tracking-widest mb-3">Features</p>
|
<div class="inline-flex items-center gap-1.5 rounded-full border border-emerald-200 bg-[#ecfdf5] px-3.5 py-1 text-xs font-semibold text-[#15803d] uppercase tracking-wider mb-3.5">
|
||||||
<h2 class="font-display text-3xl font-bold text-white sm:text-4xl">
|
Features
|
||||||
|
</div>
|
||||||
|
<h2 class="font-display text-3xl font-bold text-slate-900 sm:text-4xl">
|
||||||
Everything you need to manage school records.
|
Everything you need to manage school records.
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mt-4 text-base text-slate-400 leading-relaxed">
|
<p class="mt-3 text-base text-slate-600 leading-relaxed">
|
||||||
Simple tools to help school staff register, organize, and access student information — without the complexity.
|
Simple tools to help school staff register, organize, and access student information — without the complexity.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Feature Grid -->
|
<!-- Feature Grid -->
|
||||||
<div class="mt-14 grid gap-5 sm:grid-cols-2 lg:grid-cols-3">
|
<div class="mt-12 grid gap-5 sm:grid-cols-2 lg:grid-cols-3">
|
||||||
{featuresList.map((item) => (
|
{featuresList.map((item) => (
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-6 transition hover:bg-white/6 hover:border-white/14">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-6 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="text-3xl mb-4">{item.icon}</div>
|
<div class="flex h-12 w-12 items-center justify-center rounded-xl bg-slate-50 border border-slate-100 text-2xl mb-4 shadow-xs">
|
||||||
<h3 class="font-display text-lg font-semibold text-white">{item.title}</h3>
|
{item.icon}
|
||||||
<p class="mt-2 text-sm text-slate-400 leading-relaxed">{item.description}</p>
|
</div>
|
||||||
|
<h3 class="font-display text-base font-bold text-slate-900">{item.title}</h3>
|
||||||
|
<p class="mt-2 text-sm text-slate-600 leading-relaxed">{item.description}</p>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+38
-24
@@ -3,13 +3,13 @@
|
|||||||
const currentYear = new Date().getFullYear();
|
const currentYear = new Date().getFullYear();
|
||||||
---
|
---
|
||||||
|
|
||||||
<footer class="bg-[#070e0a] border-t border-white/5 text-slate-400 py-12">
|
<footer class="bg-slate-50 border-t border-slate-200 text-slate-600 py-12">
|
||||||
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<div class="grid gap-10 md:grid-cols-3 pb-10 border-b border-white/5">
|
<div class="grid gap-10 md:grid-cols-4 pb-10 border-b border-slate-200">
|
||||||
|
|
||||||
<!-- Brand -->
|
<!-- Brand -->
|
||||||
<div class="space-y-3">
|
<div class="space-y-3 md:col-span-2">
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
<img
|
<img
|
||||||
src="/tis_logo.png"
|
src="/tis_logo.png"
|
||||||
@@ -17,48 +17,62 @@ const currentYear = new Date().getFullYear();
|
|||||||
class="h-9 w-9 object-contain"
|
class="h-9 w-9 object-contain"
|
||||||
/>
|
/>
|
||||||
<div>
|
<div>
|
||||||
<div class="font-display text-base font-bold text-white">TIS RMS</div>
|
<div class="font-display text-base font-bold text-slate-900">TIS RMS</div>
|
||||||
<div class="text-xs text-amber-400">Talisay Integrated School</div>
|
<div class="text-xs text-[#15803d] font-semibold">Talisay Integrated School</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-sm text-slate-500 leading-relaxed max-w-xs">
|
<p class="text-sm text-slate-500 leading-relaxed max-w-sm">
|
||||||
A records management system for Talisay Integrated School in Tiaong, Quezon, Philippines. Designed to digitize and manage student records from old documents dated 2021 onwards.
|
A dedicated records management system for Talisay Integrated School in Tiaong, Quezon, Philippines. Designed to digitize and manage learner basic profiles from historical documents 2021 onwards.
|
||||||
</p>
|
</p>
|
||||||
|
<div class="pt-1 text-xs text-slate-400">
|
||||||
|
DepEd Division of Quezon · Region IV-A CALABARZON
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Navigation -->
|
<!-- Navigation -->
|
||||||
<div class="space-y-3">
|
<div class="space-y-3">
|
||||||
<h4 class="text-sm font-semibold text-slate-200">Navigation</h4>
|
<h4 class="text-sm font-bold text-slate-900">Navigation</h4>
|
||||||
<ul class="space-y-2 text-sm">
|
<ul class="space-y-2 text-sm">
|
||||||
<li><a href="#showcase" class="hover:text-white transition">App Preview</a></li>
|
<li><a href="#showcase" class="hover:text-slate-900 transition">App Preview</a></li>
|
||||||
<li><a href="#school-forms" class="hover:text-white transition">School Forms</a></li>
|
<li><a href="#school-forms" class="hover:text-slate-900 transition">School Forms</a></li>
|
||||||
<li><a href="#ocr-pipeline" class="hover:text-white transition">Document Scanning</a></li>
|
<li><a href="#ocr-pipeline" class="hover:text-slate-900 transition">Document Scanning</a></li>
|
||||||
<li><a href="#features" class="hover:text-white transition">Features</a></li>
|
<li><a href="#features" class="hover:text-slate-900 transition">Features</a></li>
|
||||||
<li><a href="#downloads" class="hover:text-white transition">Downloads</a></li>
|
<li><a href="#downloads" class="hover:text-slate-900 transition">Downloads Hub</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Downloads -->
|
<!-- Downloads -->
|
||||||
<div class="space-y-3">
|
<div class="space-y-3">
|
||||||
<h4 class="text-sm font-semibold text-slate-200">Downloads</h4>
|
<h4 class="text-sm font-bold text-slate-900">Direct Downloads</h4>
|
||||||
<ul class="space-y-2 text-sm">
|
<ul class="space-y-2 text-sm">
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_Client_Setup.exe" target="_blank" rel="noopener noreferrer" class="hover:text-white transition flex items-center gap-1.5">
|
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_Client_Setup_v1.0.27.exe" target="_blank" rel="noopener noreferrer" class="hover:text-slate-900 transition flex items-center gap-1.5">
|
||||||
Windows App (.exe)
|
<span>Windows App (.exe)</span>
|
||||||
<span class="text-xs text-[#4ade80]">Latest</span>
|
<span class="text-[11px] font-semibold text-[#15803d] bg-emerald-50 px-1.5 py-0.2 rounded border border-emerald-200">Win 10/11</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_Android_Universal.apk" target="_blank" rel="noopener noreferrer" class="hover:text-white transition flex items-center gap-1.5">
|
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_Universal_v1.0.27.apk" target="_blank" rel="noopener noreferrer" class="hover:text-slate-900 transition flex items-center gap-1.5">
|
||||||
Android App (.apk)
|
<span>Android Universal (.apk)</span>
|
||||||
<span class="text-xs text-[#4ade80]">Latest</span>
|
<span class="text-[11px] font-semibold text-[#15803d] bg-emerald-50 px-1.5 py-0.2 rounded border border-emerald-200">All Devices</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest" target="_blank" rel="noopener noreferrer" class="hover:text-white transition">Release Notes</a>
|
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_64_v1.0.27.apk" target="_blank" rel="noopener noreferrer" class="hover:text-slate-900 transition flex items-center gap-1.5">
|
||||||
|
<span>Android 64-bit (.apk)</span>
|
||||||
|
<span class="text-[11px] text-blue-600 bg-blue-50 px-1.5 py-0.2 rounded border border-blue-200">arm64</span>
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://github.com/ssbg04/TIS_RMS" target="_blank" rel="noopener noreferrer" class="hover:text-white transition">GitHub Repository</a>
|
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest/download/TIS_RMS_32bit_v1.0.27.apk" target="_blank" rel="noopener noreferrer" class="hover:text-slate-900 transition flex items-center gap-1.5">
|
||||||
|
<span>Android 32-bit (.apk)</span>
|
||||||
|
<span class="text-[11px] text-amber-700 bg-amber-50 px-1.5 py-0.2 rounded border border-amber-200">v7a</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="pt-1">
|
||||||
|
<a href="https://github.com/ssbg04/TIS_RMS/releases/latest" target="_blank" rel="noopener noreferrer" class="text-xs text-slate-500 hover:text-slate-800 transition">
|
||||||
|
View GitHub Releases →
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -66,9 +80,9 @@ const currentYear = new Date().getFullYear();
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Bottom -->
|
<!-- Bottom -->
|
||||||
<div class="mt-8 flex flex-col sm:flex-row items-center justify-between gap-3 text-xs text-slate-600">
|
<div class="mt-8 flex flex-col sm:flex-row items-center justify-between gap-3 text-xs text-slate-500">
|
||||||
<div>© {currentYear} Talisay Integrated School — TIS RMS. Tiaong, Quezon, Philippines.</div>
|
<div>© {currentYear} Talisay Integrated School — TIS RMS. Tiaong, Quezon, Philippines.</div>
|
||||||
<div>Developed by <strong class="text-slate-400">BSIT3DSB</strong></div>
|
<div>Developed by <strong class="text-slate-700 font-semibold">BSIT3DSB</strong></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+36
-36
@@ -2,31 +2,31 @@
|
|||||||
// Hero component - Talisay Integrated School Records Management System
|
// Hero component - Talisay Integrated School Records Management System
|
||||||
---
|
---
|
||||||
|
|
||||||
<section class="relative overflow-hidden pt-32 pb-24 lg:pt-40 lg:pb-32">
|
<section class="relative overflow-hidden pt-32 pb-20 lg:pt-40 lg:pb-28">
|
||||||
|
|
||||||
<!-- Soft background glow -->
|
<!-- Soft ambient background light -->
|
||||||
<div class="absolute inset-0 -z-10 pointer-events-none">
|
<div class="absolute inset-0 -z-10 pointer-events-none">
|
||||||
<div class="absolute left-1/2 -top-24 h-[480px] w-[700px] -translate-x-1/2 rounded-full bg-[#16a34a]/15 blur-3xl"></div>
|
<div class="absolute left-1/2 -top-24 h-[440px] w-[720px] -translate-x-1/2 rounded-full bg-emerald-500/10 blur-3xl"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mx-auto max-w-4xl px-5 sm:px-8 text-center">
|
<div class="mx-auto max-w-4xl px-5 sm:px-8 text-center">
|
||||||
|
|
||||||
<!-- School badge -->
|
<!-- School badge -->
|
||||||
<div class="mb-6 inline-flex items-center gap-2.5 rounded-full border border-white/10 bg-white/5 px-4 py-1.5 text-sm text-slate-300">
|
<div class="mb-6 inline-flex items-center gap-2.5 rounded-full border border-slate-200 bg-white px-4 py-1.5 text-sm text-slate-700 shadow-xs">
|
||||||
<img src="/tis_logo.png" alt="TIS Logo" class="h-5 w-5 object-contain" width="20" height="20" />
|
<img src="/tis_logo.png" alt="TIS Logo" class="h-5 w-5 object-contain" width="20" height="20" />
|
||||||
<span class="text-amber-400 font-semibold">Talisay Integrated School</span>
|
<span class="text-[#15803d] font-semibold">Talisay Integrated School</span>
|
||||||
<span class="text-slate-500">•</span>
|
<span class="text-slate-300">•</span>
|
||||||
<span>Tiaong, Quezon</span>
|
<span class="text-slate-600">Tiaong, Quezon</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Headline -->
|
<!-- Headline -->
|
||||||
<h1 class="font-display text-4xl font-extrabold tracking-tight text-white sm:text-6xl lg:text-7xl">
|
<h1 class="font-display text-4xl font-extrabold tracking-tight text-slate-900 sm:text-6xl lg:text-7xl">
|
||||||
Student Records,<br class="hidden sm:inline" />
|
Student Records,<br class="hidden sm:inline" />
|
||||||
<span class="text-[#4ade80]"> Made Simple.</span>
|
<span class="text-[#15803d]"> Made Simple.</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<!-- Subtitle -->
|
<!-- Subtitle -->
|
||||||
<p class="mt-6 text-lg text-slate-300 leading-relaxed max-w-2xl mx-auto">
|
<p class="mt-6 text-lg text-slate-600 leading-relaxed max-w-2xl mx-auto">
|
||||||
TIS RMS helps Talisay Integrated School staff digitize, organize, and look up student records from old school documents — all stored safely on school computers, no internet needed.
|
TIS RMS helps Talisay Integrated School staff digitize, organize, and look up student records from old school documents — all stored safely on school computers, no internet needed.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<div class="mt-10 flex flex-wrap items-center justify-center gap-4">
|
<div class="mt-10 flex flex-wrap items-center justify-center gap-4">
|
||||||
<a
|
<a
|
||||||
href="#downloads"
|
href="#downloads"
|
||||||
class="inline-flex items-center gap-2 rounded-xl bg-[#16a34a] px-7 py-3.5 text-base font-semibold text-white shadow-lg shadow-[#16a34a]/20 transition hover:bg-[#15803d]"
|
class="inline-flex items-center gap-2 rounded-xl bg-[#15803d] px-7 py-3.5 text-base font-semibold text-white shadow-md shadow-[#15803d]/20 transition hover:bg-[#166534]"
|
||||||
>
|
>
|
||||||
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||||
@@ -44,58 +44,58 @@
|
|||||||
|
|
||||||
<a
|
<a
|
||||||
href="#showcase"
|
href="#showcase"
|
||||||
class="inline-flex items-center rounded-xl border border-white/10 bg-white/5 px-7 py-3.5 text-base font-semibold text-slate-200 transition hover:bg-white/10 hover:text-white"
|
class="inline-flex items-center rounded-xl border border-slate-200 bg-white px-7 py-3.5 text-base font-semibold text-slate-700 shadow-xs transition hover:bg-slate-50 hover:border-slate-300"
|
||||||
>
|
>
|
||||||
See How It Looks
|
See How It Looks
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Quick facts -->
|
<!-- Quick facts -->
|
||||||
<div class="mt-10 flex flex-wrap items-center justify-center gap-3 text-sm text-slate-400">
|
<div class="mt-10 flex flex-wrap items-center justify-center gap-3 text-sm text-slate-600">
|
||||||
<span class="flex items-center gap-1.5">
|
<span class="flex items-center gap-1.5">
|
||||||
<span class="h-1.5 w-1.5 rounded-full bg-[#4ade80]"></span>
|
<span class="h-2 w-2 rounded-full bg-[#15803d]"></span>
|
||||||
Windows & Android
|
Windows & Android
|
||||||
</span>
|
</span>
|
||||||
<span class="text-slate-600">·</span>
|
<span class="text-slate-300">·</span>
|
||||||
<span class="flex items-center gap-1.5">
|
<span class="flex items-center gap-1.5">
|
||||||
<span class="h-1.5 w-1.5 rounded-full bg-amber-400"></span>
|
<span class="h-2 w-2 rounded-full bg-amber-500"></span>
|
||||||
100% Offline — Works on School Wi-Fi
|
100% Offline — Works on School Wi-Fi
|
||||||
</span>
|
</span>
|
||||||
<span class="text-slate-600">·</span>
|
<span class="text-slate-300">·</span>
|
||||||
<span class="flex items-center gap-1.5">
|
<span class="flex items-center gap-1.5">
|
||||||
<span class="h-1.5 w-1.5 rounded-full bg-[#4ade80]"></span>
|
<span class="h-2 w-2 rounded-full bg-[#15803d]"></span>
|
||||||
Free for All TIS Staff
|
Free for All TIS Staff
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Simple 4-highlight cards -->
|
<!-- 4-highlight cards -->
|
||||||
<div class="mx-auto mt-20 max-w-5xl px-5 sm:px-8">
|
<div class="mx-auto mt-16 max-w-5xl px-5 sm:px-8">
|
||||||
<div class="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4">
|
<div class="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4">
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-5 transition hover:bg-white/6">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-5 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="text-2xl mb-3">📋</div>
|
<div class="flex h-11 w-11 items-center justify-center rounded-xl bg-[#ecfdf5] text-xl mb-3.5">📋</div>
|
||||||
<h3 class="font-display text-base font-semibold text-white">SF-10 & SF-9 Records</h3>
|
<h3 class="font-display text-base font-bold text-slate-900">SF-10 & SF-9 Records</h3>
|
||||||
<p class="mt-1.5 text-sm text-slate-400 leading-relaxed">Register student basic info from official school forms quickly.</p>
|
<p class="mt-1.5 text-sm text-slate-600 leading-relaxed">Register student basic info from official school forms quickly.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-5 transition hover:bg-white/6">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-5 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="text-2xl mb-3">🗂️</div>
|
<div class="flex h-11 w-11 items-center justify-center rounded-xl bg-[#eff6ff] text-xl mb-3.5">🗂️</div>
|
||||||
<h3 class="font-display text-base font-semibold text-white">Document Archive</h3>
|
<h3 class="font-display text-base font-bold text-slate-900">Document Archive</h3>
|
||||||
<p class="mt-1.5 text-sm text-slate-400 leading-relaxed">Organize historical student records from 2021 onwards in one place.</p>
|
<p class="mt-1.5 text-sm text-slate-600 leading-relaxed">Organize historical student records from 2021 onwards in one place.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-5 transition hover:bg-white/6">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-5 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="text-2xl mb-3">📷</div>
|
<div class="flex h-11 w-11 items-center justify-center rounded-xl bg-[#fffbeb] text-xl mb-3.5">📷</div>
|
||||||
<h3 class="font-display text-base font-semibold text-white">Scan Documents</h3>
|
<h3 class="font-display text-base font-bold text-slate-900">Scan Documents</h3>
|
||||||
<p class="mt-1.5 text-sm text-slate-400 leading-relaxed">Use your Android phone to scan paper documents — the app reads the text automatically.</p>
|
<p class="mt-1.5 text-sm text-slate-600 leading-relaxed">Use your Android phone to scan paper documents — the app reads text automatically.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-2xl border border-white/8 bg-white/3 p-5 transition hover:bg-white/6">
|
<div class="rounded-2xl border border-slate-200/90 bg-white p-5 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="text-2xl mb-3">🔒</div>
|
<div class="flex h-11 w-11 items-center justify-center rounded-xl bg-[#ecfdf5] text-xl mb-3.5">🔒</div>
|
||||||
<h3 class="font-display text-base font-semibold text-white">Private & Offline</h3>
|
<h3 class="font-display text-base font-bold text-slate-900">Private & Offline</h3>
|
||||||
<p class="mt-1.5 text-sm text-slate-400 leading-relaxed">Student data stays on school computers. No cloud, no internet required.</p>
|
<p class="mt-1.5 text-sm text-slate-600 leading-relaxed">Student data stays on school computers. No cloud, no external servers required.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+28
-19
@@ -2,30 +2,31 @@
|
|||||||
// Navbar component - Talisay Integrated School RMS
|
// Navbar component - Talisay Integrated School RMS
|
||||||
---
|
---
|
||||||
|
|
||||||
<header class="fixed left-0 right-0 top-0 z-50 border-b border-white/5 bg-[#09110c]/90 backdrop-blur-xl">
|
<header class="fixed left-0 right-0 top-0 z-50 border-b border-slate-200/80 bg-white/90 backdrop-blur-md shadow-xs">
|
||||||
<div class="mx-auto flex max-w-6xl items-center justify-between px-5 py-3.5 sm:px-8">
|
<div class="mx-auto flex max-w-6xl items-center justify-between px-5 py-3.5 sm:px-8">
|
||||||
|
|
||||||
<!-- Brand -->
|
<!-- Brand -->
|
||||||
<a href="#" class="flex items-center gap-3">
|
<a href="#" class="flex items-center gap-3 group">
|
||||||
<img
|
<img
|
||||||
src="/tis_logo.png"
|
src="/tis_logo.png"
|
||||||
alt="Talisay Integrated School"
|
alt="Talisay Integrated School"
|
||||||
class="h-9 w-9 object-contain"
|
class="h-9 w-9 object-contain transition-transform group-hover:scale-105"
|
||||||
width="36"
|
width="36"
|
||||||
height="36"
|
height="36"
|
||||||
/>
|
/>
|
||||||
<div>
|
<div>
|
||||||
<div class="font-display text-base font-bold text-white leading-none">TIS RMS</div>
|
<div class="font-display text-base font-bold text-slate-900 leading-none">TIS RMS</div>
|
||||||
<div class="text-xs text-slate-400 mt-0.5">Talisay Integrated School</div>
|
<div class="text-xs text-slate-500 mt-0.5 font-normal">Talisay Integrated School</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Desktop Navigation -->
|
<!-- Desktop Navigation -->
|
||||||
<nav class="hidden items-center gap-7 text-sm text-slate-300 lg:flex">
|
<nav class="hidden items-center gap-7 text-sm font-medium text-slate-600 lg:flex">
|
||||||
<a href="#showcase" class="transition hover:text-white">App Preview</a>
|
<a href="#showcase" class="transition hover:text-slate-900">App Preview</a>
|
||||||
<a href="#school-forms" class="transition hover:text-white">School Forms</a>
|
<a href="#school-forms" class="transition hover:text-slate-900">School Forms</a>
|
||||||
<a href="#features" class="transition hover:text-white">Features</a>
|
<a href="#ocr-pipeline" class="transition hover:text-slate-900">Scanning</a>
|
||||||
<a href="#downloads" class="transition hover:text-white">Downloads</a>
|
<a href="#features" class="transition hover:text-slate-900">Features</a>
|
||||||
|
<a href="#downloads" class="transition hover:text-slate-900">Downloads</a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- Actions -->
|
<!-- Actions -->
|
||||||
@@ -34,15 +35,21 @@
|
|||||||
href="https://github.com/ssbg04/TIS_RMS"
|
href="https://github.com/ssbg04/TIS_RMS"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
class="hidden items-center rounded-lg border border-white/10 bg-white/5 px-3.5 py-2 text-sm text-slate-300 transition hover:bg-white/10 hover:text-white sm:inline-flex"
|
class="hidden items-center rounded-lg border border-slate-200 bg-white px-3.5 py-2 text-sm font-medium text-slate-700 transition hover:bg-slate-50 hover:border-slate-300 sm:inline-flex shadow-xs"
|
||||||
>
|
>
|
||||||
|
<svg class="h-4 w-4 mr-1.5 text-slate-600" fill="currentColor" viewBox="0 0 24 24">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.53 1.032 1.53 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" />
|
||||||
|
</svg>
|
||||||
GitHub
|
GitHub
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="#downloads"
|
href="#downloads"
|
||||||
class="inline-flex items-center rounded-lg bg-[#16a34a] px-4 py-2 text-sm font-semibold text-white transition hover:bg-[#15803d]"
|
class="inline-flex items-center gap-1.5 rounded-lg bg-[#15803d] px-4 py-2 text-sm font-semibold text-white transition hover:bg-[#166534] shadow-sm"
|
||||||
>
|
>
|
||||||
|
<svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||||
|
</svg>
|
||||||
Download
|
Download
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
@@ -50,7 +57,7 @@
|
|||||||
<button
|
<button
|
||||||
id="mobile-menu-btn"
|
id="mobile-menu-btn"
|
||||||
type="button"
|
type="button"
|
||||||
class="inline-flex items-center justify-center rounded-lg border border-white/10 bg-white/5 p-2 text-slate-300 hover:text-white lg:hidden"
|
class="inline-flex items-center justify-center rounded-lg border border-slate-200 bg-white p-2 text-slate-700 hover:bg-slate-50 lg:hidden shadow-xs"
|
||||||
aria-label="Toggle Navigation Menu"
|
aria-label="Toggle Navigation Menu"
|
||||||
>
|
>
|
||||||
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
@@ -61,12 +68,14 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Mobile Menu -->
|
<!-- Mobile Menu -->
|
||||||
<div id="mobile-menu" class="hidden border-b border-white/5 bg-[#09110c] px-5 py-4 lg:hidden">
|
<div id="mobile-menu" class="hidden border-b border-slate-200 bg-white px-5 py-4 lg:hidden shadow-md">
|
||||||
<nav class="flex flex-col gap-3 text-sm text-slate-200">
|
<nav class="flex flex-col gap-3 text-sm font-medium text-slate-700">
|
||||||
<a href="#showcase" class="py-1 transition hover:text-white">App Preview</a>
|
<a href="#showcase" class="py-1 transition hover:text-[#15803d]">App Preview</a>
|
||||||
<a href="#school-forms" class="py-1 transition hover:text-white">School Forms</a>
|
<a href="#school-forms" class="py-1 transition hover:text-[#15803d]">School Forms</a>
|
||||||
<a href="#features" class="py-1 transition hover:text-white">Features</a>
|
<a href="#ocr-pipeline" class="py-1 transition hover:text-[#15803d]">Document Scanning</a>
|
||||||
<a href="#downloads" class="py-1 transition hover:text-white">Downloads</a>
|
<a href="#features" class="py-1 transition hover:text-[#15803d]">Features</a>
|
||||||
|
<a href="#downloads" class="py-1 transition hover:text-[#15803d]">Downloads</a>
|
||||||
|
<a href="https://github.com/ssbg04/TIS_RMS" target="_blank" rel="noopener noreferrer" class="py-1 transition text-slate-500 hover:text-slate-800">View on GitHub →</a>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -2,46 +2,48 @@
|
|||||||
// OcrPipeline component - How document scanning works, in plain English
|
// OcrPipeline component - How document scanning works, in plain English
|
||||||
---
|
---
|
||||||
|
|
||||||
<section id="ocr-pipeline" class="relative bg-[#09110c] py-24 border-t border-white/5 text-white">
|
<section id="ocr-pipeline" class="relative bg-white py-20 border-t border-slate-200">
|
||||||
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mx-auto max-w-2xl text-center">
|
<div class="mx-auto max-w-2xl text-center">
|
||||||
<p class="text-sm font-semibold text-[#4ade80] uppercase tracking-widest mb-3">Document Scanning</p>
|
<div class="inline-flex items-center gap-1.5 rounded-full border border-emerald-200 bg-[#ecfdf5] px-3.5 py-1 text-xs font-semibold text-[#15803d] uppercase tracking-wider mb-3.5">
|
||||||
<h2 class="font-display text-3xl font-bold text-white sm:text-4xl">
|
Document Scanning
|
||||||
|
</div>
|
||||||
|
<h2 class="font-display text-3xl font-bold text-slate-900 sm:text-4xl">
|
||||||
How scanning a document works.
|
How scanning a document works.
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mt-4 text-base text-slate-400 leading-relaxed">
|
<p class="mt-3 text-base text-slate-600 leading-relaxed">
|
||||||
Point your Android phone at a paper document — the app does the rest. No manual typing required.
|
Point your Android phone at a paper document — the app does the rest. No manual typing required.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 3-step flow -->
|
<!-- 3-step flow -->
|
||||||
<div class="mt-14 grid gap-5 sm:grid-cols-3">
|
<div class="mt-12 grid gap-5 sm:grid-cols-3">
|
||||||
|
|
||||||
<div class="relative rounded-2xl border border-white/8 bg-white/3 p-7">
|
<div class="relative rounded-2xl border border-slate-200/90 bg-white p-7 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="absolute -top-4 left-7 flex h-8 w-8 items-center justify-center rounded-full bg-[#16a34a] text-sm font-bold text-white">1</div>
|
<div class="absolute -top-4 left-7 flex h-8 w-8 items-center justify-center rounded-full bg-[#15803d] text-sm font-bold text-white shadow-xs">1</div>
|
||||||
<div class="text-3xl mt-2 mb-4">📸</div>
|
<div class="flex h-12 w-12 items-center justify-center rounded-xl bg-[#ecfdf5] text-2xl mt-2 mb-4">📸</div>
|
||||||
<h3 class="font-display text-lg font-semibold text-white">Scan or Upload</h3>
|
<h3 class="font-display text-lg font-bold text-slate-900">Scan or Upload</h3>
|
||||||
<p class="mt-2 text-sm text-slate-400 leading-relaxed">
|
<p class="mt-2 text-sm text-slate-600 leading-relaxed">
|
||||||
Use the Android app to take a photo of the paper document, or drag and drop a PDF into the desktop app.
|
Use the Android app to take a photo of the paper document, or drag and drop a PDF into the desktop app.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="relative rounded-2xl border border-white/8 bg-white/3 p-7">
|
<div class="relative rounded-2xl border border-slate-200/90 bg-white p-7 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="absolute -top-4 left-7 flex h-8 w-8 items-center justify-center rounded-full bg-[#16a34a] text-sm font-bold text-white">2</div>
|
<div class="absolute -top-4 left-7 flex h-8 w-8 items-center justify-center rounded-full bg-[#15803d] text-sm font-bold text-white shadow-xs">2</div>
|
||||||
<div class="text-3xl mt-2 mb-4">🔍</div>
|
<div class="flex h-12 w-12 items-center justify-center rounded-xl bg-[#eff6ff] text-2xl mt-2 mb-4">🔍</div>
|
||||||
<h3 class="font-display text-lg font-semibold text-white">App Reads the Form</h3>
|
<h3 class="font-display text-lg font-bold text-slate-900">App Reads the Form</h3>
|
||||||
<p class="mt-2 text-sm text-slate-400 leading-relaxed">
|
<p class="mt-2 text-sm text-slate-600 leading-relaxed">
|
||||||
The system automatically reads the student's name, LRN, birth date, and other details from the scanned image.
|
The system automatically reads the student's name, LRN, birth date, and other details from the scanned image.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="relative rounded-2xl border border-white/8 bg-white/3 p-7">
|
<div class="relative rounded-2xl border border-slate-200/90 bg-white p-7 shadow-xs transition hover:shadow-md hover:border-slate-300">
|
||||||
<div class="absolute -top-4 left-7 flex h-8 w-8 items-center justify-center rounded-full bg-[#16a34a] text-sm font-bold text-white">3</div>
|
<div class="absolute -top-4 left-7 flex h-8 w-8 items-center justify-center rounded-full bg-[#15803d] text-sm font-bold text-white shadow-xs">3</div>
|
||||||
<div class="text-3xl mt-2 mb-4">✅</div>
|
<div class="flex h-12 w-12 items-center justify-center rounded-xl bg-[#ecfdf5] text-2xl mt-2 mb-4">✅</div>
|
||||||
<h3 class="font-display text-lg font-semibold text-white">Record is Saved</h3>
|
<h3 class="font-display text-lg font-bold text-slate-900">Record is Saved</h3>
|
||||||
<p class="mt-2 text-sm text-slate-400 leading-relaxed">
|
<p class="mt-2 text-sm text-slate-600 leading-relaxed">
|
||||||
The student record is saved to the school database and becomes instantly searchable from any teacher workstation.
|
The student record is saved to the school database and becomes instantly searchable from any teacher workstation.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -49,15 +51,18 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- CTA Banner -->
|
<!-- CTA Banner -->
|
||||||
<div class="mt-12 rounded-2xl border border-white/8 bg-white/3 p-8 text-center">
|
<div class="mt-12 rounded-2xl border border-emerald-200/80 bg-gradient-to-br from-emerald-50/70 via-white to-slate-50 p-8 sm:p-10 text-center shadow-xs">
|
||||||
<h3 class="font-display text-2xl font-bold text-white">Digitize 100+ records in minutes.</h3>
|
<h3 class="font-display text-2xl font-bold text-slate-900">Digitize 100+ records in minutes.</h3>
|
||||||
<p class="mt-3 text-base text-slate-400 max-w-xl mx-auto leading-relaxed">
|
<p class="mt-2.5 text-base text-slate-600 max-w-xl mx-auto leading-relaxed">
|
||||||
Instead of manually typing student information one by one, staff can scan whole stacks of documents quickly and accurately.
|
Instead of manually typing student information one by one, staff can scan whole stacks of documents quickly and accurately.
|
||||||
</p>
|
</p>
|
||||||
<a
|
<a
|
||||||
href="#downloads"
|
href="#downloads"
|
||||||
class="mt-6 inline-flex items-center rounded-xl bg-[#16a34a] px-6 py-3 text-sm font-semibold text-white shadow-md shadow-[#16a34a]/20 hover:bg-[#15803d] transition"
|
class="mt-6 inline-flex items-center gap-2 rounded-xl bg-[#15803d] px-6 py-3 text-sm font-semibold text-white shadow-md shadow-[#15803d]/15 hover:bg-[#166534] transition"
|
||||||
>
|
>
|
||||||
|
<svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
||||||
|
</svg>
|
||||||
Get the App
|
Get the App
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,50 +2,52 @@
|
|||||||
// SchoolForms component - SF-10 & SF-9 integration explained simply
|
// SchoolForms component - SF-10 & SF-9 integration explained simply
|
||||||
---
|
---
|
||||||
|
|
||||||
<section id="school-forms" class="relative bg-[#09110c] py-24 border-t border-white/5 text-white">
|
<section id="school-forms" class="relative bg-[#f8fafc] py-20 border-t border-slate-200">
|
||||||
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<div class="grid gap-14 lg:grid-cols-2 lg:items-center">
|
<div class="grid gap-12 lg:grid-cols-2 lg:items-center">
|
||||||
|
|
||||||
<!-- Left: Description -->
|
<!-- Left: Description -->
|
||||||
<div>
|
<div>
|
||||||
<p class="text-sm font-semibold text-amber-400 uppercase tracking-widest mb-3">School Forms</p>
|
<div class="inline-flex items-center gap-1.5 rounded-full border border-amber-200 bg-amber-50 px-3.5 py-1 text-xs font-semibold text-amber-800 uppercase tracking-wider mb-3.5">
|
||||||
|
School Forms Integration
|
||||||
|
</div>
|
||||||
|
|
||||||
<h2 class="font-display text-3xl font-bold text-white sm:text-4xl leading-tight">
|
<h2 class="font-display text-3xl font-bold text-slate-900 sm:text-4xl leading-tight">
|
||||||
Register students using SF-10 & SF-9 forms.
|
Register students using SF-10 & SF-9 forms.
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="mt-5 text-base text-slate-400 leading-relaxed">
|
<p class="mt-4 text-base text-slate-600 leading-relaxed">
|
||||||
TIS RMS uses the official <strong class="text-white">School Form 10 (SF-10)</strong> and <strong class="text-white">School Form 9 (SF-9)</strong> as the fastest way to add student basic information into the system from old documents.
|
TIS RMS uses the official <strong class="text-slate-900 font-semibold">School Form 10 (SF-10)</strong> and <strong class="text-slate-900 font-semibold">School Form 9 (SF-9)</strong> as the fastest way to add student basic information into the system from old documents.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="mt-4 rounded-xl border border-amber-500/20 bg-amber-500/8 p-4 text-sm text-amber-300 leading-relaxed">
|
<div class="mt-5 rounded-xl border border-amber-200 bg-amber-50/80 p-4 text-sm text-amber-900 leading-relaxed shadow-xs">
|
||||||
<strong class="text-amber-200">Note:</strong> TIS RMS is for registering basic student information from historical records (2021 onwards). It is <strong>not an enrollment system</strong> and does not track grades.
|
<strong class="font-bold text-amber-950">Administrative Note:</strong> TIS RMS is specifically scoped for digitizing basic learner profiles from historical records (2021 onwards). It is <strong>not an enrollment system</strong> and does not track grading periods.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-8 space-y-4">
|
<div class="mt-7 space-y-3.5">
|
||||||
|
|
||||||
<div class="flex items-start gap-4 rounded-xl border border-white/8 bg-white/3 p-5">
|
<div class="flex items-start gap-4 rounded-xl border border-slate-200/90 bg-white p-5 shadow-xs transition hover:border-slate-300">
|
||||||
<div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-[#16a34a]/20 text-[#4ade80] text-lg">1</div>
|
<div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-[#ecfdf5] text-[#15803d] font-bold text-base">1</div>
|
||||||
<div>
|
<div>
|
||||||
<h3 class="font-display text-base font-semibold text-white">School Form 10 (SF-10)</h3>
|
<h3 class="font-display text-base font-bold text-slate-900">School Form 10 (SF-10)</h3>
|
||||||
<p class="mt-1 text-sm text-slate-400 leading-relaxed">The main source for student basic information — captures name, LRN, birth date, gender, and originating school.</p>
|
<p class="mt-1 text-sm text-slate-600 leading-relaxed">The primary source for learner profile data — captures name, LRN, birth date, gender, and originating school.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-start gap-4 rounded-xl border border-white/8 bg-white/3 p-5">
|
<div class="flex items-start gap-4 rounded-xl border border-slate-200/90 bg-white p-5 shadow-xs transition hover:border-slate-300">
|
||||||
<div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-amber-500/15 text-amber-400 text-lg">2</div>
|
<div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-amber-50 text-amber-700 font-bold text-base">2</div>
|
||||||
<div>
|
<div>
|
||||||
<h3 class="font-display text-base font-semibold text-white">School Form 9 (SF-9)</h3>
|
<h3 class="font-display text-base font-bold text-slate-900">School Form 9 (SF-9)</h3>
|
||||||
<p class="mt-1 text-sm text-slate-400 leading-relaxed">A supporting document used to cross-reference student identifiers and school year records from old files.</p>
|
<p class="mt-1 text-sm text-slate-600 leading-relaxed">A secondary document used to cross-reference learner identifiers and school year records from legacy physical folders.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-start gap-4 rounded-xl border border-white/8 bg-white/3 p-5">
|
<div class="flex items-start gap-4 rounded-xl border border-slate-200/90 bg-white p-5 shadow-xs transition hover:border-slate-300">
|
||||||
<div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-blue-500/15 text-blue-400 text-lg">3</div>
|
<div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-blue-50 text-blue-700 font-bold text-base">3</div>
|
||||||
<div>
|
<div>
|
||||||
<h3 class="font-display text-base font-semibold text-white">Auto-fill SF-10 Spreadsheet</h3>
|
<h3 class="font-display text-base font-bold text-slate-900">Auto-fill SF-10 Spreadsheets</h3>
|
||||||
<p class="mt-1 text-sm text-slate-400 leading-relaxed">Once a student is registered, the system can generate a pre-filled official DepEd SF-10 Excel file — ready to submit.</p>
|
<p class="mt-1 text-sm text-slate-600 leading-relaxed">Once registered, the system exports a pre-filled official DepEd SF-10 Excel file — ready for school reporting and audits.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -53,59 +55,62 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Right: Sample record preview -->
|
<!-- Right: Sample record preview -->
|
||||||
<div class="overflow-hidden rounded-2xl border border-white/8 bg-[#0c1610] shadow-xl">
|
<div class="overflow-hidden rounded-2xl border border-slate-300/80 bg-white shadow-xl">
|
||||||
|
|
||||||
<!-- Window bar -->
|
<!-- Window bar matching app screenshot -->
|
||||||
<div class="flex items-center gap-2 border-b border-white/5 bg-[#15803d] px-5 py-3">
|
<div class="flex items-center justify-between border-b border-emerald-800/40 bg-[#15803d] px-5 py-3">
|
||||||
<span class="h-2.5 w-2.5 rounded-full bg-white/30"></span>
|
<div class="flex items-center gap-2">
|
||||||
<span class="h-2.5 w-2.5 rounded-full bg-white/30"></span>
|
<span class="h-2.5 w-2.5 rounded-full bg-white/40"></span>
|
||||||
<span class="h-2.5 w-2.5 rounded-full bg-white/30"></span>
|
<span class="h-2.5 w-2.5 rounded-full bg-white/40"></span>
|
||||||
<span class="ml-2 text-sm font-medium text-white">Student Registration Form</span>
|
<span class="h-2.5 w-2.5 rounded-full bg-white/40"></span>
|
||||||
|
<span class="ml-2 text-xs sm:text-sm font-medium text-white">Student Registration Form</span>
|
||||||
|
</div>
|
||||||
|
<span class="rounded bg-white/20 px-2 py-0.5 text-xs text-white">SF-10 Parser</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Sample data -->
|
<!-- Sample data -->
|
||||||
<div class="p-6 space-y-4">
|
<div class="p-6 space-y-4 bg-white">
|
||||||
|
|
||||||
<div class="rounded-xl border border-white/6 bg-white/3 p-4">
|
<div class="rounded-xl border border-slate-200 bg-slate-50/70 p-4">
|
||||||
<p class="text-xs font-semibold text-[#4ade80] uppercase tracking-wider mb-3">Learner Basic Information</p>
|
<p class="text-xs font-bold text-[#15803d] uppercase tracking-wider mb-3">Learner Basic Information</p>
|
||||||
<div class="grid grid-cols-2 gap-3">
|
<div class="grid grid-cols-2 gap-3">
|
||||||
<div class="rounded-lg bg-[#09110c] p-3 border border-white/5">
|
<div class="rounded-lg bg-white p-3 border border-slate-200/80 shadow-xs">
|
||||||
<div class="text-xs text-slate-500 mb-1">LRN</div>
|
<div class="text-xs text-slate-500 mb-0.5">LRN</div>
|
||||||
<div class="text-sm font-semibold text-[#4ade80]">108297100170</div>
|
<div class="text-sm font-bold text-[#15803d] tracking-wide">108297100170</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="rounded-lg bg-[#09110c] p-3 border border-white/5">
|
<div class="rounded-lg bg-white p-3 border border-slate-200/80 shadow-xs">
|
||||||
<div class="text-xs text-slate-500 mb-1">Full Name</div>
|
<div class="text-xs text-slate-500 mb-0.5">Full Name</div>
|
||||||
<div class="text-sm font-semibold text-white">Garcia, Cris Charles</div>
|
<div class="text-sm font-bold text-slate-900">Garcia, Cris Charles</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="rounded-lg bg-[#09110c] p-3 border border-white/5">
|
<div class="rounded-lg bg-white p-3 border border-slate-200/80 shadow-xs">
|
||||||
<div class="text-xs text-slate-500 mb-1">Year Level</div>
|
<div class="text-xs text-slate-500 mb-0.5">Year Level</div>
|
||||||
<div class="text-sm font-semibold text-amber-400">Grade 7</div>
|
<div class="text-sm font-semibold text-amber-700">Grade 7 — JHS</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="rounded-lg bg-[#09110c] p-3 border border-white/5">
|
<div class="rounded-lg bg-white p-3 border border-slate-200/80 shadow-xs">
|
||||||
<div class="text-xs text-slate-500 mb-1">School</div>
|
<div class="text-xs text-slate-500 mb-0.5">School</div>
|
||||||
<div class="text-sm font-semibold text-white">Talisay Integrated School</div>
|
<div class="text-sm font-semibold text-slate-900">Talisay Integrated School</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="rounded-xl border border-white/6 bg-white/3 p-4 space-y-2.5">
|
<div class="rounded-xl border border-slate-200 bg-slate-50/70 p-4 space-y-2.5">
|
||||||
<p class="text-xs font-semibold text-amber-400 uppercase tracking-wider">Document Fields (from SF-10)</p>
|
<p class="text-xs font-bold text-amber-700 uppercase tracking-wider">Document Fields (from SF-10)</p>
|
||||||
{[
|
{[
|
||||||
["Date of Birth", "April 14, 2009"],
|
["Date of Birth", "April 14, 2009"],
|
||||||
["Sex", "Male"],
|
["Sex", "Male"],
|
||||||
["Originating School", "Talisay Elementary School"],
|
["Originating School", "Talisay Elementary School"],
|
||||||
["Document Source", "SF-10 Archive (2021+)"],
|
["Document Source", "SF-10 Physical Archive (2021+)"],
|
||||||
].map(([field, value]) => (
|
].map(([field, value]) => (
|
||||||
<div class="flex items-center justify-between text-sm border-b border-white/5 pb-2 last:border-0 last:pb-0">
|
<div class="flex items-center justify-between text-sm border-b border-slate-200/70 pb-2 last:border-0 last:pb-0">
|
||||||
<span class="text-slate-400">{field}</span>
|
<span class="text-slate-600">{field}</span>
|
||||||
<span class="text-white font-medium">{value}</span>
|
<span class="text-slate-900 font-semibold">{value}</span>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center justify-between rounded-xl bg-[#16a34a]/10 border border-[#16a34a]/20 p-3.5">
|
<div class="flex items-center justify-between rounded-xl bg-emerald-50 border border-emerald-200 p-3.5">
|
||||||
<span class="text-sm text-slate-300">Basic info registration only — <span class="text-white font-medium">no grade tracking</span></span>
|
<span class="text-xs sm:text-sm text-slate-700">Basic info registration only — <span class="text-slate-900 font-semibold">no grade tracking</span></span>
|
||||||
<span class="rounded-lg bg-[#16a34a] px-3 py-1 text-xs font-semibold text-white">Save Record</span>
|
<span class="rounded-lg bg-[#15803d] px-3.5 py-1.5 text-xs font-semibold text-white shadow-xs">Save Record</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,33 +2,35 @@
|
|||||||
// TechStack component - Simplified "built with" section for transparency
|
// TechStack component - Simplified "built with" section for transparency
|
||||||
---
|
---
|
||||||
|
|
||||||
<section id="tech-stack" class="relative bg-[#09110c] py-20 border-t border-white/5 text-white">
|
<section id="tech-stack" class="relative bg-[#f8fafc] py-16 border-t border-slate-200">
|
||||||
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
<div class="mx-auto max-w-6xl px-5 sm:px-8">
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mx-auto max-w-2xl text-center">
|
<div class="mx-auto max-w-2xl text-center">
|
||||||
<p class="text-sm font-semibold text-slate-400 uppercase tracking-widest mb-3">Built With</p>
|
<div class="inline-flex items-center gap-1.5 rounded-full border border-slate-200 bg-white px-3.5 py-1 text-xs font-semibold text-slate-600 uppercase tracking-wider mb-3.5 shadow-xs">
|
||||||
<h2 class="font-display text-2xl font-bold text-white sm:text-3xl">
|
Built With
|
||||||
|
</div>
|
||||||
|
<h2 class="font-display text-2xl font-bold text-slate-900 sm:text-3xl">
|
||||||
Reliable technology for school use.
|
Reliable technology for school use.
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mt-3 text-base text-slate-400 leading-relaxed">
|
<p class="mt-2.5 text-base text-slate-600 leading-relaxed">
|
||||||
TIS RMS is built with modern, proven tools chosen for long-term stability and ease of maintenance.
|
TIS RMS is built with modern, proven tools chosen for long-term stability and ease of maintenance.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Simple tech tags — readable, not detailed -->
|
<!-- Tech tags -->
|
||||||
<div class="mt-12 flex flex-wrap justify-center gap-3">
|
<div class="mt-10 flex flex-wrap justify-center gap-2.5">
|
||||||
{[
|
{[
|
||||||
"Flutter (Windows & Android)",
|
"Flutter (Windows Desktop & Android)",
|
||||||
"Node.js Server",
|
"Node.js Backend",
|
||||||
"SQLite Database",
|
"SQLite Database",
|
||||||
"Tesseract OCR",
|
"Tesseract OCR Pipeline",
|
||||||
"ExcelJS",
|
"DepEd SF-10 Excel Generator",
|
||||||
"Campus LAN Architecture",
|
"Campus LAN Architecture",
|
||||||
"Role-Based Access",
|
"Role-Based Access Control",
|
||||||
"Windows Installer",
|
"Windows NSIS Installer",
|
||||||
].map((tech) => (
|
].map((tech) => (
|
||||||
<span class="rounded-full border border-white/10 bg-white/4 px-4 py-2 text-sm text-slate-300">
|
<span class="rounded-full border border-slate-200 bg-white px-4 py-1.5 text-sm font-medium text-slate-700 shadow-xs transition hover:border-slate-300">
|
||||||
{tech}
|
{tech}
|
||||||
</span>
|
</span>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ const {
|
|||||||
---
|
---
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en" class="scroll-smooth dark">
|
<html lang="en" class="scroll-smooth">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
@@ -35,7 +35,17 @@ const {
|
|||||||
<link rel="icon" href="/tis_logo.png" type="image/png" />
|
<link rel="icon" href="/tis_logo.png" type="image/png" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="bg-[#09110c] text-slate-100 selection:bg-[#16a34a] selection:text-white school-watermark-bg min-h-screen">
|
<body class="bg-[#f8fafc] text-slate-800 selection:bg-[#15803d] selection:text-white school-watermark-bg min-h-screen relative antialiased">
|
||||||
|
<!-- Faint school emblem watermark matching app desktop background -->
|
||||||
|
<div class="fixed inset-0 pointer-events-none -z-10 flex items-center justify-center overflow-hidden">
|
||||||
|
<img
|
||||||
|
src="/tis_logo.png"
|
||||||
|
alt=""
|
||||||
|
aria-hidden="true"
|
||||||
|
class="w-[680px] h-[680px] object-contain opacity-[0.032] grayscale select-none blur-[0.5px]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<slot />
|
<slot />
|
||||||
</body>
|
</body>
|
||||||
</html>␍
|
</html>␍
|
||||||
+41
-22
@@ -5,23 +5,26 @@
|
|||||||
--font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
|
--font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
|
||||||
--font-display: 'Outfit', sans-serif;
|
--font-display: 'Outfit', sans-serif;
|
||||||
|
|
||||||
--bg-base: #09110c;
|
--bg-base: #f8fafc;
|
||||||
--bg-surface: #0e1a12;
|
--bg-surface: #ffffff;
|
||||||
--bg-card: #112017;
|
--bg-card: #ffffff;
|
||||||
|
--bg-subtle: #f1f5f9;
|
||||||
|
|
||||||
--border: #1f3627;
|
--border: #e2e8f0;
|
||||||
--border-strong: #2a4c37;
|
--border-strong: #cbd5e1;
|
||||||
|
|
||||||
--green: #16a34a;
|
--green: #15803d;
|
||||||
--green-light: #22c55e;
|
--green-light: #16a34a;
|
||||||
--green-glow: #4ade80;
|
--green-soft: #ecfdf5;
|
||||||
--green-hover: #15803d;
|
--green-pill-border: #bbf7d0;
|
||||||
|
--green-hover: #166534;
|
||||||
|
|
||||||
--gold: #f59e0b;
|
--gold: #d97706;
|
||||||
|
|
||||||
--text-main: #f8fafc;
|
--text-main: #0f172a;
|
||||||
--text-muted: #94a3b8;
|
--text-body: #334155;
|
||||||
--text-subtle: #64748b;
|
--text-muted: #64748b;
|
||||||
|
--text-subtle: #94a3b8;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
@@ -29,14 +32,14 @@ html {
|
|||||||
font-family: var(--font-sans);
|
font-family: var(--font-sans);
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
background-color: var(--bg-base);
|
background-color: var(--bg-base);
|
||||||
color: var(--text-main);
|
color: var(--text-body);
|
||||||
color-scheme: dark;
|
color-scheme: light;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: var(--bg-base);
|
background-color: var(--bg-base);
|
||||||
color: var(--text-main);
|
color: var(--text-body);
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
@@ -45,6 +48,7 @@ body {
|
|||||||
h1, h2, h3, h4, .font-display {
|
h1, h2, h3, h4, .font-display {
|
||||||
font-family: var(--font-display);
|
font-family: var(--font-display);
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
|
color: var(--text-main);
|
||||||
}
|
}
|
||||||
|
|
||||||
::selection {
|
::selection {
|
||||||
@@ -52,15 +56,30 @@ h1, h2, h3, h4, .font-display {
|
|||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Glass nav */
|
/* Watermark school background effect from app screenshot */
|
||||||
|
.school-watermark-bg {
|
||||||
|
background-image:
|
||||||
|
radial-gradient(circle at 50% 0%, rgba(22, 163, 74, 0.05) 0%, transparent 60%),
|
||||||
|
radial-gradient(circle at 100% 100%, rgba(22, 163, 74, 0.03) 0%, transparent 50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-crest-watermark {
|
||||||
|
position: absolute;
|
||||||
|
pointer-events: none;
|
||||||
|
opacity: 0.04;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Glass nav for light mode */
|
||||||
.glass-nav {
|
.glass-nav {
|
||||||
background: rgba(9, 17, 12, 0.92);
|
background: rgba(255, 255, 255, 0.92);
|
||||||
backdrop-filter: blur(20px);
|
backdrop-filter: blur(16px);
|
||||||
-webkit-backdrop-filter: blur(20px);
|
-webkit-backdrop-filter: blur(16px);
|
||||||
|
border-bottom: 1px solid #e2e8f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Custom Scrollbar */
|
/* Custom Scrollbar */
|
||||||
::-webkit-scrollbar { width: 6px; height: 6px; }
|
::-webkit-scrollbar { width: 6px; height: 6px; }
|
||||||
::-webkit-scrollbar-track { background: var(--bg-base); }
|
::-webkit-scrollbar-track { background: #f1f5f9; }
|
||||||
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 3px; }
|
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
|
||||||
::-webkit-scrollbar-thumb:hover { background: var(--green); }
|
::-webkit-scrollbar-thumb:hover { background: var(--green); }
|
||||||
Reference in new issue
Block a user