Operator panel for the Skilluv platform.
🇬🇧 English (this page) · 🇫🇷 Version française
Skilluv is a community platform training the African OSS generation through real contributions to real open source projects. Every completed challenge produces a verifiable artifact — a merged pull request, a delivered Figma component, a submitted CVE report, a playable game build — exportable to recruiters.
Full product vision in the backend repository.
The admin panel used by Skilluv platform operators. Currently implemented sections:
- Auth — mandatory admin 2FA (TOTP + WebAuthn), single-use backup codes, admin-to-admin 2FA reset
- Users — search, profile, ban/unban, capability management (14 functional roles), 2FA recovery
- Fraud dashboard — plagiarism queue, multi-account detection, LLM re-evaluation
- Challenges — creation, edit, publish, archive
- Community moderation — reports, review queue
- Enterprise B2B — KYC, sponsored challenges pipeline
- Multi-tenant — tenants management
- SSO — session tracking and revocation
- Tournaments — creation, scoring, conclusion
- Audit log — append-only, 7-year retention
- Operations — platform-wide one-shot triggers (rebuild leaderboards, digest, GitHub sync, guild dissolution, war conclusion, accounting export)
Built with SvelteKit 2, Svelte 5 (runes), Tailwind CSS 4, TypeScript strict, and 48 wired backend endpoints across 14 domains. Full inventory in ADMIN-CAPABILITIES.md.
Roadmap for the remaining MVP phases (M3 orientations catalog + M4 enterprise type manager + M5 user enrichment) is tracked in docs/MVP.md and the backend contract in docs/BACKEND-TODO.md.
skilluv-backend— Rust + Axum APIskilluv-frontend— SvelteKit web app for talentsskilluv-ia— Python AI microservice
Prerequisites: Node.js 22+, npm 10+, and a running Skilluv backend on port 3001.
git clone https://github.com/skilluv/skilluv-admin.git
cd skilluv-admin
npm install
cp .env.example .env
# edit .env with your backend URL and admin credentials
npm run devThe admin panel opens on http://localhost:5173.
npm run dev # dev server on :5174
npm run check # svelte-check type verification
npm run build # production build (adapter-node)
npm run preview # preview the production build
npm run test # Vitest unit + component tests
npm run test:watch # watch mode
npm run test:coverage # coverage report
npm run test:e2e # Playwright smoke tests
npm run test:e2e:ui # interactive Playwright UIsrc/routes/— SvelteKit pages (dashboard, users, fraud, challenges, moderation, etc.)src/lib/components/ui/— design-system primitives (Button, Modal, Input, Table, ConfirmDangerousDialog, CapabilityBadge, …)src/lib/components/admin/— admin-specific composites (UserCapabilitiesSection, …)src/lib/api/— typed API clients (auth.ts,admin.ts, sharedclient.tswith SkilluError + CSRF + refresh)src/lib/i18n/— EN / FR / AR translations (typed)src/lib/stores/— Svelte 5 rune stores (auth, toast, theme)e2e/— Playwright smoke testsADMIN-CAPABILITIES.md— capability + endpoint referencedocs/MVP.md— full MVP plandocs/BACKEND-TODO.md— backend endpoints still required to close the MVP
Multi-stage Dockerfile (Node 22 alpine, non-root node user, HEALTHCHECK). Compose file mirrors the dev port so URLs stay familiar.
# Standalone build + run (backend expected at BACKEND_INTERNAL_URL)
docker compose -f docker-compose.admin.yml up --build
# Or manually
docker build -t skilluv-admin:local .
docker run --rm -p 5174:3000 -e ORIGIN=http://localhost:5174 skilluv-admin:localGitHub Actions workflow (.github/workflows/ci.yml) runs on every push and PR:
svelte-checktype verification- Vitest unit and component tests
- Production build
- Playwright smoke tests against the built server (artifacts uploaded on failure)
| Layer | Technology |
|---|---|
| Framework | SvelteKit 2 |
| UI runtime | Svelte 5 (runes) |
| Language | TypeScript 5.x |
| CSS | Tailwind CSS 4 |
| Build | Vite |
| Typography | Space Grotesk, JetBrains Mono |
Contributors welcome — Svelte devs, product-oriented UX for admin workflows, community moderators who want to shape the moderation UX. See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
For security disclosures, see SECURITY.md.
Distributed under the GNU Affero General Public License v3.0 (AGPL-3.0).
Skilluv is built solo by Jeremie Zitti, a Beninese engineer. Public launch: January 2027.