# Project N°1 - LLM Powered Translation App
This project focuses on developing an LLM-based application, which involves creating a RESTful web service to be accessed by two client platforms: a web/mobile app built with the technology of our choice and a Chrome extension for enhanced flexibility and ease of use.
In this README file, I will provide an overview of the project, outline the technologies used, describe the implemented features, and offer a step-by-step guide on how to install and run the application locally.
## Project Overview
This project provides translation services from multiple languages using an LLM model, integrating 3 main components:
| Component | Technologies Used |
|-----------|------------------|
| **Backend (API)** | Node.js, Express, Gemini AI API |
| **Frontend (Web & Mobile App)** | React Native, Expo |
| **Frontend (Extension)** | HTML, CSS, JavaScript, Manifest V3 |
**Extra Components:**
| Component | Tools/APIs Used |
|-----------|----------------|
| **Testing** | Postman, Thunder Client |
| **Backend Communication** | Fetch API |
| **Text-to-Speech (Web)** | Speech Synthesis Browser API |
| **Text-to-Speech (Mobile)** | Expo Speech Library |
## Full Pipeline
The following diagram represents the complete pipeline of the application, illustrating the full flow from user interaction through the backend processing to the final output:
## Architecture
The project follows a **client-server** architecture where three frontend clients (Web, Mobile, and Extension) consume the backend API (Node.js server) via HTTP requests using the **Fetch API**. The backend communicates with the **Gemini AI model** by building and sending prompts, then returns the translation response to the clients. The API is **secured** with **authentication**, meaning translation can only be performed if the user is authenticated correctly.
## Backend API
The backend is a RESTful API built with Node.js and Express that handles translation requests.
**Key …