A comprehensive, AI-powered educational platform for learning Physical AI and Humanoid Robotics
This project delivers an AI-native interactive textbook covering Physical AI and Humanoid Robotics across 13 comprehensive modules. It features a RAG-powered chatbot that answers questions using the textbook content, with support for contextual queries based on selected text.
| Feature | Description |
|---|---|
| Interactive Textbook | 13 modules covering ROS2, perception, kinematics, RL, SLAM, ethics & more |
| AI Chatbot | RAG-powered assistant using Qdrant vector search + OpenAI |
| Contextual Queries | Select text and ask questions about specific content |
| User Authentication | JWT-based signup/signin with background questions |
| Modern UI | Responsive Docusaurus site with dark/light mode |
| Session Memory | Chatbot remembers conversation history |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Docusaurus β β ChatbotWidget β β AuthForms β β
β β (13 Modules) β β (React + CSS) β β (JWT Auth) β β
β ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ β
βββββββββββββΌββββββββββββββββββββββΌββββββββββββββββββββββΌββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FASTAPI BACKEND β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β /api/chatbot β β /api/auth β β RAG Service β β
β β query endpoint β β signup/signin β β (OpenAI+Qdrant)β β
β ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ β
βββββββββββββΌββββββββββββββββββββββΌββββββββββββββββββββββΌββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DATA LAYER β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Qdrant β β Neon Postgres β β OpenAI API β β
β β Vector Store β β (User Data) β β (Embeddings) β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| # | Module | Topics |
|---|---|---|
| 1 | ROS2 Nervous System | Nodes, Topics, Services, Actions, Parameters |
| 2 | Robot Sensing & Perception | Cameras, Lidar, IMU, Sensor Fusion |
| 3 | Kinematics & Dynamics | Forward/Inverse Kinematics, Dynamics |
| 4 | Motion Planning & Control | RRT, PRM, PID, Trajectory Planning |
| 5 | Robot Learning & Adaptation | ML for Robotics, Transfer Learning |
| 6 | Humanoid Design & Locomotion | Bipedal Walking, Balance Control |
| 7 | Manipulation & Interaction | Grasping, Force Control, Dexterity |
| 8 | Reinforcement Learning | DRL, Policy Gradients, Sim-to-Real |
| 9 | SLAM | Mapping, Localization, Visual SLAM |
| 10 | Human-Robot Interaction | HRI Design, Safety, Collaboration |
| 11 | Ethics & Safety | Robot Ethics, Safety Standards, LAWS |
| 12 | Advanced Topics | Soft Robotics, Swarms, Foundation Models |
| 13 | Future of Robotics | Trends, Challenges, Opportunities |
- Node.js 18+ and npm
- Python 3.9+
- Git
git clone https://github.com/MohammadNoman/Project-Hackathon-I.git
cd Project-Hackathon-Icd frontend
npm install
npm startThe textbook will be available at http://localhost:3000
cd backend
pip install -r requirements.txt
# Create .env file with your API keys
cp .env.example .env
# Edit .env with your keys:
# - OPENAI_API_KEY
# - QDRANT_HOST
# - QDRANT_API_KEY
# Run the server
uvicorn app.main:app --reloadAPI docs available at http://localhost:8000/docs
cd scripts
python index_content.pyPOST /api/chatbot/query
Content-Type: application/json
{
"query": "What is ROS2?",
"selected_text": "optional context from textbook",
"session_id": "optional-session-id"
}Response:
{
"answer": "ROS2 (Robot Operating System 2) is...",
"sources": [
{"file": "module1/index.md", "section": "Introduction", "score": 0.95}
],
"session_id": "uuid-session-id"
}POST /api/auth/signup
{
"email": "user@example.com",
"password": "securepassword",
"software_background": "intermediate",
"hardware_background": "beginner"
}
POST /api/auth/signin
{
"email": "user@example.com",
"password": "securepassword"
}- Docusaurus 3 - Static site generator with MDX support
- React 18 - UI components (ChatbotWidget, AuthForms)
- TypeScript - Type-safe development
- CSS Modules - Scoped styling
- FastAPI - High-performance Python API framework
- Pydantic - Data validation and settings
- OpenAI API - Embeddings and completions
- Qdrant - Vector similarity search
- JWT - Token-based authentication
- bcrypt - Password hashing
- GitHub Pages - Frontend hosting
- GitHub Actions - CI/CD pipeline
- Qdrant Cloud - Managed vector database
Project-Hackathon-I/
βββ frontend/ # Docusaurus site
β βββ docs/ # 13 course modules
β β βββ module1-ros2-nervous-system/
β β βββ module2-robot-sensing-and-perception/
β β βββ ...
β βββ src/
β β βββ components/
β β β βββ ChatbotWidget/ # AI chatbot UI
β β β βββ AuthForms/ # Login/signup forms
β β βββ theme/
β βββ docusaurus.config.ts
β βββ sidebars.ts
βββ backend/ # FastAPI server
β βββ app/
β β βββ api/
β β β βββ chatbot.py # RAG query endpoint
β β β βββ auth.py # JWT authentication
β β βββ core/
β β β βββ rag.py # RAG service + sessions
β β β βββ config.py # Settings
β β βββ models/
β β βββ schemas.py # Pydantic models
β βββ requirements.txt
βββ scripts/ # Utility scripts
β βββ index_content.py # Qdrant indexing
βββ specs/ # Project specifications
βββ .github/
βββ workflows/
βββ deploy.yml # CI/CD pipeline
The chatbot uses Retrieval-Augmented Generation to answer questions:
- User query is embedded using OpenAI
- Similar content is retrieved from Qdrant
- Context + query sent to LLM for response
- Sources are cited with relevance scores
Users can:
- Select text in the textbook
- Click the chatbot
- Ask questions with the selection as context
- Get highly relevant, focused answers
- Conversations are tracked per session
- Context from previous messages is included
- Sessions persist across page refreshes
# Backend tests
cd backend
pytest
# Frontend type checking
cd frontend
npm run typecheck# Frontend
cd frontend
npm run build
# The build output is in frontend/build/- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Anthropic Claude - AI-assisted development
- OpenAI - Embeddings and language models
- Qdrant - Vector search infrastructure
- Docusaurus - Documentation framework
Built with passion for the future of robotics education
Made by Mohammad Noman