Skip to main content

Social Features

Status: ✅ Complete
Last Updated: 2026-01-14

Overview​

Complete social features system with progress sharing, community challenges, groups, and social happenings tracking.

Implementation Details​

Progress Sharing​

  • ✅ ProgressSharingService with getWeeklyAnonymizedSummary and getMonthlyAnonymizedSummary methods
  • ✅ API endpoints (POST /api/progress-sharing/weekly and POST /api/progress-sharing/monthly)
  • ✅ ShareProgressPage frontend component with period selector, share functionality using Web Share API or clipboard
  • ✅ Backend tests (5 service tests, 6 route tests, all passing)
  • ✅ Frontend tests (9 tests, some need refinement)

Community Challenges​

  • ✅ ChallengeService with getCommunityChallenges, getCommunityChallengeStats, and getCommunityChallengesWithStats methods
  • ✅ API endpoints
  • ✅ ChallengesPage frontend integration
  • ✅ Comprehensive backend and frontend tests

Groups​

  • ✅ Group, GroupMember, GroupHighscore models
  • ✅ GroupService with CRUD operations, join/leave group, get highscores
  • ✅ API routes for all operations
  • ✅ Comprehensive backend tests (30 service tests, 23 route tests, all passing)
  • ✅ Frontend: GroupsPage and GroupHighscoresPage components created, routes and navigation integrated
  • ✅ Frontend tests (9/10 tests passing, 1 test needs refinement for modal interaction)

Analytics Dashboard​

  • ✅ AnalyticsDashboardPage created with categorized navigation cards and quick links
  • ✅ Route added to App.tsx (/analytics)
  • ✅ Navigation integration (added to Navigation dropdown and QuickNavigationMenu)
  • ✅ Frontend tests (13 tests passing, comprehensive coverage)

Social Happenings (Multi-Guest Tracking)​

  • ✅ Database schema (SocialHappening and SocialHappeningGuest models)
  • ✅ Backend service (SocialHappeningService with create, getAll, getById, getByDateRange, getByDay, getByPerson, update, delete, addGuest, removeGuest)
  • ✅ API routes (POST /api/social-happenings, GET /api/social-happenings, GET /api/social-happenings/:id, GET /api/social-happenings/range, GET /api/social-happenings/day/:dayId, GET /api/social-happenings/person/:personId, PUT /api/social-happenings/:id, DELETE /api/social-happenings/:id, POST /api/social-happenings/:id/guests, DELETE /api/social-happenings/:id/guests/:personId)
  • ✅ Backend tests (28 service tests, 23 route integration tests, all passing)
  • ✅ Frontend component (SocialHappeningsPage with list view, create/edit forms, search, filter by person, guest selection, item linking)
  • ✅ Frontend integration (added to PeopleLibraryPage modal, navigation menu, quick navigation)
  • ✅ Frontend tests (11 component tests, all passing)

Friend Linking to ARC Users​

  • ✅ Database schema (PersonArcLink and LinkInvite models)
  • ✅ PersonArcLinkService with create, accept, revoke, get methods
  • ✅ LinkInviteService with create, use, get, delete methods
  • ✅ Link methods: code-based invites, email-based invites, public ID search, username/email search
  • ✅ Link status flow: pending → active (via accept) → revoked (via revoke)
  • ✅ User model additions: publicId, publicIdVisibility, emailSearchVisibility, publicProfileVisibility
  • ✅ Public ID generation and validation (user-friendly format based on email)
  • ✅ Privacy controls enforced in backend (findByPublicId, findByEmail respect privacy settings)
  • ✅ Frontend: LinkToArcUserModal component with full linking flow
  • ✅ Frontend: Link status badges (active/pending) displayed on person cards
  • ✅ Frontend: Accept/revoke link functionality with confirmation
  • ✅ API routes: POST /api/person-arc-links, POST /api/person-arc-links/:linkId/accept, POST /api/person-arc-links/:linkId/revoke, GET /api/person-arc-links, GET /api/person-arc-links/:linkId
  • ✅ Comprehensive test coverage (12 frontend tests, comprehensive backend tests)

API Endpoints​

  • /api/progress-sharing/weekly - Share weekly progress
  • /api/progress-sharing/monthly - Share monthly progress
  • /api/gamification/community-challenges - Community challenges
  • /api/groups - Group CRUD
  • /api/groups/:groupId/highscores - Group highscores
  • /api/social-happenings - Social happening CRUD
  • /api/person-arc-links - Friend linking CRUD
  • /api/person-arc-links/:linkId/accept - Accept friend link
  • /api/person-arc-links/:linkId/revoke - Revoke friend link
  • /api/v1/users/search - Search users by publicId or email
  • /api/v1/users/:publicId - Get public user profile

Frontend Pages​

  • Share Progress (/share-progress)
  • Challenges (/gamification/challenges)
  • Groups (/groups)
  • Group Highscores (/groups/:groupId/highscores)
  • Social Happenings (/social-happenings)
  • Public User Profile (/user/:publicId or /user/by-email/:email)