An open API service indexing awesome lists of open source software.

https://github.com/anasahmed07/robotext

The Best Platform to learn Physical AI & Humanoid Robotics.
https://github.com/anasahmed07/robotext

better-auth book docasaurus documentation express physical-ai robotics ros2

Last synced: 13 days ago
JSON representation

The Best Platform to learn Physical AI & Humanoid Robotics.

Awesome Lists containing this project

README

          

# Robotext

**The Best Platform to Learn Physical AI & Humanoid Robotics**

Robotext is an interactive learning platform that teaches Physical AI, robotics, and embodied intelligence through hands-on projects. From foundational concepts to cutting-edge Vision-Language-Action (VLA) models, learn by building real robotic systems.

## ๐Ÿš€ Features

- **4 Comprehensive Modules**:
- ๐Ÿค– Robotic Nervous System: Sensors, actuators, and control loops
- ๐Ÿ”ท Digital Twin: Simulation and virtual testing environments
- ๐Ÿง  AI Robot Brain: Machine learning and intelligent decision-making
- ๐Ÿ‘๏ธ Vision-Language-Action Models: Multimodal AI for robotics

- **Bilingual Support**: Full English and Urdu (ุงุฑุฏูˆ) content with RTL layout
- **User Authentication**: Secure sign-up, login, and personalized learning profiles
- **Adaptive Learning**: Tailored content based on experience level and hardware setup
- **Dark/Light Mode**: Comfortable learning in any environment

## ๐Ÿ› ๏ธ Tech Stack

### Frontend
- **Framework**: Docusaurus 3.9.2 (React-based static site generator)
- **Language**: TypeScript 5.3.3
- **Styling**: Tailwind CSS 3.x + CSS Modules
- **i18n**: Built-in Docusaurus i18n with English & Urdu
- **Deployment**: GitHub Pages

### Backend
- **Runtime**: Node.js 18+ with Express 4.18.2
- **Language**: TypeScript 5.3.3
- **Authentication**: better-auth 0.8.0 (email/password, 30-day sessions)
- **Database**: Neon PostgreSQL (serverless)
- **ORM**: Drizzle ORM 0.29.5
- **Validation**: Zod 3.22.4
- **Logging**: Winston 3.11.0
- **Deployment**: Railway

## ๐Ÿ“ฆ Project Structure

```
robotext/
โ”œโ”€โ”€ api/ # Backend API (Express + TypeScript)
โ”‚ โ”œโ”€โ”€ src/
โ”‚ โ”‚ โ”œโ”€โ”€ routes/ # API endpoints (auth, user)
โ”‚ โ”‚ โ”œโ”€โ”€ db/ # Database schema & migrations
โ”‚ โ”‚ โ”œโ”€โ”€ auth/ # better-auth configuration
โ”‚ โ”‚ โ”œโ”€โ”€ middleware/ # CORS, logging, error handling
โ”‚ โ”‚ โ””โ”€โ”€ utils/ # Validation schemas
โ”‚ โ””โ”€โ”€ .env.example # Environment variables template
โ”‚
โ”œโ”€โ”€ web/ # Frontend (Docusaurus)
โ”‚ โ”œโ”€โ”€ docs/ # Course content (Markdown)
โ”‚ โ”œโ”€โ”€ src/
โ”‚ โ”‚ โ”œโ”€โ”€ pages/ # Landing, signup, login, onboarding
โ”‚ โ”‚ โ”œโ”€โ”€ components/ # AuthContext, ProtectedRoute, LanguageToggle
โ”‚ โ”‚ โ””โ”€โ”€ css/ # Global styles, RTL support
โ”‚ โ””โ”€โ”€ i18n/ur/ # Urdu translations
โ”‚
โ””โ”€โ”€ specs/ # Feature specifications & planning
โ””โ”€โ”€ 001-foundation-auth/
```

## ๐Ÿš€ Getting Started

### Prerequisites
- Node.js 18+ and npm
- PostgreSQL database (or Neon account)
- Git

### Backend Setup

1. **Clone and navigate**:
```bash
git clone https://github.com/anasahmed07/robotext.git
cd robotext/api
```

2. **Install dependencies**:
```bash
npm install
```

3. **Configure environment**:
```bash
cp .env.example .env
# Edit .env and set:
# - DATABASE_URL (from Neon dashboard)
# - AUTH_SECRET (generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")
```

4. **Run database migrations**:
```bash
npm run db:push
```

5. **Start development server**:
```bash
npm run dev
```

Backend will run on `http://localhost:3000`

### Frontend Setup

1. **Navigate to web directory**:
```bash
cd ../web
```

2. **Install dependencies**:
```bash
npm install
```

3. **Configure environment**:
```bash
cp .env.example .env
# Set REACT_APP_API_URL=http://localhost:3000
```

4. **Start development server**:
```bash
npm start
```

Frontend will run on `http://localhost:3001`

## ๐Ÿ“š Database Schema

- **user**: Core user data (id, email, name, emailVerified)
- **session**: Authentication sessions (token, expiresAt, userId)
- **account**: OAuth providers & password storage
- **verification**: Email verification tokens
- **user_profiles**: Learning profiles (programmingLanguages, rosFamiliarity, roboticsKnowledge, hardwareSpecs)

## ๐ŸŒ Deployment

### Backend (Railway)
1. Create new project in Railway
2. Connect GitHub repository
3. Set environment variables (DATABASE_URL, AUTH_SECRET, FRONTEND_URL)
4. Deploy from main branch

### Frontend (GitHub Pages)
1. Enable GitHub Pages in repository settings
2. Set source to "GitHub Actions"
3. Add `BACKEND_API_URL` secret in repository settings
4. Push to main branch (auto-deploys via GitHub Actions)

## ๐Ÿงช Testing

```bash
# Run tests (when implemented)
cd api && npm test
cd web && npm test

# Lint code
npm run lint

# Format code
npm run format
```

## ๐Ÿ“– Documentation

- **Specification**: `specs/001-foundation-auth/spec.md`
- **Architecture**: `specs/001-foundation-auth/plan.md`
- **Tasks**: `specs/001-foundation-auth/tasks.md`
- **Quick Start**: `specs/001-foundation-auth/quickstart.md`

## ๐Ÿค Contributing

1. Fork the repository
2. Create feature branch (`git checkout -b feature/amazing-feature`)
3. Commit changes (`git commit -m 'Add amazing feature'`)
4. Push to branch (`git push origin feature/amazing-feature`)
5. Open Pull Request

## ๐Ÿ“„ License

This project is licensed under the MIT License.

## ๐Ÿ”— Links

- **Live Site**: [GitHub Pages URL]
- **API**: [Railway URL]
- **Repository**: https://github.com/anasahmed07/robotext

## ๐Ÿ‘ค Author

**Anas Ahmed** - [@anasahmed07](https://github.com/anasahmed07)

---

Built with โค๏ธ using Docusaurus and better-auth