Skip to content
This repository was archived by the owner on Aug 7, 2026. It is now read-only.

add user interest-based recommendation engine with onboarding - #209

Merged
RayanBatada merged 2 commits into
DevDogsUGA:devfrom
RayanBatada:dev
Apr 13, 2026
Merged

add user interest-based recommendation engine with onboarding#209
RayanBatada merged 2 commits into
DevDogsUGA:devfrom
RayanBatada:dev

Conversation

@RayanBatada

Copy link
Copy Markdown
Contributor

Adds a recommendation engine that personalizes the posts feed based on user interests. New users are shown an onboarding modal to select their interests on first login.

Schema

  • schema/tables.ts: Added userInterests table with weighted tag preferences
  • schema/tables.ts: Added onboardingCompleted field to users table

Components

  • components/OnboardingModel/index.tsx: New modal for interest selection with DevDogs logo
  • components/OnboardingModel/OnboardingWrapper.tsx: Wrapper to conditionally show modal

Server Actions

  • server/actions/interests.ts: Actions for saving/skipping onboarding and updating interest weights

Recommendation Engine

  • lib/recommendations/constants.ts: Weight constants for interest scoring
  • lib/recommendations/getRecommendedPosts.ts: Query that sorts posts by user interest match

Other

  • app/layout.tsx: Check onboarding status and render modal wrapper
  • tags.json: Expanded interest categories (Career, Involvement, Academics, Technology)
  1. New users see onboarding modal on first visit
  2. Users select interests (tags) they care about
  3. Interests are saved with initial weight of 2.0
  4. Posts are sorted by relevance score (sum of matching interest weights)
  5. Posts matching user interests appear first in the feed

@RayanBatada
RayanBatada merged commit 0f663e8 into DevDogsUGA:dev Apr 13, 2026
1 check failed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant