# π²π¦ Darija Translator β Full-Stack Project
LLM-powered REST service that translates text into Moroccan Arabic Dialect (Darija),
with a Chrome extension, PHP client, Python client, and React Native mobile app.
---
## Project Structure
```
darija-translator/
βββ java-service/ β Jakarta EE REST service (WAR)
β βββ pom.xml
β βββ src/main/java/ma/translator/
β βββ TranslatorApplication.java JAX-RS bootstrap (@ApplicationPath)
β βββ resource/
β β βββ TranslatorResource.java REST endpoint
β β βββ CorsFilter.java CORS for browser clients
β βββ service/
β β βββ TranslationService.java Calls Google Gemini API
β βββ security/
β β βββ SecurityConfig.java @BasicAuthenticationMechanismDefinition
β β βββ DarijaIdentityStore.java In-memory user store
β βββ model/
β βββ TranslationRequest.java
β βββ TranslationResponse.java
β
βββ chrome-extension/ β Manifest V3 Chrome Extension
β βββ manifest.json
β βββ background.js Service worker: context menu, message routing
β βββ sidepanel.html Side panel UI
β βββ sidepanel.js Logic: translate, TTS, speech, history
β
βββ php-client/
β βββ client.php CLI + web interface
β
βββ python-client/
β βββ client.py CLI + interactive REPL
β
βββ react-native-client/
β βββ package.json
β βββ App.js Full mobile app (Expo)
β
βββ test_api.sh cURL test commands
```
---
## 1 β Java REST Service
### Prerequisites
- JDK 17+
- Maven 3.9+
- A free Google Gemini API key β
ai.google.dev
### Get a Gemini API Key
1. Go to
aistudio.google.com
2. Click **Create API key**
3. Copy the key β you'll set it as an environment variable
### Build & Run (Payara Micro β embedded, no server install needed)
```bash
cd java-service
export GEMINI_API_KEY=y β¦