TIG 264: settings interests save correctly - #5
Open
JiyaS12 wants to merge 40 commits into
Open
Conversation
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](urllib3/urllib3@2.6.3...2.7.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
… routes - New root README.md focused on getting apps/web running (replaces stale SETUP.md) - Fix DATABASE_URL port 5432 -> 5434 in package .env examples to match docker-compose - Complete apps/web/.env.local.example with all vars required by src/env.ts - Remove old /5 /6 /7 /8 design-mockup routes from apps/web - Add CI guard: PRs into main must come from staging
docs: developer setup README + env example fixes + remove old mockup routes
Release: developer setup README, env fixes, mockup route cleanup
…i/urllib3-2.7.0 chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /backends/fastapi
- Bump pyasn1, cryptography, pygments, idna, starlette, requests, pytest, python-dotenv in backends/fastapi (covers Dependabot PRs #2-#8, #10, which conflicted on uv.lock after #1 merged) - Bump drizzle-orm ^0.38.3 -> ^0.45.2 (high-severity alert, no Dependabot PR existed for the bun lockfile) + drizzle-kit ^0.30.4 -> ^0.31.10 Verified: FastAPI app imports and serves on starlette 1.2.1; web app typechecks and production-builds; drizzle runs queries against live Postgres.
fix(security): resolve all 12 Dependabot alerts + README polish
Release: resolve all Dependabot vulnerabilities + setup docs polish
- Skip events whose title already exists — re-running db:seed no longer duplicates all 21 demo events (events have no unique constraint to lean on for onConflictDoNothing) - Seed user_regions (set during onboarding, previously empty) - Add a pending friend request + matching friend_request notification, plus org_new_event and event_reminder notifications with payload shapes mirroring apps/web server actions - Seed interactions (implicit feedback) from the generated RSVPs/saves plus views/clicks, using the same weights as logInteraction, so the recommendation pipeline has data to work with - Notifications/interactions have no natural unique key, so they are only seeded into an empty table Tested: ran twice against a scratch database — second run is a no-op (21 events, 3 notifications, 177 interactions, no duplicates).
feat(seed): make re-runnable and cover newer tables
Release: re-runnable seed with newer-table coverage
# Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit.
… RSVP'd tab in My Events; add root db:seed script
…seed workflow in README
Aligns the orgs create button/category filters with the forum-cerulean brand color instead of indigo, adds a cerulean-tinted thin scrollbar utility, softens the geometric background blur, and nudges spacing on the explore create-event button and map filter pills.
Tig 256 seed demo flows
…s.ts types from schema
…pe workshop/academic merge; fix seed.ts imports
… model path resolution and text cleaning, pin scikit-learn
TIG-254: Move selected tagger into backend code (corrected)
TIG-254: Embedding-based event extraction pipeline (staging → main)
…anels The (app) routes had each hand-rolled their own layout primitives, so the same element looked different on every page: gutters ranged from px-[8px] to px-[40px], page headings spanned 20/25/36/40/42/48/52px, and roughly 90 buttons were raw <button> elements with bespoke height, radius and focus treatment. Orgs and the map had drifted off the palette entirely onto gray-*/indigo-*/sky-*. Introduce six shared primitives and move every (app) route onto them: - PageShell gutters (20/32/40px) + max width (narrow/content/wide/full) - PageHeading one h1 ramp, 34 -> 44 -> 52px, responsive - SectionHeading h2 with the cerulean dot - Panel content surface: radius, border, padding scale, elevation - FilterChip every filter pill - SearchInput every search field - Field label / hint / error stack Add forum variants to the shadcn Button (cerulean, solid, coral, soft, quiet) plus a cta size, so buttons stop being rebuilt per call site. Raw <button> count drops from ~90 to 25; the rest are structural (scrubber nodes, carousel dots, popover triggers) where the Button box model does not apply. Nav: the rail now collapses to icons and expands on hover. It overlays rather than pushes, and the shell reserves the expanded width so the panel never covers page content and nothing reflows on hover. Icons sit in a fixed 20px slot at the same x in both states, so labels grow beside a stationary icon. Map: drop the route's private floating nav and its separate log-out button, and render it inside the standard shell. It keeps a non-scrolling main (a map canvas must not live in a scroll container) but now shares one navigation with every other page. Fixes found along the way: - nested <button> inside <button> in the map event list (invalid HTML; the inner control was unreachable in some browsers) - missing accessible names on event-card and map icon buttons - Friends' remove control was opacity-0 until hover, invisible to keyboard users; it now reveals on focus too - hand-rolled tab bars replaced with the shadcn Tabs line variant, which brings real arrow-key navigation and aria-selected
ui: standardize page padding, headings, cards, buttons, filters and panels Tested locally and overall this looks good to me. The shared UI cleanup/standardization feels like a solid improvement and I didn’t run into any blocking functional issues. I do think there’s still some room for visual polish / closer alignment with the Figma direction on Explore, but I don’t think that needs to block this PR.
JiyaS12
force-pushed
the
TIG-264-settings-interests-save-correctly
branch
from
August 26, 2026 15:15
c8d5715 to
84c23b3
Compare
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.
Summary
Settings should let students personalize discovery. For MVP, the most important personalization input is interests (updated with Yubi's interest tags). Those interests should be selected from the same event tag taxonomy used by events and ranking.
This task focuses on interest selection and save behavior, not full profile redesign.
Scope
Files touched
apps/web/src/app/(app)/settings/settings-client.tsx/settings/settings-client.tsx)
user.ts
index.ts
QA notes
Demo video
https://drive.google.com/file/d/1dGSTuhhhbYr-KIBSkERu6o-L3ykz13fA/view?usp=sharing
Reviewers