A personal dashboard for JKT48 fans to track theater attendance, 2-shot collections, and spending statistics.
Features Β· Quick Start Β· Deployment
- π 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
| Layer | Technology |
|---|---|
| Backend | FastAPI (Python 3.10+) |
| Frontend | SvelteKit 2.x |
| Database | MongoDB |
| Storage | MinIO |
| LLM | Google Gemini |
| Styling | TailwindCSS |
| Auth | JWT Authentication |
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
- Python 3.10+
- Node.js 18+
- Docker & Docker Compose
- MongoDB (local or Atlas)
MinIO is required for image storage (2-shot photos and tickets) and must be running during local development.
- Start MinIO service
The MinIO console will be available at http://localhost:9001.
docker compose up -d minio
-
Create and activate virtual environment
python -m venv .venv source .venv/bin/activate -
Install dependencies
pip install -r requirements/dev.txt
-
Configure environment
cp .env.example .env # Edit .env with your MongoDB URI and other settings -
Run development server
sh scripts/start-dev.sh
API docs available at: http://localhost:8000/docs
-
Install dependencies
cd frontend npm install -
Configure environment
cp .env.example .env # Edit .env with API URL and other settings -
Run development server
npm run dev
App available at: http://localhost:5173
Use the convenience script to start both backend and frontend:
sh scripts/start-all-dev.shBackend:
sh scripts/lint-format.shFrontend:
cd frontend
npm run lint
npm run format
npm run check-
Configure environment files
cp .env.example .env cd frontend && cp .env.example .env && cd ..
-
Build and run containers
docker compose up --build -d
-
Access the application
- Frontend: http://localhost:5050
- Backend: http://localhost:8000
This project is licensed under the MIT License - see the LICENSE file for details.