Skip to content

Kerciu/csv-translation-tool

Repository files navigation

🌍 Semi-Automatic AI-Powered CSV Translation Tool

A web-based platform for semi-automatic CSV translation powered by AI (MarianMT) and enhanced with human validation.

License: MIT


📑 Table of Contents


✨ Features

Category Description
📁 File Handling Upload CSV files, select rows/columns, validate content
🤖 Smart Translation AI-based translation (MarianMT via Rust), error highlighting, Redis caching
🔐 Authentication JWT/OAuth2 login, MongoDB-based session persistence
⬇️ Export Download translated CSV files

🖼️ Screenshots


Home Page


Sign Dialog


Dashboard Page


Tips Dialog


Translation Example


🛠️ Tech Stack

Layer Technologies
Frontend Next.js, React, TypeScript, Tailwind CSS, shadcn/ui
Backend Django, Django REST Framework, Python, JWT, OAuth2
AI/ML Rust, PyO3, MarianMT, Hugging Face
Data MongoDB, Redis
Infrastructure Docker, GitHub Actions, Postman

🧱 Architecture

Architecture Diagram
System architecture of the CSV Translation Tool


🚀 Quick Start

Prerequisites

Setup Instructions

  1. Clone the repository

    git clone https://github.com/Kerciu/csv-translation-tool.git
    cd csv-translation-tool
  2. Ensure Docker Desktop is running

  3. Build and run the application

    docker-compose build
    docker-compose up
  4. Access the app Navigate to http://localhost:3000 Use test_data/example.csv to try it out!


📚 Documentation

🧠 General Overview

  • Project documentation available here

🧪 API Documentation

🛠️ Building with Sphinx (Python)

  1. Install development dependencies

    pip install -r requirements-dev.txt
  2. Generate HTML docs From inside server/docs:

    Linux:

    make html
    xdg-open build/html/index.html

    Windows:

    .\make.bat html
    Start-Process .\build\html\index.html

🧹 Linting & Formatting

Tools Used

  • Python: black, isort, flake8
  • React: ESLint, Prettier
  • Rust: clippy, rustfmt
  • Pre-commit: For unified code quality enforcement

How to Run

Python + React

pip install -r requirements-dev.txt
pre-commit install
pre-commit run --all-files

Rust

cd model
cargo fmt
cargo clippy

🧪 Testing

Python

  1. Run the app:

    docker-compose up
  2. Open shell inside the backend container:

    docker exec -it translator-server bash
  3. Run tests:

    python manage.py test

Rust

  1. Navigate to model directory:

    cd model
  2. Ensure Redis is running on port 6379, then:

    cargo test

📬 Contact

For questions, feedback, or collaboration:

Authors

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •