Initial commit: Sarthi Lab desktop application

This commit is contained in:
2026-03-11 03:59:38 +05:30
commit bb1ec0a584
49 changed files with 15191 additions and 0 deletions

133
README.md Normal file
View File

@@ -0,0 +1,133 @@
# 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