Project Structure - satoshi-create/emakimono-next GitHub Wiki

📁 Project Structure

This section outlines the current system structure of the Emakimono Viewer project, including potential future extensions. It is intended for contributors and maintainers to understand the high-level architecture and its components.


🧭 System Overview

The Emakimono Viewer is a lightweight, modular web application built with Next.js, partial Tailwind CSS, and multilingual support via i18n. Assets are fetched from Cloudinary, and annotations/metadata are currently stored in JSON format.

Future improvements are being planned to adopt a more scalable and type-safe stack.


📐 Architecture Diagram (Mermaid)

graph TD

  %% === Frontend Layer ===
  subgraph Frontend[🖥️ Frontend Layer]
    UI[🖼️ Emakimono Viewer UI - Next.js_Tailwind-CSS]
    Lang[i18n - multi-language support]
    Scroll[Horizontal scroll display]
  end

  %% === Backend Layer ===
  subgraph Backend[🛠️ Backend Layer - API endpoints]
    MetadataAPI[📦 API - emaki, annotations, image links]
    Auth[🔐 Authentication]
  end

  %% === Asset & Data Layer ===
  subgraph Assets[📁 Asset & Data Management]
    Cloudinary[☁️ Cloudinary - image hosting]
    Annotations[📝 Annotations - JSON files]
    Translation[🌐 Translations - YAML or JSON]
  end

  %% === Current Connections ===
  UI -->|fetch| MetadataAPI
  MetadataAPI --> Cloudinary
  MetadataAPI --> Annotations
  Lang --> UI
  Auth --> UI
  Translation --> Lang

  %% === Future Enhancements ===
  subgraph Future["🚀 Future Enhancements (Planned)"]
    Pixi[🎮 PixiJS - smooth horizontal rendering]
    TSUI[⚙️ Refactor - TypeScript and full TailwindCSS]
    Supabase[(🗃️ Supabase - PostgreSQL RLS)]
  end

  Scroll -.-> Pixi
  UI -.-> TSUI
  Annotations -.-> Supabase

🔍 Component Roles

  • Frontend Layer: Handles UI rendering and internationalization.
  • Backend Layer: Provides API endpoints for data retrieval and user authentication.
  • Asset & Data Layer: Stores visual and textual data; lightweight and static in current version.
  • Future Layer: Explores scalable upgrades such as PixiJS for rendering and Supabase for structured storage.

Feel free to contribute updates or refinements to this diagram via pull request or issue discussion.