AUI mini project: LLM-powered Darija translator with Jakarta REST service, web client, and Chrome extension.
# Darija Translator Project
Course project scaffold for an LLM-powered RESTful web service that translates source text into Moroccan Darija, plus client applications aligned with the assignment deliverables.
## Scope
- Jakarta RESTful Web Service for `TranslatorResource`
- Chrome extension using Manifest V3 and `chrome.sidePanel`
- Web client with a polished chat-style interface
- Placeholder folders for PHP, Python, and React Native clients
- UML documentation workspace and delivery notes
## Current Focus
This iteration now includes a real Gemini-backed translation flow in the Jakarta service, plus slimmer chat-style UIs for the web app and Chrome side panel.
## Repository Structure
```text
translator-service/ Jakarta REST service scaffold
web-app/ Chat-style browser client
chrome-extension/ Manifest V3 side-panel extension
php-client/ Placeholder for PHP client
python-client/ Placeholder for Python client
mobile-client/ Placeholder for React Native client
docs/uml/ UML and architecture notes
```
## Quick Start
### 1. Translator service
```bash
cd translator-service
export GEMINI_API_KEY=your_gemini_key_here
# optional: export GEMINI_MODEL=gemini-2.5-flash
mvn exec:java
```
Default endpoint:
- `POST
127.0.0.1`
- Basic auth demo credentials: `student / translator`
### 2. Web app preview
```bash
cd web-app
python3 -m http.server 4173
```
Then open `
localhost`.
The web app calls the translator service at `
127.0.0.1`.
### 3. Chrome extension preview
Load the `chrome-extension/` folder as an unpacked extension in Chrome, then right-click selected text on any page and choose **Translate selection to Darija**.
The extension also calls the translator service at `
127.0.0.1`.
## Assignment Notes
- REST endpoint: `TranslatorResource`
- Business method: `translate()`
- Security target: basic authentication via Jakarta Authenticat …