Commit Graph

23 Commits

Author SHA1 Message Date
joungmin
6d05be2331 Migrate backend from Python to Java Spring Boot
- Full Java 21 + Spring Boot 3.3 backend with Virtual Threads
- HikariCP connection pool for Oracle ADB
- JWT auth, Redis caching, OCI GenAI integration
- YouTube transcript extraction via API + Playwright browser fallback
- SSE streaming for bulk operations
- Scheduled daemon for channel scanning/video processing
- Mobile UI: collapse restaurant list to single row on selection
- Switch PM2 ecosystem config to Java backend

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 20:26:32 +09:00
joungmin
161b1383be Double mobile map height in list mode (35vh → 70vh)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:18:01 +09:00
joungmin
d39b3b8fea Disable map/satellite toggle on Google Maps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:17:19 +09:00
joungmin
b3923dcc72 Move channel legend to bottom-left of map
Also added dark mode support for the legend overlay.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:16:40 +09:00
joungmin
6223691b33 Add dark mode with system preference auto-detection
All user-facing components now support dark mode via prefers-color-scheme.
- Dark backgrounds: gray-950/900/800
- Dark text: gray-100/200/300/400
- Orange brand colors adapt with darker tints
- Glass effects work in both modes
- Skeletons, cards, filters, bottom sheet all themed
- Google Maps InfoWindow stays light (maps don't support dark)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:14:29 +09:00
joungmin
99660bf07b Apply glassmorphism effect to overlays and panels
- Header: semi-transparent white with backdrop blur
- Visit counter: frosted glass instead of dark overlay
- Mobile filter panel: translucent with blur
- BottomSheet: frosted glass background
- Footer: subtle glass effect

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:08:21 +09:00
joungmin
d1ef156f44 Add icon+label combos to all filter buttons and dropdowns
Filters: 📺 채널, 🍽 장르, 💰 가격, 🌍 나라, 🏙 시/도, 🏘 구/군
Buttons: 📍 영역, 🗺 지도/☰ 리스트, 🔽 필터, ♥ 찜, ✎ 리뷰

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:04:08 +09:00
joungmin
4a1c8cf1cd Unify color scheme: orange primary, rose accent, gray neutral
- Primary (orange): search button, active filters, selected cards,
  channel tags, links, input focus ring
- Accent (rose): favorites/heart only
- Neutral (gray): price tags, inactive buttons
- Semantic colors preserved: red for 폐업, yellow for 임시휴업

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:00:13 +09:00
joungmin
2cd72d660a Move region filters (country/city/district) to second row on desktop
Reduces first row clutter. Added divider between region and toggle buttons.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:57:14 +09:00
joungmin
17489ad9b0 Improve whitespace and spacing across header, filters, and buttons
Increased padding, wider gaps between elements, rounded-lg corners,
and more breathing room in mobile filter panel for better visual rhythm.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:55:40 +09:00
joungmin
08ea282baf Redesign footer with playful cartoon-style animations
Larger icon with border, hover scale+rotate effect, ping dot indicator,
gradient background, and smooth transitions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:09:56 +09:00
joungmin
237c982e6c Add company icon to footer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:29:21 +09:00
joungmin
758d87842b Add footer with company name (SDJ Labs Co., Ltd.)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:10:29 +09:00
joungmin
d4d516a375 Fix remap-foods: add missing db_conn import
Generator was failing silently due to undefined db_conn reference.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:23:08 +09:00
joungmin
54d21afd52 Add food tag remap feature and show menu tags in restaurant cards
- LLM extraction prompt: foods_mentioned max 10, Korean only, prioritized
- New /remap-foods API endpoint for bulk LLM re-extraction
- Admin UI: "메뉴태그 재생성" button with SSE progress bar
- Backend: attach foods_mentioned to restaurant list API response
- Restaurant cards: display food tags (orange, max 5 visible)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:21:05 +09:00
joungmin
a5b3598f8a Redesign restaurant list with card UI
Rounded corners, shadows, hover lift effect, rating display,
and color-coded cuisine/price tags for better visual hierarchy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:12:24 +09:00
joungmin
f54da90b5f Add UX/design improvement guide document
Tracks planned UI/UX improvements with priorities and completion status.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:10:03 +09:00
joungmin
4d09be2419 Add skeleton loading UI for better perceived performance
Replace "로딩 중..." text with animated skeleton placeholders in
RestaurantList, RestaurantDetail, and ReviewSection components.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:08:03 +09:00
joungmin
6c47d3c57d Backend enhancements: auth, channels, restaurants, daemon improvements
- Add admin auth dependency and role checks
- Expand channel and restaurant API routes
- Improve YouTube transcript fetching
- Enhance daemon worker with better error handling and scheduling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:59:22 +09:00
joungmin
d6afb62c18 Mobile header: split search and toolbar into two rows
- Row 1: search bar (full width)
- Row 2: map/list toggle, filter toggle with badge, favorites, reviews, count
- Moved favorites/reviews buttons out of collapsible filter panel to toolbar row

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:56:19 +09:00
joungmin
2bddb0f764 UX improvements: mobile bottom sheet, cuisine taxonomy, search enhancements
- Add BottomSheet component for Google Maps-style restaurant detail on mobile
  (3-snap drag: 40%/55%/92%, velocity-based close, backdrop overlay)
- Mobile map mode now full-screen with bottom sheet overlay for details
- Collapsible filter panel on mobile with active filter badge count
- Standardized cuisine taxonomy (46 categories: 한식|국밥, 일식|스시 etc.)
  with LLM remap endpoint and admin UI button
- Enhanced search: keyword search now includes foods_mentioned + video title
- Search results include channels array for frontend filtering
- Channel filter moved to frontend filteredRestaurants (not API-level)
- LLM extraction prompt updated for pipe-delimited region + cuisine taxonomy
- Vector rebuild endpoint with rich JSON chunks per restaurant
- Geolocation-based auto region selection on page load
- Desktop filters split into two clean rows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:54:28 +09:00
joungmin
3694730501 Add admin features, responsive UI, user reviews, visit stats, and channel-colored markers
- Admin: video management with Google Maps match status, manual restaurant mapping, restaurant remap on name change
- Admin: user management tab with favorites/reviews detail
- Admin: channel deletion fix for IDs with slashes
- Frontend: responsive mobile layout (map top, list bottom, 2-row header)
- Frontend: channel-colored map markers with legend
- Frontend: my reviews list, favorites toggle, visit counter overlay
- Frontend: force light mode for dark theme devices
- Backend: visit tracking (site_visits table), user reviews endpoint
- Backend: bulk transcript/extract streaming, geocode key fixes
- Nginx config for production deployment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 14:52:20 +09:00
joungmin
36bec10bd0 Initial commit: Tasteby - YouTube restaurant map service
Backend (FastAPI + Oracle ADB), Frontend (Next.js), daemon worker.
Features: channel/video/restaurant management, semantic search,
Google OAuth, user reviews.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:47:19 +09:00