IN-BUILD SYSTEM ARCHITECTURE
UniJos Central Data Platform (AI Research Cloud)
Institutional academic research and dataset processing platform for the University of Jos. Allows students to upload survey datasets and project hypotheses, generating automated statistical tables (ANOVA, regression) and thesis Chapter 4 discussions via an integrated Gemini AI analytical engine.
THE INDUSTRY GAP
University undergraduates and postgraduates spend months stuck on Chapter 4 (Data Analysis), paying external consultants up to ₦50,000 for buggy SPSS outputs that frequently fail oral thesis defense.
HOW EMMANUEL ARCHITECTS IT
Engineered using React 18, Vite, TypeScript, and Google Gemini API services coupled with client-side statistical parsing to automate hypothesis testing and APA 7th edition table generation.
COMMERCIAL SIGNIFICANCE
Reduces academic research analysis turnaround from 6 weeks to 5 minutes, ensuring statistically sound, defense-ready research chapters.
PostgreSQL Metadata Architecture
CREATE TABLE `research_datasets` (
`id` UUID PRIMARY KEY DEFAULT gen_random_uuid(),
`doi_identifier` VARCHAR(64) UNIQUE NOT NULL,
`faculty_id` VARCHAR(16) NOT NULL,
`department` VARCHAR(64) NOT NULL, -- e.g. 'Department of Physics'
`dataset_title` VARCHAR(255) NOT NULL,
`file_manifest_s3` JSONB NOT NULL,
`citation_count` INT DEFAULT 0,
`peer_review_status` ENUM('SUBMITTED', 'VERIFIED', 'PUBLISHED'),
`created_at` TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_department_doi ON research_datasets (department, doi_identifier);
- Automated JSONB validation for multi-dimensional experimental physics matrix payloads
- Hierarchical department and faculty categorization matching University of Jos academic structure
- Permanent CrossRef DOI resolution for all open-access publication records
Telemetry Ingestion Pipeline
@app.post("/api/v1/telemetry/ingest")
async def ingest_sensor_matrix(payload: ExperimentalTelemetrySchema):
# Verify faculty cryptographic signature
is_valid = verify_academic_signature(payload.signature, payload.faculty_key)
if not is_valid:
raise HTTPException(status_code=403, detail="Unverified researcher certificate")
job = await queue.enqueue(
"process_experimental_matrix",
dataset_id=payload.dataset_id,
raw_matrix=payload.matrix_data
)
return {"status": "INGESTED", "job_id": job.id}
- Zero Data Corruption: Enforces SHA-256 hash checks on all research uploads before permanent archival
- Asynchronous Analysis: Celery workers compute standard deviations, linear regressions, and error margins
- Role-Based Access: Separate portals for Academic Staff, Examination Officers, and Postgraduate Fellows