# đČđŠ 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 âŠ