Skip to content
Beydah Saglam edited this page Feb 20, 2026 · 3 revisions

CV Analyser Knowledge Base (WIKI)

Welcome to the CV Analyser Wiki! This document serves as a comprehensive knowledge base for developers, contributors, and curious users.

πŸ“– Table of Contents

  1. Project Overview
  2. Architectural Principles
  3. Backend Deep Dive
  4. Frontend Design System
  5. Database Schema
  6. Security & Error Handling
  7. FAQ

πŸš€ Project Overview

CV Analyser is an enterprise-compliant Windows Forms application built on .NET Framework 4.8. It is designed to solve the problem of manual resume screening by automating the extraction and ranking process.

Core Value Proposition

  • Accuracy: Uses iTextSharp for high-fidelity text extraction.
  • Speed: Batch processes hundreds of PDFs in seconds.
  • Maintainability: Follows strict enterprise naming and structural governance.

πŸ›οΈ Architectural Principles

The project adheres to several key engineering standards:

  • Layered Monolith: Strict separation between UI (frontend/) and logic (backend/).
  • Atomic Design: Shared UI logic extracted into "atoms" (frontend/atoms/).
  • Strict Naming Governance:
    • C_Snake_Case: Classes
    • F_Snake_Case: Functions
    • p_snake_case: Parameters
    • SNAKE_CASE: Constants
  • Region Management: Every file contains structured regions (HEADER, LIBRARIES, CLASSES, etc.).

βš™οΈ Backend Deep Dive

Core Module (backend/core/)

  • app.cs: Centralized error handling, browser launch, and application constants.
  • check.cs: Domain-specific validation logic (Email, Phone, Input patterns).
  • mail.cs: SMTP wrapper for sending verification codes.

Resume Module (backend/resume/)

  • resume.cs: The "Brain". Handles PDF parsing, keyword normalization, and scoring algorithms.
  • query_resume.cs: Data access layer for resume-specific SQL operations.

Auth Module (backend/auth/)

  • query_account.cs: Manages user sessions, registration, and credentials.

🎨 Frontend Design System

Pages (frontend/pages/)

Each page (WinForm) is a standalone container for a specific feature set:

  • Analyser: The primary workspace.
  • Entry: Gateway for login and registration.
  • Account/Password: Support modules for identity management.

Atoms (frontend/atoms/)

Shared UI logic that isn't a full component. Example: C_Ui_Helper.F_Toggle_Eye() which handles password visibility globally.


πŸ—„οΈ Database Schema

The system uses SQL Server LocalDB with the following primary entities:

Accounts Table

  • Username (PK)
  • Email
  • Phone
  • Password (Currently plaintext - see Roadmap)

Resumes Table

  • ID (PK)
  • FileName
  • FilePath
  • Score
  • Status

πŸ”’ Security & Error Handling

Error Boundaries

All external I/O (Database, File System, Network) is wrapped in try-catch blocks that pipe errors to C_App.F_Log_Error().

Global Constants

Configuration is pulled from App.config but exposed through C_Constants to ensure type safety and centralized modification.


❓ FAQ

Q: Why .NET Framework 4.8 instead of .NET 8?

A: The project was originally built on .NET Framework. While we have a Refactor Roadmap to migrate to .NET 8, 4.8 provides excellent stability for Windows desktop environments.

Q: Where are the logs stored?

A: Logs are stored in a /logs folder relative to the executable path, organized by date.


πŸ”— Useful Links