An intelligent, collaborative digital library platform that combines real-time conversations, AI-powered insights, and seamless cross-platform reading into one unified experience.
ReadRealm transforms how people discover, read, and discuss books. Whether you're on mobile, desktop, or webβyour library, conversations, and reading progress sync instantly. Powered by advanced AI and built on cutting-edge cloud infrastructure, ReadRealm empowers readers to go beyond the page.
| π― | Problem | ReadRealm Solution |
|---|---|---|
| π | Scattered reading across devices | Android & iOS client apps + Flutter adminβyour library everywhere |
| π€ | Passive reading experience | AI-powered insights, smart recommendations, real-time chat |
| π¬ | Reading in isolation | Engage with AI assistants & other readers instantly |
| π€ | Text-heavy interfaces | Voice commands & audio narration with Azure Cognitive Services |
| π | Sync headaches | Automatic cross-platform sync in milliseconds |
Frontend (Client Applications):
- π± Android Client: Native Kotlin + Jetpack Compose
- π iOS Client: Native Swift
- π₯οΈ Admin Dashboard: Flutter cross-platform (Web, Desktop, macOS)
Backend (Single Source of Truth):
- π’ NestJS API: TypeScript, RESTful + WebSocket
- ποΈ MongoDB: Scalable data persistence
- π€ AI Services: Google AI, HuggingFace, Azure Cognitive Services
- Framework: NestJS 10 with TypeScript
- Database: MongoDB with Mongoose ORM
- Real-time: Socket.IO for instant chat & collaboration
- API: RESTful architecture with OpenAPI specification
- AI: Google Generative AI, HuggingFace, Azure Cognitive Services
- Speech: Real-time audio processing with FFmpeg
graph TB
subgraph Clients["π± Client Apps"]
Android["π± Android Client<br/>(Kotlin + Compose)"]
iOS["π iOS Client<br/>(Swift)"]
end
subgraph Admin["π₯οΈ Admin Dashboard"]
Dashboard["π Flutter Admin<br/>(Web/Desktop)"]
end
subgraph Backend["βοΈ Backend Layer"]
API["NestJS API<br/>(TypeScript)"]
Auth["π Auth Service"]
Chat["π¬ Socket.IO<br/>(Real-time)"]
end
subgraph Services["π€ External Services"]
AI["Google AI<br/>HuggingFace<br/>Azure Cognitive"]
Database["ποΈ MongoDB"]
end
Android -->|REST/WebSocket| API
iOS -->|REST/WebSocket| API
Dashboard -->|REST/WebSocket| API
API --> Auth
API --> Chat
API --> Database
API --> AI
Chat -.->|Events| Android
Chat -.->|Events| iOS
Chat -.->|Events| Dashboard
Organize thousands of books with AI-powered categorization, smart search, and personalized recommendations based on reading habits and preferences.
Discuss books with AI assistants and other readers instantly. Socket.IO powers millisecond-latency conversations with automatic sync across all your devices.
- Speech-to-text for hands-free interaction
- AI-powered text-to-speech using Azure Cognitive Services
- Perfect for commuters, visually impaired users, and multitaskers
Read a book on Android in the morning, continue on your iPad at lunch, finish on desktop at nightβyour progress, bookmarks, and notes follow you everywhere.
- Content Generation: Auto-generated summaries and analysis
- Smart Recommendations: Books tailored to your taste
- Study Aids: Key points extraction, Q&A generation
- Multi-provider AI: Google, HuggingFace, and Azure working together
Professional e-book rendering with rich formatting, embedded fonts, images, and styling. No compromises on reading experience.
- JWT-based authentication
- Email verification & 2FA ready
- Secure password hashing
- API key management for AI services
Your development environment needs (select based on what you're developing):
For Backend (API):
β
Node.js 20+
β
MongoDB 5+ (local or cloud instance)
For Android Client:
β
Android SDK 24+
β
Gradle 8+
β
Kotlin 1.9+
For iOS Client:
β
Xcode 15+ (macOS only)
β
CocoaPods (dependency manager)
For Admin Dashboard (Flutter):
β
Flutter SDK 3.20+
β
Dart SDK 3.4+
Optional:
β
Docker (containerized deployment)
β
Git (version control)
Before running the backend, configure environment variables:
# 1. Copy template to actual config
cp apps/api/.env.example apps/api/.env
# 2. Edit with your API keys
# Required variables:
# - MONGODB_URL: MongoDB connection string
# - JWT_SECRET: Authentication secret (min 32 chars)
# - GOOGLE_AI_KEY: Google Generative AI key
# - HUGGINGFACE_API_KEY: HuggingFace API key
# - AZURE_*: Azure Cognitive Services keys
# - MAIL_*: Email service configuration
nano apps/api/.env # or open in your editorConfiguration Reference:
- Shared Reference: shared/config/.env.example β All available variables
- Backend Template: apps/api/.env.example β Backend-specific setup
- Docker Setup: Use environment variables when running
docker-compose up
# 1. Clone repository
git clone https://github.com/aliammari1/readrealm.git
cd readrealm
# 2. Install backend dependencies
cd apps/api && npm ci && cd ../..
# 3. Install admin dashboard dependencies
cd apps/dashboard && flutter pub get && cd ../..
# 4. Configure backend environment (see Environment Setup above)
cp apps/api/.env.example apps/api/.env
# Edit apps/api/.env with your API keys| Layer | App | Command | Purpose |
|---|---|---|---|
| Backend π’ | API | cd apps/api && npm run start:dev |
Core server on http://localhost:3000 |
| Clients π± | Android | cd apps/android && ./gradlew installDebug |
Native Android reader app |
| Clients π± | iOS | Open apps/ios/Runner.xcworkspace in Xcode |
Native iOS reader app |
| Admin π₯οΈ | Flutter Dashboard | cd apps/dashboard && flutter run -d chrome |
Admin dashboard (Web/Desktop) |
For Taskfile users (recommended):
task setup # First-time setup (install all deps)
task api:dev # Backend: Start API development server
task android:build # Client: Build Android APK
task ios:build # Client: Build iOS app
task dashboard:run # Admin: Start Flutter dashboard
task test # Backend: Run all testsreadrealm/
βββ apps/ # Multi-tier Application Suite
β β
β βββ api/ # π BACKEND - Core API Server
β β βββ Behind all client apps, serving Android, iOS, and Admin Dashboard
β β βββ src/
β β β βββ auth/ # JWT authentication & guards
β β β βββ book/ # Book management, EPUB processing
β β β βββ chat/ # Socket.IO real-time chat
β β β βββ user/ # User profiles & management
β β β βββ verification/ # Email verification workflows
β β β βββ speech-realtime/ # Voice integration
β β β βββ guards/ # Auth guards & middleware
β β β βββ logger/ # Structured logging
β β β βββ main.ts # App entry point
β β βββ test/ # E2E tests (Jest)
β β βββ package.json
β β
β βββ android/ # π± CLIENT APP - Native Android
β β βββ End-user reading application
β β βββ app/
β β β βββ src/
β β β βββ androidTest/ # UI tests
β β β βββ main/
β β β β βββ kotlin/ # Kotlin + Compose source
β β β β βββ res/ # Android resources
β β β βββ test/ # Unit tests
β β βββ build.gradle.kts
β β βββ proguard-rules.pro # Code obfuscation
β β βββ gradle/
β β
β βββ ios/ # π CLIENT APP - Native iOS
β β βββ End-user reading application
β β βββ Runner/ # Main app target
β β β βββ Swift source files
β β βββ RunnerTests/ # Unit tests
β β
β βββ dashboard/ # π₯οΈ ADMIN DASHBOARD - Flutter
β βββ Cross-platform admin interface (Web, Desktop, macOS)
β βββ lib/
β β βββ main.dart
β β βββ screens/ # Admin UI screens
β β βββ services/ # API integrations
β β βββ providers/ # State management
β β βββ models/ # Data models
β β βββ controllers/ # Business logic
β β βββ constants.dart
β βββ android/ # Android build config
β βββ ios/ # iOS build config
β βββ web/ # Web build config
β βββ windows/ # Windows build config
β βββ macos/ # macOS build config
β βββ pubspec.yaml
β
βββ shared/ # π¦ Shared Resources
β βββ api-spec/
β β βββ openapi.yaml # REST API specification (all apps use this)
β βββ config/ # Shared configuration
β βββ docs/ # System documentation
β
βββ scripts/ # π οΈ Automation Scripts
βββ docker-compose.yaml # Docker Compose configuration
βββ Taskfile.yml # Task automation
βββ README.md # This file
βββ .gitignore
| App | Type | Purpose | Tech | Users |
|---|---|---|---|---|
| API | Backend | Serves all clients, manages data & AI | NestJS, MongoDB | All clients |
| Android | Client | Native mobile reading app | Kotlin + Jetpack Compose | End users |
| iOS | Client | Native mobile reading app | Swift | End users |
| Dashboard | Admin | Management, analytics, moderation | Flutter | Administrators |
| Module | Purpose | Tech |
|---|---|---|
auth |
User authentication & authorization | JWT, bcrypt |
book |
Book library & EPUB parsing | Mongoose, pdf-lib |
chat |
Real-time conversations | Socket.IO, NestJS Gateways |
user |
Profile management & preferences | MongoDB, Mongoose |
verification |
Email verification & OTP | NodeMailer, Crypto |
speech-realtime |
Voice processing | FFmpeg, Azure Cognitive |
| Document | Purpose |
|---|---|
| Quick Start Guide | 30-second setup to get running |
| API Docs | REST API specification (OpenAPI/Swagger) |
| Configuration Reference | All environment variables explained |
| System Design | Architecture, patterns, and design decisions |
| Setup Guide | Detailed environment configuration |
| Contributing Guide | Code contribution guidelines & architecture |
We love contributions! To get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Submit a Pull Request
- Follow the Code Style Guide
- Write tests for new features
- Update documentation as needed
- Run linting & tests before submitting PR:
task test && task lint
ReadRealm is open-source software licensed under the UNLICENSED license. See LICENSE for details.
- π Found a bug? Open an issue
- π‘ Have an idea? Start a discussion
- π§ Questions? Reach out to the team
Made with β€οΈ by the ReadRealm team