# Sarthi Lab Desktop AI learning desktop application for school computer labs. ## Quick Start ### 1. Clone & Install ```bash git clone https://github.com/Eduspheria/sarthi_lab.git cd sarthi_lab npm install ``` ### 2. Run Locally ```bash npm run dev ``` Electron app will open at `http://localhost:5174`. Exercises load correctly in dev mode. --- ## Global Command Setup (Run from Anywhere) Set up a global `sarthi-lab` command that works from any terminal directory. ### macOS / Linux #### Symlink Setup ```bash # Make script executable chmod +x launch.sh # Create global symlink (requires sudo) sudo ln -s "$(pwd)/launch.sh" /usr/local/bin/sarthi-lab ``` If `/usr/local/bin` isn't in PATH, add it: ```bash echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc # or ~/.zshrc source ~/.bashrc ``` ### Windows #### Add to PATH 1. **Copy** `launch.bat` to a directory already in PATH: - `C:\Windows\System32` - `C:\Program Files\Git\usr\bin` (if Git installed) 2. **OR add repo to PATH:** - Open **System Properties** → **Environment Variables** - Edit **User variables** → **PATH** - Add `C:\path\to\sarthi_lab` - Restart terminal --- ## Usage ### Basic Launch ```bash sarthi-lab ``` Starts the Electron dev app (`npm run dev`). ### Upgrade Command ```bash sarthi-lab upgrade ``` Pulls latest git changes and updates npm dependencies. ### Command Reference - `sarthi-lab` – Start Sarthi Lab (default) - `sarthi-lab upgrade` – Pull latest changes and update dependencies - `sarthi-lab --help` or `-h` – Show help - `sarthi-lab --version` or `-v` – Show version --- ## Troubleshooting | Issue | Solution | |-------|----------| | `sudo: command not found` (mac/Linux) | Use `~/bin`: `ln -s "$(pwd)/launch.sh" ~/bin/sarthi-lab` | | Permission denied (symlink) | Ensure `/usr/local/bin` exists and is writable | | Windows PATH not working | Use full path: `C:\path\to\sarthi_lab\launch.bat` | | `npm run dev` fails | Check Node.js ≥18, run `npm install` | | Exercises not loading | Ensure you're using dev mode (`npm run dev`); packaged DMG may have issues | --- ## Development ### Scripts - `npm run dev` – Start dev server + Electron - `npm run build` – Build for production - `npm run build:mac` – Build macOS DMG - `npm run build:win` – Build Windows installer - `npm run build:linux` – Build Linux AppImage ### Project Structure ``` sarthi_lab/ ├── src/ # React frontend ├── electron/ # Electron main process ├── dist/ # Production build └── dist-electron/ # Packaged apps ``` --- ## Backend Connection Sarthi Lab connects to a Django backend (cloud or local): - Default: `https://sarthi.eduspheria.com` - Change via Settings screen in app --- ## Notes - **Packaged App Limitation**: Packaged DMG (`file://` origin) may have loading issues. Use `npm run dev` (this launcher) for school deployments. - **Offline Features**: Desktop TTS/STT via Piper/whisper binaries (macOS only in current build). - **Updates**: Use `sarthi-lab upgrade` to pull latest code. --- **Eduspheria** · [eduspheria.com](https://eduspheria.com) · Contact: eduspheria@gmail.com