Primary 5 Practice Quiz ๐ŸŽ“

Live & Interactive

Interactive Web App: A dynamic Science & Math quiz for Primary 5 students. Pulls 5 fresh questions on each play from a public trivia API and scores you in real time.

  • Dynamic Content: Fetches a new random set of questions each round from the Open Trivia DB API — no two runs are the same.
  • Client-Side Logic: Fisher–Yates answer shuffling, instant feedback, live scoring, and a retry flow — all in vanilla JavaScript.
  • Zero Backend: Runs entirely in the browser, served as static files from the same CloudFront distribution as this site.
๐ŸŽฎ Launch Quiz
JavaScript Fetch API Open Trivia DB HTML/CSS

Personal Cloud Portfolio

Live & On-Going

This Website: A modern, responsive personal portfolio built entirely on AWS serverless infrastructure.

  • Infrastructure: Automated provisioning via Terraform (S3 & CloudFront) with custom modules.
  • Secure Authentication: Eliminated long-lived Access Keys (AK/SK) by implementing GitHub OIDC to assume AWS roles with short-lived credentials for Terraform runs.
๐Ÿ›ก๏ธ Repository Security & Governance:
  • Branch Protection: "Main" branch locked. No direct pushes or force pushes allowed.
  • Quality Gates: PRs require approval and passing status checks (Terraform Plan) before merge.
  • Secret Safety: Strict .gitignore policy ensuring no state files (*.tfstate) or variable files (*.tfvars) are committed.
๐Ÿ“‚ View Source Code
Terraform GitHub Actions AWS OIDC S3/CloudFront

Cloud-Native AI Doc Analyzer

Live

Event-Driven AI: An automated pipeline using Amazon Bedrock (Claude 3 Haiku) to summarize and extract insights from PDF documents uploaded to S3.

  • AI Orchestration: Lambda-based workflow using urllib.parse to handle URL-encoded S3 events.
  • Data Persistence: Extracts structured JSON from unstructured text and stores results in DynamoDB.
๐Ÿ›ก๏ธ Advanced Governance & Guardrails:
  • Permissions Boundaries: Implemented a "Maximum Permission Ceiling" to prevent privilege escalation within CI/CD.
  • Forced Inheritance: Automation role is restricted from creating any IAM roles that do not inherit existing security boundaries.
  • Anti-Tampering: Explicit Deny policies prevent the GitHub OIDC role from modifying its own security constraints.
๐Ÿ“„ View Project Documentation
Amazon Bedrock AWS Lambda DynamoDB S3 Terraform Python

Local Secure Doc Analyst ๐Ÿ”’

Completed

Private RAG Tool: A 100% offline tool that allows secure chat with sensitive PDF/Excel documents using local LLMs, ensuring zero data leakage to the cloud.

  • Tech Stack: Built with Python, Streamlit, LangChain, and Ollama.
  • Benchmarks: Tested against Llama 3 (8B) and Mistral-Nemo (12B). Mistral-Nemo proved more accurate in extracting entities from Spanish legal docs.
  • Privacy: Uses ephemeral in-memory vector storage (ChromaDB) to ensure data is wiped instantly after analysis.
๐Ÿ“‚ View Source Code
GenAI Ollama Python Streamlit LangChain ChromaDB

Claude Agent Lab ๐Ÿงช

Runs Locally

Learning by Building: A five-step lab that builds up from a single Claude API call to a working AI agent, adding exactly one concept per step โ€” written to make RAG and MCP concrete rather than abstract.

  • The Agent Loop: Written by hand first โ€” request, execute tool, feed result back, repeat โ€” before handing it to the SDK's tool runner. Every agent framework is a wrapper around this.
  • RAG From Scratch: Load, chunk, embed, cosine search โ€” no vector database and no LangChain, so the mechanics stay visible. Embeddings run locally via Ollama, with a pure-Python TF-IDF fallback.
  • Model Context Protocol: A standalone MCP server exposing the retrieval tools, discovered over JSON-RPC by the agent โ€” and by Claude Code, unchanged.
๐Ÿ” Self-Referential Corpus:

The agent retrieves over five documents describing this very repository's AWS setup โ€” hosting, CI/CD, IAM boundaries, the document-AI pipeline. Every answer can be checked against something already known to be true, which is far harder with a generic sample dataset.

๐Ÿ“‚ View Source Code
Claude API MCP RAG Python Ollama

Serverless Dynamic Backend

Upcoming

Roadmap: Enhancing the static portfolio with dynamic capabilities using a Serverless architecture.

  • Implementing API Gateway as the REST entry point.
  • Developing AWS Lambda functions (Python) to process contact forms and dynamic content.
  • Integration with DynamoDB for data persistence.
API Gateway Lambda (Python) Serverless DynamoDB

AWS Static Site Terraform Module

Completed

Infrastructure as Code: Built a reusable Terraform module to automate the deployment of secure, high-performance static websites.

  • Provisions ACM Certificates for SSL/TLS.
  • Configures CloudFront Distribution with default cache behaviors.
  • Secures S3 Buckets with OAI/OAC policies.
Terraform AWS CloudFront AWS ACM S3 Route53