TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
En jobbsökarportal för arbetssökande (inkl. långtidsarbetslösa) och arbetskonsulenter som coachar dem. AI-driven CV, personligt brev, intervjusimulator, kompetensanalys och mer — designat för låg friktion, hög tillgänglighet (WCAG 2.1 AA) och empatisk ton. Backend: Supabase (PostgreSQL + Edge Functions) + Vercel serverless functions Frontend: React 19 + Vite 7 + Tailwind 4 + Zustand + React Query查看完整 README ↗
En jobbsökarportal för arbetssökande (inkl. långtidsarbetslösa) och arbetskonsulenter som coachar dem. AI-driven CV, personligt brev, intervjusimulator, kompetensanalys och mer — designat för låg friktion, hög tillgänglighet (WCAG 2.1 AA) och empatisk ton.
Backend: Supabase (PostgreSQL + Edge Functions) + Vercel serverless functions Frontend: React 19 + Vite 7 + Tailwind 4 + Zustand + React Query
| Funktion | Beskrivning | AI |
|---|---|---|
| CV-byggare | Steg-för-steg, ATS-analys, PDF-export, 5 templates | ✅ |
| Personligt brev | AI-genererat, 4 templates, PDF-export från HTML | ✅ |
| Intervjusimulator | Mock-intervjuer, AI-feedback, STAR-metoden | ✅ |
| Kompetensanalys | Identifiera gap mot drömjobb | ✅ |
| Intresseguide | RIASEC + Big Five → yrkesrekommendationer | ✅ |
| LinkedIn-optimerare | Förbättra headline, about, posts | ✅ |
| AI-Team | Chatta med specialiserade AI-agenter (karriärcoach m.fl.) | ✅ |
| Jobbsökning | Arbetsförmedlingens API, sverigekarta, dela med konsulent | — |
| Spontanansökan | Hitta företag (Bolagsverket) och skicka spontana ansökningar | ✅ |
| STA / Arbetsprövning | Arbetsprövning i 4 delar: deltagarresa, DOA-självskattning, konsulentvy, AI-utkast för AF-blanketter | ✅ |
| Dagbok | Reflektion, dokumentation, mood-tracking | — |
| Wellness | Energi, mående, vilo-tracking | — |
| Konsultvy | Hantera deltagare, rapportering, GDPR-logg | — |
| Lager | Teknik |
|---|---|
| Frontend | React 19, TypeScript 5.9, Vite 7, Tailwind 4 |
| State | Zustand 5 (client state), React Query 5 (server state) |
| Routing | React Router 7 (HashRouter — /#/route) |
| AI-integration | OpenRouter (modell låst till openai/gpt-oss-120b, se docs/AI_MODEL_LOCKING.md) via Vercel functions + Supabase Edge |
| Backend | Supabase (Postgres, Auth, Storage, Edge Functions) + Vercel serverless |
| @react-pdf/renderer + html2canvas + jsPDF (multi-strategy) | |
| Test | Vitest + Testing Library + Playwright (E2E) |
| Monitoring | Sentry (cookie-consent-gated) |
| Deploy | Vercel (frontend + serverless), Supabase (DB + edge) |
git clone https://github.com/glannstrom-lab/deltagarportalen.git
cd deltagarportalen/client
npm install
cp .env.example .env # fyll i Supabase URL + anon key
npm run dev # http://localhost:3000 — porten är satt explicit i vite.config.ts,
# det finns ingen 5173-fallback (playwright.config.ts defaultar dock
# till 5173, vilket är en känd fälla). Rättat 2026-08-31.
.env:
VITE_SUPABASE_URL=https://<projekt>.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiI...
# Utveckling
cd client && npm run dev # vite dev server
npx tsc --noEmit # typecheck (snabb felsökning)
# Test
npm run test # vitest watch
npm run test:run # vitest single-run
npm run test:coverage # med coverage-rapport
npx playwright test e2e/smoke.spec.ts --project=chromium # E2E smoke
# Build
npm run build # production-bundle till client/dist/
npm run analyze # bundle-storleksanalys
# Linting
npm run lint
Använd INTE npx supabase db push — den försöker köra alla migrationer
från början och faller på dubbletter (vi har kända konflikter, se
supabase/migrations/MIGRATION_NOTES.md).
Kör enskilda migrationer manuellt:
# Kör en specifik migration mot prod-DB
npx supabase db query --linked -f supabase/migrations/2026XXXX_namn.sql
# Verifiera schema
npx supabase db query --linked "SELECT column_name FROM information_schema.columns WHERE table_name = 'profiles'" --output table
# Lista RLS-status per tabell
npx supabase db query --linked "SELECT tablename, rowsecurity FROM pg_tables WHERE schemaname='public' ORDER BY tablename"
cd supabase
npx supabase functions deploy <namn> --linked
Aktiva edge functions: ai-assistant, ai-cover-letter, ai-cv-writing,
ai-career-assistant, ai-company-search, ai-company-analysis,
ai-industry-radar, ai-commute-planner, cv-analysis, learning-recommend,
learning-progress, learning-analyze-gap, plus AF-API-proxies (af-jobsearch,
af-taxonomy, af-trends, etc.), bolagsverket, delete-account,
send-invite-email, health.
npx supabase secrets set OPENROUTER_API_KEY=sk-or-...
npx supabase secrets set AI_MODEL=openai/gpt-oss-120b # låst modell, se docs/AI_MODEL_LOCKING.md
deltagarportalen/
├── client/ React frontend (aktiv)
│ ├── api/ Vercel serverless functions
│ │ ├── ai.js 20 AI-funktioner (räknat 2026-08-31). Har en egen
│ │ │ SSE-gren för ai-team-chat; ai-stream.js finns inte
│ │ └── ...
│ └── src/
│ ├── components/ React-komponenter (organiserade per feature)
│ ├── pages/ Sidkomponenter (lazy-loadade)
│ ├── services/ API-wrappers (Supabase, AF, AI, etc.)
│ ├── stores/ Zustand-stores (auth, settings, profile, cv)
│ ├── hooks/ React hooks (useDashboardData, useCVAutoSave)
│ ├── lib/ domains.ts (route→domän), supabase.ts, logger.ts
│ └── styles/ tokens.css (designsystem), globals
│
├── api/ Top-level Vercel-katalog (endast _utils/rate-limiter.js)
│
├── supabase/
│ ├── functions/ Deno edge functions (24 st)
│ ├── migrations/ SQL-migrationer (116 filer, körs manuellt — se CLAUDE.md)
│ └── config.toml
│
├── docs/ Aktiv projektdokumentation
│ ├── ROADMAP.md ★ Projektets enda gällande plan
│ ├── DESIGN.md Designsystem v3.0 (Manifest + 5 hubbar)
│ ├── DESIGN-DEBT.md Levande designskuldlista (CI-kopplad)
│ ├── portal-review-2026-06.md Senaste helhetsgranskning
│ ├── security-audit.md Levande säkerhetsstatus
│ └── COMPLIANCE-*, DPIA-* ... Juridik & compliance
│
├── e2e/ Playwright E2E-tester
├── design-demos/ Standalone HTML för designval
├── archive/ Arkiverat (2026-q1, server-legacy, 2026-06-dokkonsolidering)
├── CLAUDE.md Instruktioner för Claude Code
├── SECURITY.md Säkerhetsrutiner
└── README.md (denna fil)
Specifikation i docs/DESIGN.md (v3.0, aktiv från 2026-05-10). Manifestet styr:
Jobin är en följeslagare, inte en jobbportal — lugn ton, inga gradients, inga
prestationsmätningar i hjälteposition. Två sidlägen: hub-landning (pastell-hero)
och verktygssida (neutral hero med färgad vänsterkant). En hub-färg per sida.
| Hub | Path | Domän/färg |
|---|---|---|
| Översikt | /oversikt | action (mint) |
| Söka jobb | /jobb | activity (persika) |
| Karriär | /karriar | coaching (rosa) |
| Resurser | /resurser | info (sky) |
| Min vardag | /min-vardag | wellbeing (lavendel) |
Aktiveras via data-domain (sätts av PageLayout). Nav-sanning:
client/src/components/layout/navigation.ts. CSS-tokens i
client/src/styles/tokens.css. Designskuld bevakas i docs/DESIGN-DEBT.md.
| Dokument | Syfte |
|---|---|
docs/ROADMAP.md | Projektets enda gällande plan (Nu/Näst/Senare + beslutslogg) |
CLAUDE.md | Projektkontext för Claude Code (build-kommandon, konventioner) |
docs/portal-review-2026-06.md | Senaste helhetsgranskning (kod, docs, visuellt) |
docs/DESIGN.md + docs/DESIGN-DEBT.md | Designsystem v3.0 + levande skuldlista |
docs/security-audit.md | Levande säkerhetsstatus (senast 2026-05-28) |
docs/COMPLIANCE-USER-ACTIONS.md | Juridisk åtgärdschecklista (DPIA, Art 30, AI Act) |
e2e/README.md | E2E-test-aktivering |
supabase/migrations/MIGRATION_NOTES.md | Kända migrations-konflikter |
archive/2026-06-dokkonsolidering/ | Arkiverade planer & granskningar (med README) |
Rollkontroll via PrivateRoute + Supabase RLS på alla 130 publika tabeller.
Rättat 2026-08-31. Det här avsnittet beskrev ett PR-flöde med feature-grenar som projektet inte använder — och som motsäger den enda gällande släppproceduren i
CLAUDE.md. Följ den, inte det här: allt går direkt påmain, och en push tillmainÄR deployen.
cd client && npm run verify lokalt — hela grinduppsättningen.
Pre-push-hooken kör bara fem av dem och inga tester alls, så den är inget skyddsnät.
(npx tsc --noEmit utan -p är dessutom en no-op i det här projektet — använd
npm run typecheck:critical.)main, med vad och varför.git push origin main — det triggar deploy.yml: bygge, prod-deploy, edge functions, smoke-test.client/vercel.json, .github/workflows/, RLS-policyer eller migrationer mot prod
kräver Mikaels ja innan push.Fullständig procedur med kommandon: CLAUDE.md § Släpp.
MIT
Senast uppdaterad: 2026-06-10