A production-grade AI web application that wraps Google Gemini 2.0 Flash and AssemblyAI into four distinct workplace tools document Q&A, knowledge analysis, meeting transcription, and feedback intelligence. Built solo in PHP with a custom session layer, multi-format file handling, and a full survey engine.
Gemini handles all text-based intelligence. AssemblyAI handles audio-to-text transcription, and hands off to Gemini for structure and analysis. Every workflow persists results to MySQL.
getTranscription() calls the status endpoint every 5 seconds, with a hard cap of 500 attempts (~41 minutes). Status is checked before each poll and the loop exits cleanly on completion or error.file_get_contents() call returns binary noise. TXT, CSV, and audio files each need completely different handling pipelines.ZipArchive to unpack DOCX and extract word/document.xml, file_get_contents() for TXT, parseCSVFile() for CSV with header detection, and binary passthrough to AssemblyAI for audio.share_token per survey, stored separately from the internal ID. survey.php is fully public but only reads via token lookup. Management endpoints verify session ownership before returning any data.uploadToAssemblyAI(), requestTranscription(), and getTranscription(). The orchestrating function analyzeMeetingFiles() calls them in sequence and only passes to Gemini once transcription status is completed.SessionManager class that enforces use_strict_mode, cookie_httponly, use_only_cookies, and regenerates the session ID every 30 minutes. Sessions stored in a dedicated sessions/ directory, not the default system temp.I'm Kodilichukwu Okeke, a full-stack developer and CS graduate (Babcock University, 2026) based in Lagos, Nigeria. Quadri AI is one of three production systems I've built solo — alongside Elite Corporate Setup (pan-African compliance SaaS) and CampusXpress (multi-vendor campus marketplace published in IJSRA).
I specialise in building PHP backends that integrate real third-party APIs not toy demos. Every project I ship has real users, real data flowing through it, and real engineering decisions behind it.
I'm open to web developer and backend developer roles where I can bring this depth of experience to a product team. I move fast, think in systems, and take ownership end-to-end.