← Back to project catalogue
GP-CY-0RMFOKBCybersecurityOpen for request

Dataset privacy-risk scanner

A privacy-risk analysis system for detecting direct identifiers, risky attribute combinations, rare records, and disclosure risks in structured datasets before sharing.

  • Nuxt
  • Vue
  • FastAPI
  • PostgreSQL
  • Python
  • Pandas
  • Presidio
  • Docker

Project definition

Problem statement

Removing names and phone numbers does not necessarily make a dataset safe. Combinations such as age, location, occupation, dates, or rare categories can isolate a record and permit re-identification when linked with other information.

The engineering problem is to detect multiple disclosure risks, explain which fields create them, compare mitigation options, and prevent raw personal records from appearing in logs or exported results.

Project objectives

  • Detect selected direct identifiers and identify possible quasi-identifiers and sensitive attributes.
  • Measure uniqueness, k-anonymity, l-diversity, rarity, and missing-value patterns under documented assumptions.
  • Run a controlled linkage simulation using synthetic reference data.
  • Compare generalisation, suppression, removal, and aggregation against data utility.
  • Produce a risk summary that excludes raw personal values and records all assumptions.

System design

System modules

01

Secure dataset intake

Validates local files, profiles schemas in an isolated job, and applies retention and deletion settings.

02

Identifier detector

Uses field names, formats, patterns, and sampled values to suggest direct, quasi, and sensitive attributes for review.

03

Privacy metric engine

Calculates equivalence classes, uniqueness, k-anonymity, l-diversity, rarity, and coverage metrics.

04

Linkage simulator

Measures matching risk against a safe synthetic reference dataset under selected field combinations.

05

Mitigation workbench

Applies selected transformations and compares privacy metrics, row retention, and analytical utility.

Methodology

System workflow

  1. 01
    Load safe dataset

    The student uploads a prepared synthetic dataset and selects retention and analysis settings.

  2. 02
    Review schema

    The scanner proposes attribute roles and the student confirms the analysis assumptions.

  3. 03
    Measure risk

    Privacy metrics and rare combinations are calculated without exposing raw records in the dashboard.

  4. 04
    Simulate linkage

    Selected quasi-identifiers are tested against a synthetic reference table to estimate matchability.

  5. 05
    Compare mitigation

    Transformations are applied and privacy improvement is compared with retained data utility.

Demonstration scenario

A synthetic student dataset is uploaded after names have already been removed. The scanner shows that age, postcode, and programme uniquely identify several rows. A synthetic linkage test confirms the risk, then postcode generalisation and rare-row suppression improve the privacy metrics while the dashboard shows the resulting utility change.

Engineering

Technical architecture

Web application
Nuxt and Vue for schema review, metric exploration, risk explanations, mitigation comparison, and safe export.
Analysis API
FastAPI for file jobs, schema decisions, privacy metrics, linkage simulations, transformations, and summaries.
Metadata layer
PostgreSQL for job metadata, schema roles, configurations, aggregate metrics, and audit events, not raw dataset rows.
Privacy engine
Python, Pandas, and identifier-detection adapters for grouping, rarity, linkage, transformation, and utility measures.
Data controls
Local processing, encryption in transit, short-lived files, redacted logs, aggregate output, and explicit deletion.

Testing

Evaluation

Evaluation measures

  • Precision and recall for prepared direct-identifier and quasi-identifier cases
  • Correctness of privacy metrics against manually calculated examples
  • Linkage-risk detection across prepared synthetic scenarios
  • Privacy improvement and utility loss after each mitigation
  • Absence of raw sensitive values from logs and exported summaries
  • Processing time and memory use across prepared dataset sizes

System boundaries

  • Demonstrations use synthetic, public, or explicitly permitted datasets only.
  • A low measured risk does not prove that a dataset is anonymous under every external data source or attack model.
  • The scanner supports privacy review and does not provide legal or regulatory certification.
  • Raw records are processed locally for the job and are not included in exported summaries.

Included

  1. 01Dataset intake, risk review, and mitigation dashboard
  2. 02Identifier detection, privacy-metric, and linkage-simulation modules
  3. 03Generalisation, suppression, and before-and-after comparison tools
  4. 04Prepared synthetic datasets, risk cases, and evaluation results
  5. 05Complete source code in a private GitHub repository
  6. 06Complete project documentation with synopsis, abstract, methodology, privacy diagrams, test results, screenshots, and conclusion
  7. 07Setup and usage guide

Project record

No buyer information is collected on this page.

Permanent project ID
GP-CY-0RMFOKB
Catalogued
21 Aug 2026
Completed
Pending
Verified
Pending
Demonstration
Added when ready

Handover

After purchase

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.