Two AI systems I built end to end — a retrieval-augmented textbook and a multi-agent task application — kept in one repository so each keeps its own git history and its own README.
Live: Physical AI & Humanoid Robotics textbook · Urdu
An eight-chapter interactive textbook on physical AI and humanoid robotics, built as a Docusaurus 3.9 static site with a retrieval chatbot answering from the book's own content.
| Chapters | Introduction to physical AI · humanoid robotics overview · sensors and actuators · navigation and path planning · motion planning and control · machine learning for robotics · human-robot interaction · advanced topics |
| Retrieval | Qdrant vector collection indexed from the chapter sources (backend/index_textbook.py), Google Gemini for embeddings and generation (backend/agent.py) |
| Reading experience | KaTeX maths (remark-math + rehype-katex), Mermaid diagrams, offline search index, per-user personalisation controls |
| Urdu | On-demand translation through the API rather than checked-in translation files, so any chapter can be read in Urdu without a second build |
| Accounts | BetterAuth over Neon Postgres for sign-in, chat history and personalisation (backend/schema.sql) |
| Frontend | Docusaurus 3.9.2, React, TypeScript, Tailwind |
| Backend | FastAPI, deployed serverless on Vercel (backend/vercel.json) |
The static site is what you get at the link above. The chatbot, translation and sign-in features call the FastAPI backend, so they need it reachable and keyed.
The same application rebuilt in three phases, so the repository shows the step from a script to an agent-driven product rather than only the finished state.
| Phase | What it adds |
|---|---|
I — console (phase-i-console/) |
A terminal todo app: the domain model with no web layer at all |
| II — web with persistence | Next.js frontend, FastAPI backend, PostgreSQL, BetterAuth sign-in, profile statistics |
| III — agent | Natural-language task management: create, list, complete, delete and reschedule tasks by chatting |
How the agent phase works. backend/src/agents/task_management_agent.py
uses the OpenAI Agents SDK (from agents import Agent, Runner, function_tool)
with seven @function_tool handlers. The same operations are also exposed as a
Model Context Protocol server — backend/src/mcp_server/server.py, stdio
transport, six tools:
create_task read_tasks update_task complete_task delete_task reschedule_task
so any MCP client can drive the todo backend, not just the built-in chat.
Users supply their own Gemini or OpenAI key; keys are stored encrypted per user and chat history is capped at the last ten messages.
Also in the folder: docker-compose.yml, Kubernetes manifests under k8s/
(DigitalOcean manifests and a Helm chart), Railway and DigitalOcean deploy
scripts, and two end-to-end test suites.
AI & agents OpenAI Agents SDK · Model Context Protocol · Qdrant · Google Gemini · RAG indexing and retrieval Backend Python · FastAPI · PostgreSQL (Neon) · BetterAuth · SQL Frontend Next.js · React · TypeScript · Docusaurus · Tailwind Infra Docker · Docker Compose · Kubernetes · Helm · Vercel · GitHub Pages
- Each subfolder was merged in with
git subtree, so its full history is intact. - These are projects I built to learn and to ship, not maintained libraries. There are no users to speak of and nothing here is running in production for anyone but me.
Abdul Kabir Jawed — Full-Stack & Agentic AI Engineer, Karachi, Pakistan GitHub · LinkedIn · abdulkabirjawed@gmail.com