2.8 KiB
2.8 KiB
Project Structure
This project is organized as a monorepo with multiple frontend applications and a shared backend.
Directory Structure
learn-indo/
├── apps/
│ ├── indonesian-app/ # Indonesian language learning app
│ │ ├── src/
│ │ │ ├── components/
│ │ │ │ ├── SpeechInterface.vue
│ │ │ │ └── ScenarioView.vue
│ │ │ ├── App.vue
│ │ │ └── main.js
│ │ ├── package.json
│ │ ├── vite.config.js
│ │ └── index.html
│ │
│ └── german-app/ # German language learning app
│ ├── src/
│ │ ├── components/
│ │ │ └── GermanSpeechInterface.vue
│ │ ├── views/
│ │ │ ├── HomeView.vue
│ │ │ └── ScenarioView.vue
│ │ ├── App.vue
│ │ └── main.js
│ ├── package.json
│ ├── vite.config.js
│ └── index.html
│
├── backend/ # Shared FastAPI backend
│ ├── languages/
│ │ ├── indonesian/
│ │ └── german/
│ ├── core/
│ ├── main.py
│ └── pyproject.toml
│
├── package.json # Root workspace configuration
└── start-street-lingo.sh # Development startup script
Applications
Indonesian App
- Port: 3000
- URL: http://localhost:3000
- Features: Indonesian language learning with speech recognition and AI conversation
German App
- Port: 3001
- URL: http://localhost:3001
- Features: German language learning with speech recognition and AI conversation
Backend API
- Port: 8000
- URL: http://localhost:8000
- Features: Shared API serving both frontend applications
Development Commands
Root Level Commands
# Install dependencies for all apps
npm run install:all
# Start all services (backend + both frontends)
npm run dev:all
# Build all frontend apps
npm run build:all
# Start individual services
npm run dev:indonesian
npm run dev:german
npm run dev:backend
Individual App Commands
# Indonesian app
cd apps/indonesian-app
npm install
npm run dev
# German app
cd apps/german-app
npm install
npm run dev
Quick Start
# Use the convenience script
./start-street-lingo.sh
API Endpoints
- Indonesian scenarios:
/api/scenarios/indonesian
- German scenarios:
/api/scenarios/german
- WebSocket - Indonesian:
/ws/speech/indonesian
- WebSocket - German:
/ws/speech/german
- Conversation feedback:
/api/conversation-feedback
- Suggestions:
/api/suggestions
- Translation:
/api/translate