ahp 96b10c9148 fix(ui): design-system consistency — typography, borders, admin IA, search removal
- typography: font-semibold/font-medium → font-bold throughout (card, dialog, empty-state, notification-bell, quiz-experience, questions-panel, profile-manage)
- borders: border → border-2 for content containers (leaderboard error, notifications page, quiz pass screen, quiz option tiles, learning-panel error)
- admin IA: remove Card-in-SectionPanel nesting from announce-panel, challenges-panel, physical-orders-panel; SectionPanel gains optional actions slot
- announce-panel: flat composer + live preview; history as flat list; cancel-edit button
- lockout: raw textarea → Textarea design-system component
- global-search: delete component and all references (feature removed)
- progress.tsx: dir="ltr" for correct RTL fill direction; remove rtl:me-auto
2026-10-20 17:51:23 +03:30
2026-10-18 12:19:52 +03:30

Pargar mark

Pargar

A bootcamp learning path with no shortcuts.
Verified watch, quizzes with hearts, a skill tree, and a mentor. The product UI is Persian (پرگار).

AGPL-3.0

Pargar is a gated LMS for a bootcamp. A student watches the lesson for real, passes that lesson's quiz, and only then opens the next branch of the skill tree. Alongside the path: mentor chat, events, a weekly league, a monthly challenge, and a certificate.

Public registration sits behind a phone whitelist. Invite links work on their own. Students cannot recover a password themselves; an admin sets a new one from that person's profile.

The path

Step What happens
Verified watch Watch time is checked with periodic heartbeats. Skipping ahead does not finish the lesson.
Quiz with hearts Each wrong answer spends a heart. An empty heart meter locks the account until staff reviews it.
Skill tree The next branch opens only after its parent is passed. Staff unlock the following lesson.
Community Mentor chat, events, a weekly league that resets on Monday, and a monthly challenge.
Certificate An unlisted digital link. A physical copy, when enabled, is offline payment only.

Three roles: a student walks the path, a mentor sees curriculum and student learning, and an admin also manages users, invites, site settings, and physical certificate orders.

Product detail: docs/product.md

Run it locally

Docker is required. Copy .env.example and replace every replace-with-… value. The admin password is ADMIN_PASSWORD. The default username is admin.

cp .env.example .env
./scripts/compose-dev.sh up -d --build

The app is at https://localhost. Traefik uses its own certificate, so the browser shows one warning. API health:

curl -k https://localhost/api/health

k3s and production: docs/deployment.md

Stack

Layer Technology
API Go, Postgres, Redis, S3/RustFS, WebSocket
UI Next.js 15, React, Tailwind
Edge Traefik, on Compose and Helm

The browser talks to one origin. Traefik splits the UI from /api. Detail: docs/architecture.md

Repository

backend/     API, migrations, seed data
frontend/    Next.js UI
deploy/      Compose, Traefik, Helm chart
scripts/     Local run, k3s, backup
docs/        Engineering docs
Doc Read it for
Product Student path, admin, invites, certificates
Architecture Data flow and service boundaries
Development Local workflow and tests
Deployment Compose, Helm, production
Security Sessions, secrets, rate limits, uploads
Operations Backup, metrics, troubleshooting
API Route contract
Configuration Environment variables

Index: docs/README.md

License

Released under AGPL-3.0.

S
Description
Bootcamp learning path with no shortcuts
https://pargar.panahifar.ir Readme AGPL-3.0
4 MiB
Languages
TypeScript 58.1%
Go 40.3%
CSS 1%
Shell 0.2%
Go Template 0.2%
Other 0.1%