Skip to content

udaycodespace/credify-verify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•    β•šβ–ˆβ–ˆβ•”β•
β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘        β–ˆβ–ˆβ•‘
 β•šβ•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β• β•šβ•β•β•šβ•β•        β•šβ•β•
β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•    β•šβ–ˆβ–ˆβ•”β•
 β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘        β–ˆβ–ˆβ•‘
  β•šβ•β•β•β•  β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•šβ•β•        β•šβ•β•

Independent Offline Verification Client for Academic Credentials


Status License Last Commit


HTML5 CSS3 JavaScript GitHub Pages


Offline Verification Β· Deterministic Validation Β· Independent Trust Boundary

Browser-native academic credential verification engine designed for offline validation, tamper detection, and issuer trust verification without backend dependency.


Live Client β€’ Architecture β€’ Verification Workflow β€’ Deployment β€’ Roadmap


πŸ“˜ Overview

Note

Credify Verify is an independent verification client engineered to validate academic credentials entirely inside the browser without relying on external APIs, centralized infrastructure, or runtime backend systems.

Traditional verification systems commonly fail under:

  • backend downtime
  • API dependency
  • centralized verification bottlenecks
  • institution-side availability issues
  • network instability

Credify Verify removes those dependencies completely.

The verification engine:

  • extracts credential proofs directly in-browser
  • validates issuer trust locally
  • checks credential integrity deterministically
  • works offline for primary verification flows
  • preserves an isolated trust boundary

🎯 Verification Philosophy

Important

A verifier that depends completely on an external server is not truly independent verification.

Credify Verify shifts the verification trust boundary directly to the client runtime.


✨ Core Capabilities

πŸ” Verification Engine

  • Client-side PDF parsing
  • QR payload extraction
  • Deterministic proof validation
  • Offline verification flows
  • Tamper detection engine
  • Browser-native execution

πŸ” Trust Model

  • Local issuer trust registry
  • Explicit trust boundaries
  • Zero backend dependency
  • No runtime authentication
  • Independent validation logic
  • Offline-first verification

⚑ Runtime Design

  • Zero framework overhead
  • No package managers
  • No external APIs
  • Static deployment architecture
  • Portable browser execution
  • Minimal runtime complexity

πŸ—οΈ System Architecture

Important

The verification engine is intentionally isolated from the credential issuance platform.

Verification must remain operational even if the issuing infrastructure becomes unavailable.


πŸ”„ Verification Workflow

flowchart TD

A[Upload Academic PDF]
--> B[Client-side Extraction]

B --> C[QR / Metadata Parsing]

C --> D[Issuer Trust Validation]

D --> E[Anchor Verification]

E --> F{Validation Result}

F -->|Valid| G[Verified]

F -->|Tampered| H[Tampered]
Loading

🌐 Trust Boundary Model

flowchart TD

User --> Browser

Browser --> PDFExtraction
Browser --> LocalRegistry

PDFExtraction --> ValidationEngine

LocalRegistry --> ValidationEngine

ValidationEngine --> VerificationResult
Loading

πŸ” Verification Isolation Model

flowchart TD

A[Credify Issuance Platform]
B[Blockchain Network]
C[Credify Verify Client]

A -. Independent Boundary .-> C
B -. Independent Boundary .-> C

C --> D[Offline Verification Runtime]
Loading

🧠 Architecture Principles

Principle Why It Exists
Offline Verification Verification must continue functioning without internet or backend availability.
Independent Trust Boundary Validation logic remains operational independently from issuance infrastructure.
Deterministic Validation Verification results remain predictable, explainable, and reproducible.
Zero Dependency Runtime Reducing runtime complexity improves portability and maintainability.
Explicit Trust Mapping Issuer trust relationships remain human-readable and auditable.

βš™οΈ Verification Workflow

πŸ“Œ End-to-End Validation Lifecycle

sequenceDiagram

participant User
participant Browser
participant Registry
participant Validator

User->>Browser: Upload PDF

Browser->>Validator: Extract proof payload

Validator->>Registry: Validate issuer trust

Validator-->>Browser: Verification verdict

Browser-->>User: Verified / Tampered
Loading

πŸ”¬ Core Mechanics

