ReadRealm is a multi-tier monorepo with four applications. This page covers how to run each app during development, the full Taskfile command reference, and code style guidelines per platform.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/aliammari1/readrealm/llms.txt
Use this file to discover all available pages before exploring further.
Architecture overview
The four apps and their roles:| App | Technology | Location | Purpose |
|---|---|---|---|
| Backend (API) | NestJS, TypeScript, MongoDB | apps/api/ | Serves all clients via REST and WebSocket |
| Android client | Kotlin, Jetpack Compose, Gradle | apps/android/ | Native reader app for Android |
| iOS client | Swift, Xcode | apps/ios/ | Native reader app for iOS |
| Admin dashboard | Flutter, Dart | apps/dashboard/ | Web/desktop management interface |
http://localhost:3000.
Quick start
The fastest way to get all services running:The Android and iOS client apps connect to the same backend. Start
task api:dev before running the mobile apps.Taskfile command reference
Setup
| Task | Description |
|---|---|
task setup | First-time setup — installs all dependencies |
Backend (API)
- Development
- Tests
- Quality
Android client
- Build
- Tests
iOS client
- Build
- Tests
Admin dashboard (Flutter)
- Development
- Build
- Tests
Docker
Code quality (all platforms)
Code style guidelines
Backend — NestJS / TypeScript
Backend — NestJS / TypeScript
- Follow the NestJS module structure: controllers, services, and modules.
- Place new features in their own module directory under
apps/api/src/. - Use
class-validatorandclass-transformerfor DTO validation. - Use JWT for authentication via the existing
authmodule. - Document all API endpoints in the OpenAPI spec.
- Add database migrations for any schema changes.
- Aim for greater than 80% test coverage on new code.
@typescript-eslint, Prettier via eslint-plugin-prettier.Android — Kotlin / Jetpack Compose
Android — Kotlin / Jetpack Compose
- Use Jetpack Compose for all UI.
- Follow Material Design 3 guidelines.
- Handle API errors gracefully with user-facing feedback.
- Implement offline-first caching where appropriate.
- Test on multiple Android versions (API level 24 and above).
iOS — Swift / SwiftUI
iOS — Swift / SwiftUI
- Use SwiftUI for all new UI.
- Follow Apple Human Interface Guidelines.
- Implement proper error handling and propagation.
- Support iOS 13 and above.
- Test on different device sizes and orientations.
Admin dashboard — Flutter / Dart
Admin dashboard — Flutter / Dart
- Use Provider for state management.
- Follow Material Design 3 guidelines.
- Make the UI responsive across desktop, tablet, and web viewports.
- Write widget tests for new components.
- Use meaningful, descriptive variable names.
API source structure
The NestJS backend inapps/api/src/ is organized by feature module: