1- # Comic and Novel Translator
2-
3- A full-stack application that instantly translates comics and manga using AI-powered OCR and translation services. Features a web application, Chrome extension, and production-ready deployment configuration.
4-
5- ## 🌟 Features
6-
7- ### Web Application
8- - ** Drag & Drop Upload** : Upload comic images with ease
9- - ** Advanced OCR** : Multi-language text extraction using Tesseract.js
10- - ** Real-time Translation** : Support for Google Translate and DeepL APIs
11- - ** Image Editor** : Interactive canvas for text selection and editing
12- - ** Batch Processing** : Handle multiple images simultaneously
13- - ** Download Results** : Export translated comics in various formats
14-
15- ### Chrome Extension
16- - ** Universal Compatibility** : Works on MangaDex, Webtoons, Crunchyroll, and more
17- - ** Right-click Translation** : Instantly translate images from context menu
18- - ** Overlay Display** : Non-intrusive translation overlays
19- - ** Auto-translate** : Optional automatic translation on image click
20- - ** Translation History** : Keep track of previous translations
21- - ** Customizable Settings** : Configure languages, services, and behavior
22-
23- ### Production Features
24- - ** Docker Deployment** : Complete containerization with Docker Compose
25- - ** SSL/HTTPS Support** : Automated certificate management
26- - ** Health Monitoring** : Prometheus, Grafana, and Alertmanager integration
27- - ** Load Balancing** : Nginx reverse proxy with rate limiting
28- - ** Automated Backups** : Scheduled backups for data persistence
29- - ** Performance Optimization** : Redis caching and image optimization
30-
31- ## 🚀 Quick Start
32-
33- ### Prerequisites
34- - Node.js 16+ and npm 8+
35- - Docker and Docker Compose (for containerized deployment)
36- - Google Translate API key (required)
37- - DeepL API key (optional, for better translations)
38-
39- ### 1. Clone and Setup
40- ``` bash
41- git clone https://github.com/Opikadash/Inkverta.git
42- cd Inkverta
1+ # Inkverta - Comic and Novel Translator
2+
3+ A full-stack application that instantly translates comics, novels and manga using AI-powered OCR and translation services. Features a web application, Chrome extension, and production-ready deployment configuration.
4+
5+ Production guide: see deployment/PRODUCTION.md.
6+
7+ 🌟 Features
8+ Web Application
9+ Drag & Drop Upload: Upload comic images with ease
10+ Advanced OCR: Multi-language text extraction using Tesseract.js
11+ Real-time Translation: Support for Google Translate and DeepL APIs
12+ Novel/Text Mode: Paste and translate text (no OCR required)
13+ Image Editor: Interactive canvas for text selection and editing
14+ Batch Processing: Handle multiple images simultaneously
15+ Download Results: Export translated comics in various formats
16+ Chrome Extension
17+ Universal Compatibility: Works on MangaDex, Webtoons, Crunchyroll, and more
18+ Right-click Translation: Instantly translate images from context menu
19+ Overlay Display: Non-intrusive translation overlays
20+ Auto-translate: Optional automatic translation on image click
21+ Translation History: Keep track of previous translations
22+ Customizable Settings: Configure languages, services, and behavior
23+ Production Features
24+ Docker Deployment: Complete containerization with Docker Compose
25+ SSL/HTTPS Support: Automated certificate management
26+ Health Monitoring: Prometheus, Grafana, and Alertmanager integration
27+ Load Balancing: Nginx reverse proxy with rate limiting
28+ Automated Backups: Scheduled backups for data persistence
29+ Performance Optimization: Redis caching and image optimization
30+ 🚀 Quick Start
31+ Prerequisites
32+ Node.js 16+ and npm 8+
33+ Docker and Docker Compose (for containerized deployment)
34+ Google Translate API key (required)
35+ DeepL API key (optional, for better translations)
36+ 1 . Clone and Setup
37+ git clone https://github.com/your-username/comic-translator.git
38+ cd comic-translator
4339npm run setup
44- ```
45-
46- ### 2. Configure Environment
47- ``` bash
40+ 2 . Configure Environment
4841# Edit backend/.env and add your API keys
4942cp backend/.env.example backend/.env
5043# Add your GOOGLE_TRANSLATE_API_KEY and DEEPL_API_KEY
51- ```
52-
53- ### 3. Development Mode
54- ``` bash
44+ 3 . Development Mode
5545# Start both backend and frontend
5646npm run dev
5747
5848# Or start individually
5949npm run dev: backend # Starts on http://localhost:3001
6050npm run dev: frontend # Starts on http://localhost:3000
61- ```
62-
63- ### 4. Production Deployment
64- ``` bash
51+ 4 . Production Deployment
6552# Using Docker Compose (recommended)
6653npm run docker: prod
6754
6855# Or manual deployment
6956npm run build
7057npm run start
71- ```
72-
73- ## 📁 Project Structure
74-
75- ```
58+ 📁 Project Structure
7659comic-translator/
7760├── backend/ # Node.js/Express API
7861│ ├── src/
@@ -99,31 +82,24 @@ comic-translator/
9982├── deployment/ # Production configs
10083├── monitoring/ # Monitoring setup
10184└── scripts/ # Utility scripts
102- ```
103-
104- ## 🛠️ API Documentation
105-
106- ### Upload Endpoints
107- - ` POST /api/upload/single ` - Upload single image
108- - ` POST /api/upload/multiple ` - Upload multiple images
109-
110- ### OCR Endpoints
111- - ` POST /api/ocr/extract ` - Extract text from image
112- - ` POST /api/ocr/batch ` - Batch text extraction
113-
114- ### Translation Endpoints
115- - ` POST /api/translate ` - Translate text
116- - ` POST /api/translate/batch ` - Batch translation
117- - ` GET /api/translate/languages ` - Get supported languages
118-
119- ### Health Endpoints
120- - ` GET /api/health ` - Application health status
121- - ` GET /api/health/ready ` - Readiness probe
122-
123- ## 🔧 Configuration
124-
125- ### Environment Variables
126- ``` bash
85+ 🛠️ API Documentation
86+ OpenAPI spec is served at GET /api/openapi.yaml (and is also available at backend/openapi.yaml).
87+
88+ Upload Endpoints
89+ POST /api/upload/single - Upload single image
90+ POST /api/upload/multiple - Upload multiple images
91+ OCR Endpoints
92+ POST /api/ocr/extract - Extract text from image
93+ POST /api/ocr/batch - Batch text extraction
94+ Translation Endpoints
95+ POST /api/translate - Translate text
96+ POST /api/translate/batch - Batch translation
97+ GET /api/translate/languages - Get supported languages
98+ Health Endpoints
99+ GET /api/health - Application health status
100+ GET /api/health/ready - Readiness probe
101+ 🔧 Configuration
102+ Environment Variables
127103# Server Configuration
128104NODE_ENV=production
129105PORT=3001
@@ -141,18 +117,13 @@ OCR_OEM=3
141117# Cache and Performance
142118CACHE_TTL=3600
143119RATE_LIMIT_MAX=100
144- ```
145-
146- ### Chrome Extension Setup
147- 1 . Open Chrome → Extensions → Developer mode
148- 2 . Click "Load unpacked"
149- 3 . Select the ` chrome-extension ` folder
150- 4 . Configure settings in the extension popup
151-
152- ## 🚀 Deployment Options
153-
154- ### 1. Docker (Recommended)
155- ``` bash
120+ Chrome Extension Setup
121+ Open Chrome → Extensions → Developer mode
122+ Click "Load unpacked"
123+ Select the chrome-extension folder
124+ Configure settings in the extension popup
125+ 🚀 Deployment Options
126+ 1 . Docker (Recommended)
156127# Production deployment
157128docker-compose -f deployment/docker-compose.prod.yml up -d
158129
@@ -161,60 +132,43 @@ docker-compose -f docker/docker-compose.dev.yml up
161132
162133# With monitoring
163134npm run monitoring: up
164- ```
165-
166- ### 2. Railway
167- ``` bash
135+ 2 . Railway
168136# Deploy backend to Railway
169137railway up --service backend
170138
171139# Configure environment variables in Railway dashboard
172- ```
173-
174- ### 3. Heroku
175- ``` bash
140+ 3 . Heroku
176141# Deploy using Heroku CLI
177142heroku create comic-translator-app
178143git push heroku main
179- ```
180-
181- ### 4. Manual VPS
182- ``` bash
144+ 4 . Manual VPS
183145# Run setup script
184146./scripts/setup.sh
185147
186148# Deploy with SSL
187149./scripts/deploy.sh production
188- ```
189-
190- ## 📊 Monitoring
191-
150+ 📊 Monitoring
192151The application includes comprehensive monitoring:
193152
194- - ** Prometheus** : Metrics collection and alerting
195- - ** Grafana** : Beautiful dashboards and visualizations
196- - ** Alertmanager** : Smart alert routing and management
197- - ** Loki** : Centralized logging
198- - ** Node Exporter** : System metrics
199-
153+ Prometheus: Metrics collection and alerting
154+ Grafana: Beautiful dashboards and visualizations
155+ Alertmanager: Smart alert routing and management
156+ Loki: Centralized logging
157+ Node Exporter: System metrics
200158Access monitoring:
201- - Grafana: http://localhost:3002 (admin/admin)
202- - Prometheus: http://localhost:9090
203- - Alertmanager: http://localhost:9093
204-
205- ## 🔒 Security Features
206-
207- - Rate limiting on all endpoints
208- - CORS protection
209- - Helmet.js security headers
210- - File type validation
211- - Size limits on uploads
212- - SSL/TLS encryption
213- - Input sanitization
214-
215- ## 🧪 Testing
216159
217- ``` bash
160+ Grafana: http://localhost:3002 (admin/admin)
161+ Prometheus: http://localhost:9090
162+ Alertmanager: http://localhost:9093
163+ 🔒 Security Features
164+ Rate limiting on all endpoints
165+ CORS protection
166+ Helmet.js security headers
167+ File type validation
168+ Size limits on uploads
169+ SSL/TLS encryption
170+ Input sanitization
171+ 🧪 Testing
218172# Run all tests
219173npm run test
220174
@@ -229,36 +183,25 @@ npm run lint
229183
230184# Code formatting
231185npm run format
232- ```
233-
234- ## 📝 Contributing
235-
236- 1 . Fork the repository
237- 2 . Create a feature branch: ` git checkout -b feature-name `
238- 3 . Make your changes and add tests
239- 4 . Run tests: ` npm run test `
240- 5 . Commit: ` git commit -m 'Add feature' `
241- 6 . Push: ` git push origin feature-name `
242- 7 . Create a Pull Request
243-
244- ## 📄 License
245-
246- This project is licensed under the MIT License - see the [ LICENSE] ( LICENSE ) file for details.
247-
248- ## 🆘 Support
249-
250- - 📧 Email: InkvertaSupport@yourcomictranslator.com
251- - 🐛 Issues: [ GitHub Issues] ( https://github.com/Opikadash/Inkverta/issues )
252- - 📖 Documentation: [ Wiki] ( https://github.com/Opikadash/Inkverta/wiki )
253- - 💬 Discord: [ Join our community] ( https://discord.gg/comic-translator )
254-
255- ## 🙏 Acknowledgments
256-
257- - [ Tesseract.js] ( https://tesseract.projectnaptha.com/ ) for OCR capabilities
258- - [ Google Translate API] ( https://cloud.google.com/translate ) for translation services
259- - [ DeepL API] ( https://www.deepl.com/api ) for high-quality translations
260- - [ React] ( https://reactjs.org/ ) and [ Express] ( https://expressjs.com/ ) communities
261-
262- ---
263-
186+ 📝 Contributing
187+ Fork the repository
188+ Create a feature branch: git checkout -b feature-name
189+ Make your changes and add tests
190+ Run tests: npm run test
191+ Commit: git commit -m 'Add feature'
192+ Push: git push origin feature-name
193+ Create a Pull Request
194+ 📄 License
195+ This project is licensed under the MIT License - see the LICENSE file for details.
196+
197+ 🆘 Support
198+ 📧 Email: InkvertaSupport@yourcomictranslator.com
199+ 🐛 Issues: GitHub Issues
200+ 📖 Documentation: Wiki
201+ 💬 Discord: Join our community
202+ 🙏 Acknowledgments
203+ Tesseract.js for OCR capabilities
204+ Google Translate API for translation services
205+ DeepL API for high-quality translations
206+ React and Express communities
264207⭐ If you find this project helpful, please give it a star on GitHub!
0 commit comments