Logo Lanfrica

elm725/darija-tanslation

Domain:

natural language processing

Record type:

software
Creator:
elm
Host:
# Darija Translator — LLM-powered RESTful Web Service Translate text from supported source languages such as **English** and **French** into **Moroccan Arabic Dialect (Darija)** using Google Gemini Flash through a Jakarta EE REST endpoint with Basic Authentication. --- ## Project structure ``` . ├── pom.xml ├── src/main/java/ma/translator/ ← Jakarta REST service classes ├── src/main/webapp/ ← deployment descriptors ├── src/main/chrome extension/ ← Chrome Extension (Manifest V3) ├── src/main/php client/ ← PHP web client ├── src/main/python client/ ← Python CLI client ├── src/main/react native client/ ← React Native mobile app ├── docs/ ← UML deliverables └── test-api.sh ← curl-based API smoke tests ``` --- ## 1. Server setup ### Prerequisites - JDK 17+ - Maven 3.9+ - GlassFish 7 or Payara 6 (Jakarta EE 10) - A Google Gemini API key (free tier: ai.google.dev) ### Build ```bash mvn clean package ``` ### Configure Gemini API key ```bash export GEMINI_API_KEY=your_key_here ``` ### Create a user in GlassFish ```bash # Start GlassFish ./glassfish7/bin/asadmin start-domain # Create user "apiuser" in group "translator-group" ./glassfish7/bin/asadmin create-file-user \ --groups translator-group \ --authrealmname file \ apiuser # Enter password when prompted ``` ### Deploy ```bash ./glassfish7/bin/asadmin deploy target/darija-translator.war ``` The service is now at: `localhost` --- ## 2. REST API reference ### Health check (no auth) ```bash curl localhost ``` ### Quick guided terminal translation ```bash ./translate-now.sh ``` ### POST — translate JSON body ```bash curl -X POST localhost \ -H "Content-Type: application/json" \ -u apiuser:changeme123 \ -d '{"text": "Hello, how are …