Skip to content

civilH/diread

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

11 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

diRead Logo

diRead

Your Private Family Digital Library
Read beautifully. Sync seamlessly. Own your books.

Why diRead โ€ข Features โ€ข Quick Start โ€ข Screenshots โ€ข Roadmap

Flutter FastAPI Platform


๐Ÿ“– Why diRead?

Ever wanted your own private e-book library that just works?

diRead is built for families who:

  • ๐Ÿ“š Have a personal collection of PDFs and EPUBs
  • ๐Ÿ”’ Want their reading data private โ€” no tracking, no ads
  • ๐Ÿ“ฑ Read across multiple devices and want everything synced
  • โœจ Appreciate a clean, distraction-free reading experience

Think of it as your personal Apple Books โ€” but you own the server too.


โœจ Features

๐Ÿ“ฑ Beautiful Reading Experience

Feature Description
PDF & EPUB Support High-quality rendering with Syncfusion PDF Viewer
6 Reading Themes Light, Dark, Sepia, Blue, Green, Cream
3 Scroll Modes Horizontal swipe, Vertical swipe, Continuous scroll
Smart Navigation Slider, Go-to-page, Table of Contents
Bookmarks One-tap bookmark with visual feedback (red when active)
Progress Tracking Automatic save & sync across devices
Offline Reading Downloaded books work without internet

๐Ÿ” Privacy & Security

  • Your server, your data โ€” Self-hosted backend
  • Secure authentication โ€” JWT tokens with refresh rotation
  • Encrypted storage โ€” Tokens stored in secure storage
  • Per-user libraries โ€” Each family member has private books
  • No telemetry โ€” Zero tracking, zero analytics

๐Ÿ“ฒ Cross-Platform

Works everywhere you read:

Platform Status
Android โœ… Ready
iOS โœ… Ready
Web Browser โœ… Ready
macOS โœ… Ready
Windows โœ… Ready
Linux โœ… Ready

๐Ÿš€ Quick Start

What You Need

  • Flutter SDK 3.1+
  • Python 3.9+
  • 10 minutes of your time โ˜•

Step 1: Clone & Setup Backend

# Clone the repository
git clone https://github.com/YOUR_USERNAME/diread.git
cd diread/backend

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Start the server
python main.py

๐ŸŽ‰ Backend running at http://localhost:8000

Step 2: Run the App

# From project root
cd ..
flutter pub get
flutter run

Step 3: Create Your Account

  1. Open the app
  2. Tap "Create Account"
  3. Start uploading your books!

๐Ÿ“ธ Screenshots

Coming soon โ€” beautiful screenshots of the reading experience


๐ŸŽจ Reading Themes

Choose the theme that's easiest on your eyes:

Theme Background Best For
โ˜€๏ธ Light Pure White Bright environments
๐ŸŒ™ Dark Deep Black Night reading
๐Ÿ“œ Sepia Warm Beige Long reading sessions
๐Ÿ’™ Blue Soft Blue Reduced eye strain
๐ŸŒฟ Green Calm Green Relaxed reading
๐Ÿฆ Cream Soft Yellow Comfortable contrast

๐Ÿ“‚ What Can You Upload?

Format Max Size Features
PDF 100 MB Full rendering, zoom, scroll modes
EPUB 100 MB Reflowable text, TOC, custom fonts

Automatic extraction of:

  • ๐Ÿ“– Book title
  • โœ๏ธ Author name
  • ๐Ÿ–ผ๏ธ Cover image

๐Ÿ› ๏ธ Tech Stack

Frontend (Flutter)

  • Provider โ€” State management
  • go_router โ€” Navigation with auth guards
  • Dio โ€” HTTP client with token refresh
  • Syncfusion โ€” PDF rendering
  • flutter_secure_storage โ€” Secure token storage

Backend (Python)

  • FastAPI โ€” Async REST API
  • SQLAlchemy โ€” Database ORM
  • PyJWT โ€” Authentication
  • bcrypt โ€” Password hashing
  • pypdf + ebooklib โ€” Metadata extraction

๐Ÿ—บ๏ธ Roadmap

โœ… Version 1.0 (Current)

  • PDF & EPUB reading
  • 6 reading themes
  • 3 scroll directions
  • Bookmarks with visual feedback
  • Session persistence (stay logged in)
  • Splash screen
  • Cross-platform support
  • Offline reading
  • Progress sync

๐Ÿ”œ Version 1.1 (Next)

  • Full-text search inside books
  • Highlights with notes
  • Export annotations
  • Reading statistics

๐Ÿ”ฎ Future

  • Family sharing
  • Book collections
  • Text-to-speech
  • Reading goals

๐Ÿ“ Project Structure

diread/
โ”œโ”€โ”€ lib/                    # Flutter app
โ”‚   โ”œโ”€โ”€ core/               # Config, theme, utilities
โ”‚   โ”œโ”€โ”€ data/               # Models, repositories, API
โ”‚   โ””โ”€โ”€ presentation/       # UI screens & providers
โ”‚
โ”œโ”€โ”€ backend/                # FastAPI server
โ”‚   โ”œโ”€โ”€ app/                # Routes, models, services
โ”‚   โ”œโ”€โ”€ main.py             # Entry point
โ”‚   โ””โ”€โ”€ requirements.txt    # Dependencies
โ”‚
โ””โ”€โ”€ assets/                 # Images, icons, fonts

๐Ÿ”ง Configuration

Backend (.env)

SECRET_KEY=your-super-secret-key
DATABASE_URL=sqlite+aiosqlite:///./diread.db
MAX_FILE_SIZE_MB=100

Frontend (app_config.dart)

static const String apiBaseUrl = 'http://YOUR_SERVER:8000/api/v1';

๐Ÿšข Deployment

Android Release

flutter build apk --release
# Output: build/app/outputs/flutter-apk/app-release.apk

Backend (Docker)

cd backend
docker build -t diread-api .
docker run -p 8000:8000 diread-api

๐Ÿค Contributing

We welcome contributions! Here's how:

  1. Fork the repository
  2. Create your branch: git checkout -b feature/awesome
  3. Commit changes: git commit -m 'Add awesome feature'
  4. Push: git push origin feature/awesome
  5. Open a Pull Request

๐Ÿ“„ License

This project is designed for private/family use. See LICENSE for details.


๐Ÿ™ Acknowledgments

Built with love using:

  • Flutter โ€” Beautiful cross-platform apps
  • FastAPI โ€” Modern Python API framework
  • Syncfusion โ€” PDF viewer component

Made with โค๏ธ for families who love reading together

diRead โ€” Because your books deserve a beautiful home.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors