Skip to content

🎫 A personal dashboard for JKT48 fans to track theater attendance, 2-shot collections, and spending statistics.

License

Notifications You must be signed in to change notification settings

Shiyinq/mypage48

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

246 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MyPage48

MyPage48

A personal dashboard for JKT48 fans to track theater attendance, 2-shot collections, and spending statistics.

Features Β· Quick Start Β· Deployment


✨ Features

  • πŸ“Š Dashboard Analytics - View comprehensive statistics of your theater visits, spending, and attendance patterns
  • πŸ€– AI-Powered Ticket Scanner - Extract event details from ticket screenshots using Google Gemini
  • 🎭 Theater Tracking - Log your theater show attendance with seat information and show details
  • πŸ“Έ 2-Shot Collection - Track your 2-shot photos with member statistics
  • �️ Digital Photobook - Browse your collected memories in a beautiful gallery view
  • οΏ½πŸ—ΊοΈ Seat Map Visualization - Interactive theater seat map showing your seating history
  • πŸ† Achievements System - Unlock achievements based on your theater journey
  • πŸ‘€ Public Profile - Share your theater stats with a public profile page (Wrapped)
  • πŸ“… Interactive Calendar - Browse JKT48 schedule and events in a monthly view
  • πŸ“œ Event History - Comprehensive history of all past JKT48 events
  • πŸ“¦ Data Export - Download your complete data including images in a ZIP archive
  • 🌏 Multi-language Support - Available in English, Indonesian, and Japanese
  • πŸŒ™ Dark Mode - Beautiful dark-themed UI with glassmorphism design
  • πŸ•·οΈ Built-in Scraper - Automated fetching of JKT48 schedule, news, and member data
  • πŸ’¬ Feedback System - Built-in tool for reporting issues or suggestions
  • πŸ›‘οΈ Admin Dashboard - Comprehensive user management and content moderation tools

πŸ› οΈ Tech Stack

Layer Technology
Backend FastAPI (Python 3.10+)
Frontend SvelteKit 2.x
Database MongoDB
Storage MinIO
LLM Google Gemini
Styling TailwindCSS
Auth JWT Authentication

πŸ“ Project Structure

mypage48/
β”œβ”€β”€ src/                    # Backend (FastAPI)
β”‚   β”œβ”€β”€ achievements/       # Achievement system
β”‚   β”œβ”€β”€ auth/              # Authentication & OAuth
β”‚   β”œβ”€β”€ dashboard/         # Dashboard statistics API
β”‚   β”œβ”€β”€ export/            # Data export service
β”‚   β”œβ”€β”€ llm/               # AI integration (Gemini)
β”‚   β”œβ”€β”€ members/           # JKT48 members data
β”‚   β”œβ”€β”€ setlists/          # Setlist information
β”‚   β”œβ”€β”€ tickets/           # Theater ticket logging
β”‚   β”œβ”€β”€ users/             # User management
β”‚   └── ...
β”œβ”€β”€ scraper/               # JKT48 Web Scraper
β”œβ”€β”€ frontend/              # Frontend (SvelteKit)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ lib/          # Components, stores, utilities
β”‚   β”‚   └── routes/       # Application pages
β”‚   └── ...
β”œβ”€β”€ scripts/               # Utility scripts
β”œβ”€β”€ tests/                 # Backend tests
└── docker-compose.yml     # Docker deployment

πŸš€ Quick Start

Prerequisites

  • Python 3.10+
  • Node.js 18+
  • Docker & Docker Compose
  • MongoDB (local or Atlas)

Infrastructure Setup (Required)

MinIO is required for image storage (2-shot photos and tickets) and must be running during local development.

  1. Start MinIO service
    docker compose up -d minio
    The MinIO console will be available at http://localhost:9001.

Backend Setup

  1. Create and activate virtual environment

    python -m venv .venv
    source .venv/bin/activate
  2. Install dependencies

    pip install -r requirements/dev.txt
  3. Configure environment

    cp .env.example .env
    # Edit .env with your MongoDB URI and other settings
  4. Run development server

    sh scripts/start-dev.sh

    API docs available at: http://localhost:8000/docs

Frontend Setup

  1. Install dependencies

    cd frontend
    npm install
  2. Configure environment

    cp .env.example .env
    # Edit .env with API URL and other settings
  3. Run development server

    npm run dev

    App available at: http://localhost:5173

Run Both Services

Use the convenience script to start both backend and frontend:

sh scripts/start-all-dev.sh

🧹 Code Quality

Backend:

sh scripts/lint-format.sh

Frontend:

cd frontend
npm run lint
npm run format
npm run check

🐳 Deployment

Docker Compose (Recommended)

  1. Configure environment files

    cp .env.example .env
    cd frontend && cp .env.example .env && cd ..
  2. Build and run containers

    docker compose up --build -d
  3. Access the application

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❀️ for JKT48 fans

About

🎫 A personal dashboard for JKT48 fans to track theater attendance, 2-shot collections, and spending statistics.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published