Skip to content

About

A manga reader website

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 MangaMore — Full-Stack Manga Reader

A production-minded, scalable manga reading platform. Browse, search, read, and track manga — powered by the MangaDex public API.

This is a monorepo with two independent apps:

Folder What it is Stack Docs
backend/ REST API Java 17 · Spring Boot 3 · MySQL · Redis · JWT backend/README.md
frontend/ Web app React 18 · TypeScript · Redux Toolkit · Tailwind · Vite frontend/README.md

🏗️ Architecture

                       ┌──────────────────────────────┐
   Browser  ─────────► │  frontend (React + nginx)     │
                       │  • serves the SPA             │
                       │  • proxies /api → backend      │
                       └───────────────┬───────────────┘
                                       │  /api/*
                       ┌───────────────▼───────────────┐
                       │  backend (Spring Boot API)     │
                       │  • JWT auth, rate limiting     │
                       │  • caches + calls MangaDex     │
                       └───────┬───────────────┬────────┘
                               │               │
                     ┌─────────▼──────┐ ┌──────▼───────┐        ┌───────────────┐
                     │  MySQL         │ │  Redis        │  ────► │  MangaDex API │
                     │  (users, etc.) │ │  (cache)      │        │  (manga data) │
                     └────────────────┘ └───────────────┘        └───────────────┘

Key idea: the backend only ever resolves manga/chapter data and image URLs; the browser loads the actual page images directly from MangaDex's CDN. The server stays light, so the app scales to many concurrent readers.

Why it scales to many users

  • Stateless JWT auth → run any number of backend instances behind a load balancer
  • Redis cache (server) + RTK Query cache (client) → few upstream calls, fast repeats
  • Connection pooling, rate limiting, and a durable DB fallback if MangaDex blips

🚀 Quick Start

Option A — Everything in Docker (recommended)

Requires Docker Desktop running.

# from the repository root
docker compose up --build
  • Frontend → http://localhost:3000
  • The backend, MySQL, and Redis start automatically on a private network.
  • ⚠️ Override the demo JWT_SECRET in docker-compose.yml before any real deployment.

Option B — Run each app manually (for development)

1. Start MySQL + Redis (via Docker, or your own local installs):

docker run -d --name mysql -e MYSQL_DATABASE=manga_reader -e MYSQL_USER=manga_user \
  -e MYSQL_PASSWORD=manga_pass -e MYSQL_ROOT_PASSWORD=rootpass -p 3306:3306 mysql:8.0
docker run -d --name redis -p 6379:6379 redis:7-alpine

2. Backend (dev profile auto-creates the schema):

cd backend
mvn spring-boot:run
# API → http://localhost:8080/api  ·  Swagger → http://localhost:8080/swagger-ui.html

3. Frontend (proxies /api → :8080):

cd frontend
npm install
npm run dev
# App → http://localhost:5173

🧭 What you can do

  • Browse / filter / search manga (no account needed)
  • Read chapters in a clean vertical reader (with a data-saver toggle)
  • Register / log in (JWT-based)
  • Bookmark manga and resume where you left off (reading progress + history)

📁 Repository Layout

MangaMore/
├── README.md              ← you are here (project overview)
├── docker-compose.yml     ← runs the FULL stack (frontend + backend + mysql + redis)
├── backend/               ← Spring Boot API (its own README, Dockerfile, compose)
└── frontend/              ← React app (its own README, Dockerfile, nginx.conf)

Each sub-project is self-contained and has its own detailed README, Dockerfile, and (for the backend) a standalone docker-compose.yml for backend-only work.


📜 Legal

Educational / personal use. Manga metadata and images are provided by MangaDex under their API terms — respect their rate limits and do not bulk-download or mirror content. See backend/README.md for details.

About

A manga reader website

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages