Files
jobtrackingapp/docs/redesign/audit/FUNCTIONALITY_INVENTORY.md
T
2026-09-09 19:29:39 +02:00

14 KiB

Protected functionality ledger

This is the current source-backed preservation baseline. All rows are Preserve until a later approved migration explicitly records relocation, merger or deprecation. Target-only ideas are separated at the end. A component's existence proves implemented behavior, not live provider availability or usability quality. The API census and component census supply the individual call sites/consumers behind these groups.

Entry, navigation and account

ID Current user-facing function Source / important contract
E01 Public product explanation, Free/Pro feature comparison, honest unavailable-billing states and sign-in/register links LandingPage, planCatalog; do not invent prices or purchasable capabilities
E02 Local sign-in/registration, remember-me, configured Turnstile, resend verification, reset password, verify email LoginPage, reset/verification views, TurnstileWidget; server configuration controls availability
E03 Google/Microsoft sign-in/link flows, Microsoft legacy relink, provider popup success/error handling GoogleAuthCard, MicrosoftAuthCard, MicrosoftLegacyRelinkPage; OAuth/state/origin rules remain
E04 2FA challenge, recovery codes, setup/verify/disable/regenerate, trusted devices and revocation TwoFactorChallenge, TwoFactorSettingsCard; preserve sensitive confirmation and recovery presentation
E05 Active session list, current-device distinction, single/other-session revocation, logout SessionsSettingsCard, AppShell, auth, sessionBoundary; invalidation must clear private UI
E06 Avatar upload/remove, name/display name/headline, account email-change request/cancel/confirm, local password change ProfilePage; account identity is distinct from canonical career data
E07 Collapsible desktop sidebar, mobile drawer, active subsection matching, keyboard command launcher AppShell, QuickCommandDialog; job/company search and fixed navigation/add commands
E08 Theme light/dark/system, EN/Bokmål preference with server hydration, toast/confirm/prompt and error routes themePrefs, I18nProvider, toast, confirm, prompt, route error/not-found views
E09 Cross-tab account switch, stale mutation/read rejection, BFCache/focus revalidation and reauthentication api, sessionBoundary, App; B02 server precondition and client unmount/abort must survive extraction

Discover and manage jobs

ID Current user-facing function Source / important contract
J01 Search NAV listings by role/company/municipality, sorting, source/freshness/deadline/work-arrangement details, external listing links JobDiscoveryPage; provider failures and empty results distinguishable
J02 Named saved searches, run/delete, automatic alert preference, new/updated results and dismissal JobDiscoveryPage, saved-search APIs; retain owner scope and alert metadata
J03 Add job manually or from URL/pasted listing, reviewed preview, company lookup/create, tags and dates, duplicate warning AddJobModal; preview is not a write; keep B01 outbound boundary and existing review step
J04 Capture via browser extension, bookmarklet and share/capture query; optional job attachment and tailored CV draft after create QuickCaptureCard, captureUrl, App, browser-extension; preserve payload/URL contracts
J05 Job table search/filter/sort/pagination, visible columns/page size, saved named views, row/card actions JobTable, SavedViewsMenu; mobile cards and accessible full-workspace entry already exist
J06 Selection/bulk status/delete/restore, soft-delete/trash and restore, edit job/company association JobTable, EditJobDialog; preserve partial-error handling and confirmation semantics
J07 Kanban grouped status views, drag move, keyboard pickup/drop/cancel, direct status selection, job opening KanbanBoard, pipeline; same records as table, not a second job model
J08 Company directory, recruiter/contact/source/location and pipeline/contact-date editing; company relationship job history CompaniesTable; company creation is integrated with job/import flows, not assumed standalone CRUD
J09 Offer comparison including recorded compensation, decision deadline and notes, source-job links OfferComparisonPage; no new compensation calculator implied
J10 JSON/CSV job export; JSON import; CSV-to-import-JSON conversion and import counts ImportExportJobs; preserve B05 blob bytes/BOM, spreadsheet safety and typed formats; do not claim full account restore from job import

Job workspace and application artifacts

ID Current user-facing function Source / important contract
W01 Dedicated job workspace and reusable quick overlay; overview/analysis/CV/cover-letter/interview sections; old deep-link mapping ApplicationWorkspacePage, ApplicationWorkspace, jobWorkspaceRoute; retain full-page/overlay parity
W02 Job detail/status/progression, next actions, dates, description, recruiter/contact and timeline JobDetailsSection, ApplicationProgress, ApplicationTimeline; do not redefine pipeline enums or history
W03 Analysis, profile match/gaps, strategy snapshot, workflow assistance and status suggestions ApplicationAnalysis, ApplicationMatch, ApplicationStatusSuggestion, ApplicationStrategySnapshot; show provenance/loading/failure and confirmation
W04 Checklist create/edit/complete/delete/order, progress and recommended next action ApplicationChecklist; keep keyboard reorder and persisted item identity
W05 Select/attach a CV, create/tailor document variants, review tailoring guidance and selected-source context ApplicationCvSection, ApplicationTailoringSection, applicationWorkspace; owner+job association enforced by API
W06 Cover-letter editing, AI suggestion review/reject/apply, saved versions and restore, unsaved navigation protection ApplicationAssets, CoverLetterAiAssistant; document override must not mutate master profile
W07 Application draft fields, submission/package preparation, frozen submitted-package versions and archived attachment download ApplicationAssets, SubmittedPackagesSection, applicationWorkspace; historical package is distinct from current draft
W08 Attachments upload/drag-drop, category/purpose, rename, AI-use flag, preview/download/delete Attachments; owner-scoped binary retrieval, consent selection and size/error handling
W09 Interview questions/categories, manual items, answers, ready status, remove, contextual AI review/add-to-prep InterviewPrep, applicationWorkspace; generated facts/answers require review
W10 Interview debrief template and follow-up content/date, readiness and next-action state InterviewPrep; neutral prompts must not seed invented company/achievement facts
W11 Follow-up/reminder workflow, rule-driven dates/stages, notifications, deadline/follow-up ICS and Google/Outlook calendar event actions RemindersView, RulesSettingsCard, ApplicationCalendarActions; calendar integration already exists, date-only/timestamp semantics must survive
W12 Async operation progress, pending/failed/retry/cancel states and associated notifications OperationsPage, profile processing components; preserve operation IDs and server state, avoid duplicate starts on rerender

Career Profile and CVs

ID Current user-facing function Source / important contract
C01 Canonical structured career profile: personal details, summary, skills, work, education, languages, interests and long-tail/custom sections CareerProfilePage, views/career/*; profile save is an account singleton, CV is an identified derived resource
C02 Profile overview, completeness/import guidance, manual edit, copy raw CV text, avatar and version history/restore CareerWorkspacePage, CareerProfilePage; preserve projection/history behavior without redesigning schema
C03 CV/file upload and extraction, rebuild/improve/reprocess, progress/history, diff, explicit low-confidence selection, accept/discard, retry/cancel CareerProfilePage, /profile-cv/*; uploaded proposal is not silently canonical truth
C04 Evidence bank: sourced statement/title/category/tags, add/list/delete and truthfulness guidance CareerEvidenceBank; evidence belongs to profile owner and is not AI-invented experience
C05 CV library create/name/copy/delete, template gallery and real sample thumbnails, publish/unpublish/share and PDF download CvBuilderPage, cvBuilder; separate public slug from numeric private ID
C06 Studio Template/Content/Customize/AI Tools/History navigation; debounced preview and save state CvBuilderEditor; existing mobile edit/preview and desktop split must retain parity
C07 Built-in item visibility/order, custom sections, preset/free-text section catalog, item/content overrides, hide/remove, keyboard reorder CvBuilderEditor, components/cv/*; selected profile source and overrides remain distinguishable
C08 Template-capability-aware typography/colors/header/headings, skills presentation/groups, one/two-column and sidebar settings, photo/icons CvCustomizeTab, theme registry; retain unsupported-setting handling and server render equivalence
C09 A4/Letter, density, margins/spacing, date format, document language, per-section rows/grid/compact/bubbles and columns cvBuilder, CvCustomizeTab, content controls; do not drop advanced controls merely to simplify layout
C10 Undo/redo of editor settings, save queue, unsaved guard, history/version restore and preview lifecycle CvBuilderEditor; current queue serializes one mounted editor only, not concurrent browsers
C11 Per-section AI improve/translate/custom instruction and whole-document translate/improve/spelling review AiSectionAssistant, builder AI tab; source/target language, current/suggestion comparison, apply/reject
C12 Authenticated PDF export and anonymous published-CV preview/PDF; long searchable multipage documents PublicCvPage, cvBuilder, server renderer; B03 shared resource admission and public ownership/publication checks

Correspondence and external accounts

ID Current user-facing function Source / important contract
M01 Job-scoped manual note/email log, search, delete, paste/import message; current job/company context Correspondence; manual record is different from sending a real email
M02 Gmail candidate search/import, linked-thread refresh/sync history, import thread, unlink/relink/move with job selection Correspondence; cross-job relationship changes remain owner-bound
M03 Global correspondence inbox with pagination/search/filter/direction/provider/link state, full message and attachment information, source-job links CorrespondenceInboxPage; provider read failure distinct from no messages
M04 Compose/reply, choose connected provider and job/recipient, save/resume/delete drafts, review/confirm send, delivery states and explicit new attempt CorrespondenceInboxPage; persisted draft revision and send idempotency/uncertain delivery controls must survive navigation changes
M05 Gmail review candidates, proposed jobs, link/reject/keep decisions, notes, manual sync and create suggested job GmailReviewPage embedded in inbox; retain legacy review redirect
M06 Gmail/Google and Microsoft Graph connection/status/disconnect, IMAP connection/status/disconnect EmailProviderConnections, ConnectedAccountsPage; login identity and mail-provider identity are separate capabilities

Dashboard, settings and administration

ID Current user-facing function Source / important contract
S01 Personal dashboard counts, activity/funnel/company/skill trends, stage/salary insights and actionable next steps DashboardView, analytics APIs; chart transformations and empty/error states preserved
S02 Five per-owner local visibility preferences; onboarding progress and dismiss; notification bell/unread/read/dismiss DashboardView, OnboardingChecklist, NotificationsPopover; no server widget-order/resize contract exists yet
S03 Follow-up/ghosting rule settings, email reminder preference, table preferences, theme/language and connected-account links SettingsView, RulesSettingsCard; preferences have different scopes, do not replace with one unsafely shared object
S04 AI privacy settings, usage/limits, honest Free/Pro lock states, billing status, conditional checkout and portal AiPrivacySettingsCard, AiUsageCard, AccountPlanProvider; server entitlement authoritative, not client context defaults
S05 Account export, encrypted backup download, lifecycle status and deliberate deletion confirmation BackupCard; recent-auth/password/provider restrictions remain; a downloadable backup is not proven restore readiness
A01 Admin user list/create, role promotion/demotion guards, reset link and delete with last-admin/self warnings AdminUsersPage, /users; API roles enforce privilege regardless of navigation
A02 Admin audit event list/detail, supported undo and job restore AdminAuditPage; preserve event/ownership semantics rather than generic mutation buttons
A03 Separate system health/build/database/AI/email status, SMTP settings/test, AI probe, CV corpus benchmark and maintenance run controls AdminSystemPage; sensitive config values/logs must not move into personal dashboard

Target brief items that are not current features

The target grouped navigation would reorganize an existing collapsible sidebar. Jobs/Table and Kanban can become view choices over the existing APIs. Dedicated Analytics/Documents/Notifications destinations would relocate embedded capabilities. They are not permission to delete offers, reminders, correspondence review, operations or legacy URLs.

Dashboard drag/order/resize/reset and cross-device persistence are new work beyond the five local booleans. A general assistant/chat, goals system, new brand/name and additional email/calendar providers are not implied by existing contextual AI or integrations. Retain implemented Google/Outlook calendar actions even though the product brief describes broader calendar ambitions as future work.

During migration, extend this table with destination, regression test and review evidence per ID. Do not treat a screen screenshot or a count of passing tests as proof that all rows survived.