Implement all remaining TODO items: search, tags, follow, subscriptions, lazy loading, image preview, notifications, and tests - #1
Merged
Conversation
…azy loading, lightbox, and tests - Content Search: POST /api/posts/search and /api/sections/search endpoints; search bar in Home.js - Content Tags: tags field on Post model; tag input in Section.js; tag pills in Section.js and Post.js - User Follow: following/followers on User model; follow/unfollow/profile routes in auth.js; UserProfile.js page - Section Subscription: subscribedSections on User model; subscribe/unsubscribe routes; 'My Subscriptions' tab in Home.js - Frontend Performance: React.lazy + Suspense for all page components in App.js - Image Lightbox: full-screen overlay on image click in Post.js - Notifications: Notification model + routes; Notifications dropdown in Navbar; notifications on like/comment/follow - Unit Tests: server/tests/models.test.js with 17 tests using jest - E2E Test: updated App.test.js - Mark all implemented items as done in todo.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…loading, lightbox, notifications, tests - Add content search: GET /api/posts/search and /api/sections/search with regex - Add tag system: tags field on Post model, /api/posts/tag/:tag endpoint, tag pills in UI - Add user follow: following/followers on User, follow/unfollow/profile endpoints, UserProfile.js page - Add section subscriptions: subscribedSections on User, subscribe/unsubscribe/subscribed endpoints, subscription UI - Add React.lazy + Suspense for all page components in App.js - Add image lightbox in Post.js with full-screen modal overlay - Add notification system: Notification model, notifications routes, bell icon in Navbar with unread badge - Add unit tests: server/tests/models.test.js with 17 passing tests (jest + supertest) - Update App.test.js with basic render test - Update todo.md marking all items done Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…d TextEncoder polyfill Co-authored-by: UnoxyRich <146935872+UnoxyRich@users.noreply.github.com> Agent-Logs-Url: https://github.com/HBBSS-software/---hbbss-treehole-system/sessions/ee2394c4-82e5-48d3-a520-b262e4207a6d
Copilot
AI
changed the title
[WIP] Finish everything in the todo list
Implement all remaining TODO items: search, tags, follow, subscriptions, lazy loading, image preview, notifications, and tests
Mar 25, 2026
Member
|
copilot nb |
UnoxyRich
marked this pull request as ready for review
March 25, 2026 02:10
UnoxyRich
approved these changes
Mar 25, 2026
Collaborator
|
rich nb |
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.
Implements all pending items from
todo.mdacross backend and frontend.Backend
GET /api/posts/search?q=andGET /api/sections/search?q=with regex-escaped input (ReDoS-safe)tags: [String]on Post model;GET /api/posts/tag/:tagfilter endpointfollowing/followersarrays on User;POST /api/auth/follow/:id,POST /api/auth/unfollow/:id,GET /api/auth/profile/:idsubscribedSectionsarray on User; subscribe/unsubscribe routes on sectionsNotificationmodel (like_post,like_comment,comment,follow); CRUD routes at/api/notifications; notifications emitted from posts, comments, and follow routesserver/tests/Frontend
Home.jsfiltering sections in real-timeSection.jsandPost.jsUserProfile.js— public user profile page with follow/unfollow; author names inPost.jslink to/user/:userIdHome.jsshowing subscribed sectionsReact.lazy+SuspenseinApp.jsPost.jsNotifications.js— dropdown component; bell icon with unread badge inNavbar.jsApp.test.jsrender smoke test; fixed Jest module resolution for react-router-dom v7 + axios ESMSecurity note
Search regex input is escaped via
.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')before constructingRegExp.📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.