# Darija Translator — LLM-powered RESTful Web Service
> **Mini Project 2** · Pr. El Habib Nfaoui
> A secured Jakarta RESTful Web Service that translates text from any source language into **Moroccan Arabic Dialect (Darija)** using the Google Gemini AI API.
---
## Architecture Overview
```
┌─────────────────────────────────────────┐
│ GlassFish 8 Application Server │
│ │
│ darija-translator.war │
│ ├── TranslatorApplication (/api) │
│ ├── TranslatorResource (/translator)│
│ ├── GeminiTranslationService ─────────────► Google Gemini API
│ ├── CorsFilter │
│ └── Basic Auth (web.xml) │
└─────────────────────────────────────────┘
▲ ▲ ▲ ▲
Chrome Ext PHP Client Python React Native
(Manifest V3) (web + CLI) (GUI/CLI) (Expo)
```
---
## Project Structure
```
darija-translator/
├── rest-service/ # Maven WAR project (Jakarta EE 10)
│ ├── pom.xml
│ └── src/main/java/ma/translator/
│ ├── TranslatorApplication.java # JAX-RS bootstrap (@ApplicationPath /api)
│ ├── resource/
│ │ ├── TranslatorResource.java # REST endpoints
│ │ └── CorsFilter.java # CORS response filter
│ ├── service/
│ │ ├── TranslationService.java # Interface (swap LLM providers easily)
│ │ ├── GeminiTranslationService.java
│ │ └── TranslationException.java
│ └── model/
│ ├── TranslationRequest.java
│ └── TranslationResponse.java
│
├── chrome-extension/ # Manifest V3 Chrome extension
│ ├── manifest.json
│ ├── background.js # Service worker
│ ├── content.js # Text-selection listener
│ ├── sidepanel.html / sidepanel.js # Side panel UI
│ └── icons/
│
├── php-client/
│ └── index.php # Web form + CLI PHP client
│
├── python-client/
│ ├── client. …