Commit Graph

40 Commits

Author SHA1 Message Date
db1f66ced2 add list-item component, sync store, refine layout, styles
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:21:15 +01:00
ee32bfd206 refine server setup, deploy script, steam icon cache
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:21:07 +01:00
399e7d5b89 add pwa setup, deploy script, fix build configuration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:44:41 +01:00
c9c69a3265 add discover feature: tinder swipe cards, progress, like/skip
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:36:30 +01:00
7e71098658 add playlists feature: static + custom playlists, CRUD, add/remove games
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:34:25 +01:00
e51a01123e add library feature: search, sort, deduplication, progressive rendering
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:32:18 +01:00
9577087930 add games feature: star rating, game state, favorites, game card
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 13:59:06 +01:00
d907f26683 add settings feature: steam, gog providers, data management
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 13:57:49 +01:00
1d444e6e4e add shared frontend: router, i18n, ui store, api client
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 13:52:49 +01:00
2fdaf870b6 add pglite database layer: schema, migrations, hooks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 13:48:42 +01:00
5ebd9dba16 add hono backend: steam, gog, igdb api proxy, fix gitignore overrides
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 13:40:43 +01:00
17b52173c7 scaffold project: vite, react 19, tailwind v4, shadcn/ui, tanstack router
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 13:32:05 +01:00
de812a0fd1 archive legacy code, begin clean rewrite
legacy branch preserves all prior code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 12:58:11 +01:00
086572dfcc sync current state 2026-03-01 12:03:42 +01:00
831ed42b7e snapshot current state before gitea sync 2026-02-18 10:50:36 +01:00
bc22a6b5a0 add favorites, add tinder playlists 2026-02-06 23:38:34 +01:00
11c3f141d5 clean up code 2026-02-06 23:18:13 +01:00
3cac486f6f fix Steam API: transform response format and add comprehensive logging
- Backend: transform Steam API response to match frontend expectations (games/count structure)
- Frontend: map Steam game fields (appid, name, playtime_forever) to database schema (id, title, playtimeHours)
- Add detailed logging throughout request lifecycle for debugging
- Add 60-second timeout with AbortController to prevent indefinite hanging
- Fix IndexedDB constraint violation by properly transforming game data before save

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 22:25:04 +01:00
cfe6384f75 implement proper Steam API endpoint for /steam/refresh
Fixed issue where backend was forwarding /steam/refresh to
store.steampowered.com instead of calling the actual Steam Web API.

Now properly calls:
https://api.steampowered.com/IPlayerService/GetOwnedGames/v1/

With parameters from request body (apiKey, steamId).

Fixes 'the string did not match the expected pattern' error.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:53:04 +01:00
6a6fe467e1 fix API routing: remove /api prefix in Express routes
Uberspace web backend removes /api prefix before forwarding to Express,
so routes must not include /api. Changed from app.all('/api/*') to
app.all('/*').

/health route is defined first, so it takes precedence.

Fixes 404 errors when calling Steam API from production.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:50:51 +01:00
c2f819bdf9 remove Worker URL field from Steam settings
Removed Cloudflare Worker URL input field and info text from
SettingsDetailPage. Backend URL is now configured via environment
variable VITE_API_URL, not in UI.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:41:42 +01:00
c48878b86c remove all Cloudflare Workers references and cleanup
Removed:
- workers/ directory (Cloudflare Worker scripts)
- public/workers/ (Worker scripts in public)
- Cloudflare setup documentation
- workerUrl from Database and ConfigService interfaces
- Outdated documentation files (ARCHITECTURE, IMPLEMENTATION-SUMMARY, QUICK-START)
- IOS-WEB-STRATEGY.md

Updated:
- README.md - now focuses on Uberspace deployment only
- ConfigService.getApiUrl() - removed workerUrl parameter
- SettingsDetailPage - removed config.workerUrl usage
- Database.DbConfig - removed workerUrl and cloudflare fields

The app now uses only Uberspace for both frontend and backend.
No more multi-deployment complexity.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:34:38 +01:00
86da0feb1b add .htaccess for SPA routing support
Fix 404 errors on page refresh by redirecting all non-file/non-API
requests to index.html for client-side routing.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:30:49 +01:00
576c171a98 clean up: remove GitHub Pages & Cloudflare Workers, deploy to Uberspace
All-in-one Uberspace deployment:
- Backend: Node.js Express on port 3000 (/api/*)
- Frontend: Static files served by Apache (/)
- URL: https://wtp.uber.space

Removed:
- GitHub Actions workflow
- Cloudflare Worker setup service
- CloudflareSetupPage component
- CloudflareService
- 404.html (GitHub Pages redirect)
- Cloudflare menu item from Settings

Simplified:
- Use VITE_BASE_PATH and VITE_API_URL for config
- Single deployment target (no multi-env complexity)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:24:42 +01:00
0fe09f01f8 add simple Uberspace deployment option (simpler than Cloudflare)
Instead of the complex Cloudflare Worker setup with CORS proxy,
you can now deploy both PWA and backend on Uberspace (~5€/month).

Changes:
- Add Express.js backend server (server/index.js)
- Update ConfigService to support VITE_API_URL env variable
- Make base path configurable via VITE_BASE_PATH
- Add comprehensive Uberspace deployment guide
- Add .env.production.example for configuration

Deployment options:
1. Uberspace (recommended): Simple, all-in-one hosting
2. GitHub Pages + Cloudflare Workers: Free but complex setup

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 20:50:56 +01:00
985c61ed74 add Cloudflare Setup Service to bypass CORS restrictions
The Cloudflare API blocks direct browser requests due to CORS.
This setup service acts as a proxy, allowing browser-based
worker deployment.

Changes:
- Create cf-setup-service.js worker for CORS proxy
- Update CloudflareService to use setup service API
- Add deployment instructions in workers/README.md
- Improve token creation guide with Zone field explanation

Next steps:
1. Deploy setup service: npx wrangler deploy workers/cf-setup-service.js --name whattoplay-setup
2. Update CF_SETUP_SERVICE_URL in CloudflareService.ts with your URL
3. Commit and push

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 20:44:53 +01:00
493072c3ff improve Cloudflare API token creation instructions
Added detailed 7-step guide with specific button locations and
actions to make the token creation process clearer for users.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 20:12:56 +01:00
bbaf629907 fix Cloudflare setup route matching by wrapping routes in Switch
The specific route /settings/cloudflare was being matched by the dynamic
route /settings/:serviceId despite being defined first. IonRouterOutlet
doesn't always respect route ordering for exact matches. Wrapping routes
in Switch ensures the specific route is matched before the dynamic one.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 19:59:24 +01:00
ceabfa4848 add automatic Cloudflare Worker deployment via in-app wizard 2026-02-06 19:25:14 +01:00
247410226d add cloudflare worker for Steam API proxy 2026-02-06 18:30:26 +01:00
2dc91ef111 fix routing, add PWA support for standalone mode 2026-02-06 18:05:20 +01:00
e78dbf0007 add GitHub Pages deployment pipeline 2026-02-06 18:05:13 +01:00
030de7bfbe add some assets 2026-02-06 16:53:07 +01:00
adf3d13ab0 add tinder view 2026-02-06 15:36:56 +01:00
34732fdceb start using claude code 2026-02-05 23:28:42 +01:00
27af351695 add lazy loading for library 2026-02-05 13:23:46 +01:00
83ffd6212e add working settings for steam 2026-02-05 12:06:25 +01:00
380f010a7e add sort button 2026-02-05 08:51:44 +01:00
2c5b241c34 add skeleton for settings, add page for tutorial 2026-02-04 20:19:26 +01:00
18d09a0e9f add skeleton that reads offline steam data 2026-02-04 19:33:15 +01:00