SkillSwap
A full-stack peer learning platform built around skill exchange, community interaction, session management, notifications, and user engagement.
01
Problem & Motivation
Peer-to-peer learning communities suffer high churn when users lack active feedback loops, structured discussion threads, or proactive reminders for scheduled learning sessions.
A full-stack platform designed to help users exchange skills, discover learning opportunities, interact with a community, and manage sessions.
02
System Architecture
Community Feed & Asynchronous Notification Architecture
Interactive Feed & Discussion
React client connects to Node/Express REST APIs with cursor-based pagination for high-performance infinite scrolling.
Hierarchical Comment Engine
MongoDB schemas optimized for recursive parent-child discussion threads and optimistic reaction state updates.
Real-Time Push Notifications
OneSignal integration pushes immediate alerts when users receive replies, session invites, or skill match requests.
Automated Weekly Digest
Scheduled background worker queries user activity and dispatches personalized summary emails using Resend.
03
Technical Decisions & Trade-Offs
Cursor-based pagination for community feed
Prevents duplicate items and skipped records during frequent real-time posting compared to offset-based pagination.
Asynchronous notification dispatch via OneSignal & Resend
Decoupled email/push notifications from HTTP response cycles to maintain low endpoint latency (<100ms).
05
My Individual Contributions
- Engineered the public community feed with infinite scroll and dynamic filtering.
- Architected threaded comment trees with nested replies, user mentions, and instant reactions.
- Implemented automated session reminder triggers to notify participants before scheduled exchanges.
- Integrated OneSignal for real-time web push notifications on active user events.
- Built automated weekly activity digests utilizing the Resend API with personalized engagement summaries.
06
Technologies & Tools
07
Key Takeaways & Findings
Designed clean data boundaries in a team codebase to maintain modularity between feed services, authentication, and notification workers.
Gained hands-on experience handling asynchronous event dispatching and database indexing for relational comment trees in MongoDB.