Phase 3: Implement bookmarks + application tracker (/my-list)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- supabase, typescript
- Lĩnh vực
- authentication, full-stack
Hướng nghiên cứu
Start with the bookmarks schema in src/db/schema.ts lines 66-81, the non-functional control in src/components/directory/resource-card.tsx lines 90-92, and the existing auth flow in src/proxy.ts and src/lib/supabase. Then review the planned entry points in src/app/my-list/page.tsx, src/app/my-list/actions.ts, and src/lib/resources.ts. Done means authenticated users can save resources, edit all four statuses from the card and /my-list, and see the specified empty state.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
Implement the bookmarks and application tracker feature as specified in PRD §8.7. This is a P1 requirement for Phase 3.
Acceptance Criteria (from PRD §8.7)
- Sign up/in via Supabase Auth (email + Google OAuth) — already implemented in
/submit - "Save" icon on every card → adds to
/my-list - Status pill per saved resource: Interested / Applied / Got it / Rejected — updates from the card itself, no separate page needed
Current State
- Database schema already has
bookmarkstable with status enum ['interested', 'applied', 'got_it', 'rejected'] (src/db/schema.ts lines 66-81) - Supabase Auth plumbing already in place:
src/lib/supabase/{server,client}.ts,src/proxy.ts /submitpage already has Google + email-link sign-in working- ResourceCard has a non-functional bookmark button (line 90-92 in resource-card.tsx)
Implementation Plan
- Bookmark API/Server Actions:
- Create server actions for: add bookmark, update status, remove bookmark
- Location:
src/app/my-list/actions.tsor similar
/my-listpage:- Protected route (requires auth)
- Show user's bookmarks grouped by status
- Allow status changes inline (pill buttons)
- ResourceCard integration:
- Make bookmark button functional
- Show current status if bookmarked
- Allow status change from card (dropdown or pill cycle)
- Auth protection:
- Use existing
src/proxy.tspattern for/my-listroute - Or use Server Component auth check
- Use existing
Files to Create/Modify
src/app/my-list/page.tsx(new) - main tracker pagesrc/app/my-list/actions.ts(new) - Server Actions for bookmark CRUDsrc/components/directory/resource-card.tsx- functional bookmark buttonsrc/proxy.ts- add/my-listto matcher for auth redirectsrc/lib/resources.ts- addgetUserBookmarks(),toggleBookmark(),updateBookmarkStatus()
Database Schema (already exists)
bookmarks: {
userId: uuid (references auth.users)
resourceId: integer (references resources.id)
status: 'interested' | 'applied' | 'got_it' | 'rejected'
createdAt: timestamp
PK: (userId, resourceId)
}
UX Notes
- Status pills on card: clicking cycles through states or opens small popover
/my-listshows all bookmarks with inline status editing- Empty state: "Save resources to track them here"
- Reuse existing UI patterns (shadcn/ui Badge, Select, etc.)
- Ngôn ngữ chính
- TypeScript
- Star
- 1
- Fork
- 6
- Merge trung bình
- 11 giờ 16 phút
- Pull request đã merge (30 ngày)
- 16
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Your-Voldemort/StudentStack
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
Your-Voldemort/StudentStack#42 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
Your-Voldemort/StudentStack#41 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Your-Voldemort/StudentStack#40 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
Your-Voldemort/StudentStack#38 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Your-Voldemort/StudentStack#37 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Your-Voldemort/StudentStack
Issue tương tự
-
ble-needs-fable-review bug mobile priority:P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ColeMurray/background-agents#2305 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug from-studio
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
esengine/DeepSeek-Reasonix#12355 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
oblien/openship#1086 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày