# LLM Darija Translator
An LLM-powered RESTful web service for translating text from English (or any language) into **Moroccan Arabic Dialect (Darija)** — backed by Google Gemini AI.
Built as a complete full-stack project with a Java/Jakarta EE REST backend, secured with HTTP Basic Authentication, and five different client applications.
---
## Features
- **Jakarta REST backend** — JAX-RS resource, CDI service layer, Gemini LLM client
- **HTTP Basic Authentication** — protects the translate endpoint; health/info are public
- **Google Gemini AI** — prompt-engineered to return authentic Darija (not Fusha/Standard Arabic)
- **Chrome Extension** — Manifest V3, right-click context menu, side panel, TTS read-aloud
- **PHP client** — cURL-based web app with a clean UI
- **Python client** — Streamlit app with language selectors
- **React Native mobile app** — Expo, works on Android, iOS, and web
- **Postman collection** — 9 test requests covering all scenarios
- **PlantUML diagrams** — class, deployment, and sequence diagrams
- **CORS support** — all clients can call the backend from any origin (local dev)
---
## Tech Stack
| Layer | Technology |
|----------------|-----------------------------------|
| Backend | Java 21, Jakarta EE 10, JAX-RS |
| Runtime | Payara Micro 6 |
| Config | MicroProfile Config |
| LLM Provider | Google Gemini (gemini-1.5-flash) |
| Security | HTTP Basic Auth (ContainerRequestFilter) |
| JSON | Jakarta JSON-B (request/response) + JSON-P (Gemini parsing) |
| Chrome Ext | Manifest V3, chrome.sidePanel, chrome.contextMenus |
| PHP Client | PHP 7.4+, cURL |
| Python Client | Streamlit, requests |
| Mobile Client | React Native, Expo, axios |
| Build | Maven 3.9+ |
| API Testing | Postman |
| Diagrams | PlantUML …