← Back to project catalogue
GP-CS-1CR0SWPComputer ScienceReady

ASP.NET Core document approval and audit system

A tested ASP.NET Core engineering system for immutable document versions, controlled review, separate approval, publication, withdrawal, and tamper-evident audit verification.

ASP.NET Core document approval and audit system project visual
GP-CS-1CR0SWP · Computer Science
  • C#
  • .NET 10
  • ASP.NET Core 10
  • Entity Framework Core 10.0.11
  • PostgreSQL 18.6
  • Npgsql 10.0.3
  • xUnit v3
  • Docker

Project definition

Problem statement

Controlled documents require identifiable versions, distinct reviewers, separation of duties, concurrency protection, and evidence of every accepted action.

The system must reject unauthorised or stale transitions and expose any later alteration of retained audit events.

Project objectives

  • Create immutable document versions with SHA-256 content digests.
  • Require a configurable threshold of distinct reviewers.
  • Enforce role, ownership and separation-of-duties rules.
  • Detect stale writes with monotonic revisions.
  • Build and verify a canonical hash-linked audit chain.

Project structure

Project components

01

Workflow engine

Implements Draft, InReview, ChangesRequested, AwaitingApproval, Approved, Published, and Withdrawn states.

02

Policy guards

Checks actor role, record ownership, reviewer threshold, separation of duties, state, and expected revision.

03

Version store

Preserves immutable version metadata and content digests while keeping reviews attached to the correct version.

04

Audit chain

Canonicalises event fields, links every event to the preceding hash, and verifies the retained sequence.

05

PostgreSQL adapter

Persists documents, versions, reviews, revisions, and audit events with Entity Framework Core constraints.

06

Evidence console

Provides the project purpose and health endpoint without presenting the system as a commercial SaaS workspace.

Methodology

Project workflow

  1. 01
    Create a draft

    A synthetic author creates a controlled document and its first immutable version.

  2. 02
    Submit with a revision

    The API accepts the transition only when the author owns the record and the expected revision is current.

  3. 03
    Review or revise

    Two distinct reviewers accept the version, or a reviewer returns it so the author can create a replacement version.

  4. 04
    Approve and publish

    An eligible approver accepts the reviewed version and a separate publisher releases it.

  5. 05
    Verify evidence

    An auditor recomputes all event hashes and preceding links and reports the first inconsistency.

Demonstration scenario

A synthetic author submits an inspection procedure. A stale repeat is rejected, self-review is rejected, two distinct reviewers accept the version, a separate approver approves it, a publisher releases it, and an auditor verifies all six linked events.

Engineering

Tools and method

Domain model
A dependency-free C# workflow core keeps state rules deterministic and separately testable.
ASP.NET Core API
Minimal typed endpoints, fixed-time API-key comparison, validated synthetic actors, and consistent domain error mapping.
Data model
Entity Framework Core and PostgreSQL store documents, immutable versions, reviewer decisions, revisions, and chained audit events.
Testing
xUnit v3 covers transition policy, ownership, separation of duties, concurrency, integrity and tamper detection.
Reproducibility
Docker Compose runs the API with PostgreSQL and an integration script executes the complete six-event publication flow.

Testing

Evaluation

Evaluation measures

  • 32 of 32 labelled scenarios match their expected result
  • 32 of 32 scenarios remain deterministic across 100 repeats
  • 3,232 total scenario evaluations
  • 46 passing xUnit tests
  • 97.34 percent line, 96.00 percent branch, and 95.23 percent method coverage
  • PostgreSQL integration verifies authentication, stale-write rejection, self-review rejection, two-reviewer approval, publication, and a valid six-event audit chain

Project boundaries

  • All actors and documents are synthetic.
  • The audit chain is tamper-evident and is not an external notarisation or qualified signature.
  • The laboratory does not include production identity, malware scanning, operational retention, regulatory validation, or availability certification.
  • The retained measurements establish reproducibility for the controlled test environment, not production capacity.

Included

  1. 01Approval API, workflow engine, immutable version store, audit verifier, integration stack, and engineering evidence console
  2. 02Prepared sample data and demonstration scenarios
  3. 03Automated tests and measured results
  4. 04Complete source code in a private GitHub repository
  5. 05Complete project documentation in PDF and editable Word formats with synopsis, abstract, methodology, architecture diagrams, test results, screenshots, and conclusion
  6. 06Setup and usage guide

Project record

No information is collected on this page.

Permanent project ID
GP-CS-1CR0SWP
Catalogued
21 Aug 2026
Completed
25 Aug 2026
Verified
25 Aug 2026
Demonstration
Included in repository

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.