Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Skilluv Admin

Operator panel for the Skilluv platform.

🇬🇧 English (this page) · 🇫🇷 Version française

License: AGPL-3.0 SvelteKit


What is Skilluv?

Skilluv is a platform where talents in code, design, security, game development, product, and other tech crafts grow their skills by contributing 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.

African-born, globally open. Contributors and hiring companies come from anywhere. Full product vision in the org profile.

What this repo contains

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.

Companion repositories

Quick start

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 dev

The admin panel opens on http://localhost:5173.

Scripts

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 UI

Structure

  • src/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, shared client.ts with SkilluError + CSRF + refresh)
  • src/lib/i18n/ — EN / FR / AR translations (typed)
  • src/lib/stores/ — Svelte 5 rune stores (auth, toast, theme)
  • e2e/ — Playwright smoke tests
  • ADMIN-CAPABILITIES.md — capability + endpoint reference
  • docs/MVP.md — full MVP plan
  • docs/BACKEND-TODO.md — backend endpoints still required to close the MVP

Docker

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:local

Continuous integration

GitHub Actions workflow (.github/workflows/ci.yml) runs on every push and PR:

  1. svelte-check type verification
  2. Vitest unit and component tests
  3. Production build
  4. Playwright smoke tests against the built server (artifacts uploaded on failure)

Stack summary

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

Contributing

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.

Security

For security disclosures, see SECURITY.md.

License

Distributed under the GNU Affero General Public License v3.0 (AGPL-3.0).

Origin

Skilluv is built solo by Jeremie Zitti, an engineer based in Benin. Public launch: January 2027.

About

SvelteKit standalone admin panel for Skilluv — moderation, catalog, ops

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages