Commit Graph

49 Commits

Author SHA1 Message Date
Josh Creek 852c6c3f34 feat(*): Complete MongoDB to Supabase migration cleanup 2025-07-26 23:13:11 +01:00
Josh Creek c063e9d2cd fix(*): map all updatable fields in PokedexEntryRepository.update method 2025-07-26 22:49:21 +01:00
Josh Creek c2c8fd1fb4 refactor(*): Remove unused userId parameter from countCombinedData method 2025-07-26 22:39:25 +01:00
Josh Creek 5b7fe52dc4 Merge branch 'chore/migrate-from-mongodb' of https://github.com/jcreek/LivingDexTracker into chore/migrate-from-mongodb 2025-07-26 22:35:04 +01:00
Josh Creek 120f936eb7 Update src/lib/repositories/CatchRecordRepository.ts 2025-07-26 22:22:03 +01:00
Josh Creek ebfe2413f0 fix(*): Pass userId prop to PokedexEntryCatchRecord component 2025-07-26 22:07:06 +01:00
Josh Creek 389f73d164 chore(*): Clean up migration artifacts and optimize data repository queries 2025-07-26 21:50:54 +01:00
Josh Creek fa38fa69ca refactor(*):Address PR comments 2025-07-26 19:42:04 +01:00
Josh Creek bc9ce84615 feat(*): Migrate from MongoDB to unified Supabase PostgreSQL architecture 2025-07-26 18:50:05 +01:00
Josh Creek 3aa716b941 fix(#55): implement user data isolation to prevent cross-user data access
- Add server-side authentication validation for all protected API endpoints
- Create auth utility with requireAuth() function for session validation
- Update CombinedDataRepository to filter data by authenticated user ID
- Add findByUserId() method to CatchRecordRepository for user-specific queries
- Replace client-side userId parameters with server-side session extraction
- Use MongoDB aggregation with $lookup and $expr for secure user filtering
- Return 401 errors for unauthenticated requests
- Fix critical security vulnerability where users could see others' catch records

Fixes: User data isolation bug where one user's catch records were used for everyone
Security: Prevents unauthorized access to other users' Pokemon tracking data
2025-07-26 16:34:19 +01:00
Josh Creek a4269259f9 feat(#46): Move change view button to sidebar 2024-07-17 22:15:43 +01:00
Josh Creek bfde0c49f5 feat(#46): Merge boxes view into my dex page 2024-07-17 22:07:07 +01:00
Josh Creek 02a2160f08 feat(#46): Componentise the list view 2024-07-17 21:24:06 +01:00
Josh Creek 4d9d5e74d7 feat(#46): Componentise the boxes view 2024-07-17 21:11:58 +01:00
Josh Creek 1c207455fb feat(#46): Add Tooltip component 2024-07-17 17:50:03 +01:00
Josh Creek c071dca26a build(#46): Use .env var for image base path 2024-07-17 17:49:19 +01:00
Josh Creek 8b32bca11c feat(*): Enable sprites on mydex page 2024-07-16 22:00:06 +01:00
Josh Creek f62b18b0ee feat(#22): Add sprites 2024-07-16 21:43:41 +01:00
Josh Creek 2ad7e219a2 feat(#46): Add boxes page 2024-07-15 20:49:36 +01:00
Josh Creek bc25ab0e38 fix(*): Fix bug returning 0 for document counts when filtering by region and game 2024-07-14 21:03:57 +01:00
Josh Creek 0285725b6d feat(*): Add ability to filter by game and region 2024-07-14 20:51:05 +01:00
Josh Creek 62c03f41eb feat(*): Add region-game mappings 2024-07-14 19:45:06 +01:00
Josh Creek 80fb0d7414 feat(*): Add clarifying copy 2024-07-14 18:42:59 +01:00
Josh Creek 1c9a9bcf8f feat(*): Add prompts for contributing 2024-07-14 18:29:43 +01:00
Josh Creek ed1ea42e50 feat(*): Enable automatic saving 2024-07-14 18:09:47 +01:00
Josh Creek 0edc7f0974 feat(*): Enable filtering to either do a forms dex or a regular dex 2024-07-14 17:47:16 +01:00
Josh Creek 7467a4425f feat(*): Update pokedex entry data structure and re-add error handling 2024-07-14 16:16:18 +01:00
Josh Creek 953524cecf feat(*): Make mydex use combined data 2024-07-14 12:07:15 +01:00
Josh Creek 2cf3a03f8f feat(*): Add pagination to my dex 2024-07-12 21:33:02 +01:00
Josh Creek 8d86d93bc0 feat(*): Hide notes if there are none 2024-07-12 14:38:30 +01:00
Josh Creek 0e3be214ba feat(*): Add ability to toggle origins and forms 2024-07-12 14:35:25 +01:00
Josh Creek e7f1930eff feat(*): Add support for catch records to My Dex page 2024-07-12 14:19:44 +01:00
Josh Creek 6aac4c5985 feat(*): Update seeding logic to handle new fields and record the last modified date 2024-07-12 14:16:30 +01:00
Josh Creek 5285d5d84d chore(*): Add workbox service worker 2024-04-14 16:03:01 +01:00
Josh Creek 63de9c82a4 feat(*): Make the user object available and reactive in any component 2024-04-10 22:03:37 +01:00
Josh Creek 99ed144a34 feat(*): Move account functionality into header 2024-04-10 21:50:04 +01:00
Amber M d80da3e415 Create a header 2024-04-09 21:24:47 +01:00
Josh Creek 454259d9e7 feat(#19): Add a basic My Dex page 2024-04-08 21:09:34 +01:00
Josh Creek 44fa581ecd feat(#5): Add ability to seed pokedex entry data 2024-04-08 20:08:53 +01:00
Josh Creek 16a067cd5d fix(#16): Ensure DaisyUI styles apply to components
It turns out that tailwind excludes styles it hasn't found in use, so it needs to be explicitly told where to find the component files. This also therefore fixes the styles in the SignUp component.
2024-04-07 19:19:08 +01:00
Josh Creek 4ff4243125 fix(#13): Add hacky workaround for component styling 2024-04-07 15:28:15 +01:00
Josh Creek 59ff274a44 build(#13): Add DaisyUI 2024-04-07 15:12:59 +01:00
Josh Creek ee191aa7cf feat(#11): Add sprite component 2024-04-07 10:50:59 +01:00
Josh Creek 1475e06b8e feat(#9): Add sign in and sign out 2024-04-06 21:46:04 +01:00
Josh Creek 496cdb6666 feat(#9): Add sign up 2024-04-06 21:10:37 +01:00
Josh Creek 7518579047 feat(#6): Add classes for database 2024-04-06 17:56:56 +01:00
Josh Creek 4ca2ddb181 build(*): Attempt to get env vars working 2024-04-06 17:06:00 +01:00
Josh Creek 49e39c2742 chore(#4): Add a database connection to mongodb 2024-04-06 15:04:53 +01:00
Josh Creek e3420d6e02 chore(*): Add base sveltekit files 2024-03-09 21:28:07 +00:00