πŸ“„ Client-Side Extraction

  • Parses academic PDFs directly in-memory
  • Extracts embedded metadata
  • Detects QR payloads
  • Avoids external processing pipelines
  • Preserves local-only execution

πŸ” Deterministic Validation

  • Validates issuer identity
  • Checks trust registry mappings
  • Produces binary verification verdicts
  • Detects tampered payloads
  • Preserves audit-friendly verification

🧩 Technical Stack

Frontend

Technology Purpose
HTML5 Structure & rendering
CSS3 Interface styling
Vanilla JavaScript Verification engine
Browser APIs File extraction & parsing

Runtime Architecture

Layer Decision
Backend None
Database None
Authentication None
APIs None
Deployment Static hosting

Verification Infrastructure

Component Purpose
trusted_issuers.json Local trust registry
QR Payloads Verification anchors
Browser Memory Runtime Local verification
Static Assets Offline-first execution

⚠️ Engineering Challenges

πŸ“„ In-Browser PDF Parsing

Warning

Most browser-side PDF tooling introduces unnecessary runtime weight and inconsistent parsing behavior across edge-case academic documents.

Engineering Decisions

  • lightweight extraction pipeline
  • targeted academic document parsing
  • reduced dependency footprint
  • minimized runtime complexity
  • browser-native execution

πŸ” Trust Model Tradeoffs

Note

A local trust registry is operationally simple but does not provide complete cryptographic trust finality.

Future Direction

  • signed trust registries
  • issuer key rotation
  • remote signature validation
  • distributed trust synchronization
  • enterprise-grade verification controls

πŸ–ΌοΈ Interface Overview

πŸ“„ Scan Interface


βœ… Verification Success


⚠️ Tampered Detection


πŸ“˜ Information & Documentation


πŸš€ Deployment

Tip

Since the system is fully static and dependency-free, deployment can be performed on nearly any static hosting provider.


Requirements

  • Chrome
  • Edge
  • Firefox
  • Modern browser with File API support

Local Development

# Clone repository
git clone https://github.com/udaycodespace/credify-verify.git

cd credify-verify

# Start local server
python -m http.server 8000

Application Endpoint

http://localhost:8000

πŸ“‚ Project Structure

credify-verify/
β”‚
β”œβ”€β”€ index.html
β”‚
β”œβ”€β”€ data/
β”‚   └── trusted_issuers.json
β”‚
β”œβ”€β”€ js/
β”‚   └── app.js
β”‚
β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ scan.html
β”‚   β”œβ”€β”€ result.html
β”‚   └── tampered.html
β”‚
└── assets/

πŸ§ͺ Validation Scenarios

Supported Flows

  • Offline PDF verification
  • QR proof validation
  • Issuer trust matching
  • Tampered credential detection
  • Air-gapped institutional verification

Failure Detection

  • Unknown issuer
  • Invalid proof payload
  • Missing trust mapping
  • Corrupted metadata
  • Modified credential structure

πŸ› οΈ Troubleshooting

Warning

Browser security restrictions can block local file access if the project is opened directly through the filesystem.


Common Issues

Unknown Issuer

The issuer metadata or public key is missing from:

data/trusted_issuers.json

Browser Blocking APIs

Never open:

index.html

directly through:

file://

Always use a local HTTP server.


πŸ›£οΈ Development Roadmap

Planned Enhancements

  • Client-side RSA signature verification
  • Signed issuer trust registries
  • Dynamic issuer key rotation
  • End-to-end testing pipeline
  • GitHub Pages CI/CD integration
  • Enhanced tamper heuristics
  • Blockchain anchor synchronization

πŸ‘₯ Governance & Access

Important

Structural modifications affecting the trust model or validation engine require architectural review before integration.


Contribution Model

  • Architecture-first review process
  • Validation-focused contributions
  • Controlled trust-boundary modifications
  • Deterministic verification guarantees

πŸ‘¨β€πŸ’» System Architect

udaycodespace

Architecture Verification Engine Frontend Trust Model

πŸ’» ⚑ πŸ”


πŸ“œ License

Note

Proprietary β€” All rights reserved.

See:

LICENSE

for usage restrictions and ownership details.



Built as an independent verification boundary for the Credify ecosystem


Offline-first Β· Deterministic Β· Dependency-free


About

Scan. Verify. Trust.

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-FAQ.md

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors