Conversation
# Conflicts: # frontend/app/api/notes/route.ts # frontend/app/api/upload/route.ts
backend blur
profile page now says all-time leaderboard rank, which is the data being fetched
- Add department_submissions table and migration - POST /api/department-submissions with Resend email (same env as course requests) - Request a department modal on upload and dashboard
- Department form: single field 'department name' (no code) - API: accept department_name only, insert department_name and justification - Migration: department_submissions uses department_name not null - Migrations: add department_name and justification columns if missing
- Collapsible 2026-2028 Catalog section; Clear filters next to Filters (grayed when none) - Request course/department buttons use same style as filter options - Leaderboard dark mode: tabs, cards, title, muted text - Catalog terms: DEFAULT_CATALOG_TERMS in backend when DB empty
- Align modal with app design (light card, poly tokens, sage accent) - Group Download, Upvote/Downvote, Report in one actions row - Remove Close button; use header X only - Dark mode styles for modal; cleanup unused close-btn CSS
- Upload: drop Link from resource type options and API validation - Notes API: select/filter by resource_type, support resource_type query param - Course detail: Type filter (All types, Lecture Notes, Study Guide, Class Overview) - Reset to page 1 when type filter changes
- Fetch display_name and handle from profiles; show as main heading - Show email in smaller text below nickname - Avatar initials derived from nickname (e.g. Violet Peacock → VP) - Nav profile pill uses same nickname initials; dark mode for email line
… proxy - Add TEXTEXTRACTOR API and lib: extract text from PDFs (typed + OCR fallback) - Integrate extracted text with note search (title, description, extracted_text) - Store extracted_text on upload; migration and FTS index - Downloaded-note modal: full PDF viewer with page nav (blob from view?stream=1) - Preview fallback: use file_key when blurred image fails; support PDF preview in modal - Constrain PDF viewer size (42vh, 560px width) to avoid overlapping details - Auth: wrap useSearchParams in Suspense on course page; fix department-submissions types - Preview security: serve previews via GET /api/notes/[id]/preview (auth required, no signed URL in client) - Profile downloads: link to course with ?open=noteId for auto-open modal - docs: TEXTEXTRACTOR_SETUP.md
- Fetch preview with Bearer token and show via blob URL so preview loads (img/iframe don't send cookies) - Add loading/error state for non-downloaded note preview - Reduce PDF fallback preview blur from 6px to 3px - Use plain img for preview; revoke preview blob on modal close
favorites button + favorites on profile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked Issues
Closes #
Summary
Briefly explain the change and why.
How to Test
Steps to verify locally.
Checklist
Screenshots / Demos
(if UI or visible behavior)