You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A comprehensive, enterprise-grade document processing and management platform designed for extracting insights from documents with OCR, AI-powered analysis, secure storage, and multi-provider payment integrations.
Storage is automatically tracked when documents are uploaded and reclaimed when deleted.
Currency Conversion
Real-time Exchange Rates: Prices displayed in user's local currency
60+ Supported Currencies: USD, EUR, GBP, NGN, INR, JPY, AUD, CAD, and more
Daily Rate Updates: Exchange rates refreshed automatically via exchangerate-api.com
Fallback Rates: Cached rates ensure service availability
Multi-Currency Support: Accept payments in multiple currencies
Receipt Generation: Automatic PDF receipt generation with AWS S3 storage
Search & Analytics
Elasticsearch Integration: Full-text search across documents, users, and payments
Kibana Dashboard: Visual analytics and monitoring
Communication & Notifications
Email Services: Multi-provider email support (AWS SES, Mailgun)
SMS Notifications: Twilio integration for SMS/voice notifications
Push Notifications: Real-time notification system
Administration
User Management: View, activate/deactivate users, manage roles
Subscription Plan Management: CRUD operations for subscription plans
Document Oversight: Monitor, view, and moderate documents
System Statistics: Real-time metrics on users, documents, and subscriptions
Admin Action Audit Logging: Track all administrative actions
Cloud & Storage
AWS S3: Secure document and receipt storage
Cloudinary: Image optimization and CDN delivery
CloudFront: Content delivery network integration
Internationalization
Multi-Language Support: i18n ready for multiple languages and regional formats
π Architecture
graph TB
subgraph "Client Layer"
WEB[Web Client]
MOBILE[Mobile Client]
end
subgraph "API Gateway"
API[Spring Boot API<br/>Port: 8080]
end
subgraph "Message Brokers"
RABBIT[RabbitMQ<br/>Port: 5672]
KAFKA[Apache Kafka<br/>Port: 9092]
end
subgraph "Data Layer"
PG[(PostgreSQL<br/>Port: 5432)]
REDIS[(Redis<br/>Port: 6379)]
ES[(Elasticsearch<br/>Port: 9200)]
end
subgraph "Cloud Services"
S3[AWS S3]
SES[AWS SES]
CLOUD[Cloudinary]
GCP[Google Vision]
end
subgraph "Monitoring"
KIBANA[Kibana<br/>Port: 5601]
KAFKA_UI[Kafka UI<br/>Port: 8090]
end
WEB --> API
MOBILE --> API
API --> PG
API --> REDIS
API --> ES
API --> RABBIT
API --> KAFKA
API --> S3
API --> SES
API --> CLOUD
API --> GCP
ES --> KIBANA
KAFKA --> KAFKA_UI
Loading
π Tech Stack
Core Framework
Technology
Version
Purpose
Java
25
Programming Language
Spring Boot
4.0.1
Application Framework
Spring Security
6.x
Authentication & Authorization
Spring Data JPA
3.x
Data Persistence
Spring Data Redis
3.x
Caching
Spring Data Elasticsearch
3.x
Search Engine
Spring AMQP
3.x
RabbitMQ Messaging
Spring Kafka
3.x
Kafka Messaging
Database & Storage
Technology
Version
Purpose
PostgreSQL
17
Primary Database
Redis
7 (Alpine)
Caching & Session Store
Elasticsearch
8.11.0
Full-Text Search
Flyway
10.x
Database Migrations
Message Brokers
Technology
Version
Purpose
RabbitMQ
Latest
Event-Driven Messaging
Apache Kafka
3.7.0
Stream Processing
Cloud Services
Service
Purpose
AWS S3
File Storage
AWS SES
Email Delivery
AWS SNS
Push Notifications
Cloudinary
Image CDN
Google Cloud Vision
OCR Processing
Document Processing
Library
Version
Purpose
Tesseract (Tess4J)
5.15.0
OCR Engine
Apache PDFBox
3.0.4
PDF Processing
Apache POI
5.4.1
Word Document Export
OpenCV
4.9.0
Image Processing
OpenPDF
1.3.35
PDF Generation
Payment Gateways
Provider
SDK Version
Status
Stripe
31.0.0
β Full
Paystack
Custom
β Full
PayPal
-
π² Stub
Flutterwave
-
π² Stub
Chappa
-
π² Stub
Security & Authentication
Technology
Version
Purpose
JWT (jjwt)
0.12.6
Token Authentication
OAuth 2.0
Spring Security
Social Login
Bucket4j
8.1.0
Rate Limiting
Communication
Service
Purpose
Mailgun
Email Delivery
AWS SES
Email Delivery
Twilio
SMS & Voice
Development & Utilities
Tool
Version
Purpose
Lombok
1.18.42
Boilerplate Reduction
MapStruct
1.5.5
Object Mapping
SpringDoc OpenAPI
3.0.0
API Documentation
Logstash Logback
7.4
Structured Logging
Micrometer
Latest
Metrics & Observability
Testing
Framework
Purpose
JUnit 5
Unit Testing
Mockito
Mocking Framework
Spring Security Test
Security Testing
Kafka Test
Kafka Integration Testing
RabbitMQ Test
RabbitMQ Integration Testing
Containerization & CI/CD
Tool
Purpose
Docker
Containerization
Docker Compose
Multi-Container Orchestration
GitHub Actions
CI/CD Pipeline
π Prerequisites
JDK 25 or higher
Apache Maven 3.9.x or higher
Docker and Docker Compose (for containerized deployment)
PostgreSQL 17 (if running locally without Docker)
Redis 7 (if running locally without Docker)
Tesseract OCR installed locally for OCR processing (optional)
API keys for desired integrations:
Payment gateways (Stripe, Paystack)
Email services (Mailgun, AWS SES)
Cloud storage (AWS S3, Cloudinary)
Google Cloud Vision API
π Getting Started
Option 1: Docker Compose (Recommended)
# 1. Clone the repository
git clone https://github.com/Brints/unraveldocs-api.git
cd unraveldocs-api
# 2. Copy environment template
cp .env.example .env
# 3. Configure your environment variables# Edit .env with your credentials# 4. Start all services
docker-compose up -d
# 5. View logs
docker-compose logs -f unraveldocs-api
Option 2: Local Development
# 1. Clone the repository
git clone https://github.com/Brints/unraveldocs-api.git
cd unraveldocs-api
# 2. Start required services (PostgreSQL, Redis)
docker run --name postgres-unraveldocs -p 5432:5432 \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=unraveldocs \
-d postgres:17
docker run --name redis-unraveldocs -p 6379:6379 -d redis:7-alpine
# 3. Configure application properties# Edit src/main/resources/application.properties or use environment variables# 4. Build the project
mvn clean install
# 5. Run the application
mvn spring-boot:run
# 6. Access the application# http://localhost:8080/unraveldocs