SkillSwap — Octopus Hackathon Submission

Inspiration

The inspiration for SkillSwap came from a simple observation: learning is expensive, but everyone has something to teach. However, most free communities fail because of the "leech problem"—a situation where users take value but never give back. I wanted to build a platform that wasn't just a directory, but a circular economy where knowledge is a shared currency.

What it does

SkillSwap is a MERN-stack platform that facilitates structured peer-to-peer learning. It features:

  • Dual-Nature Postings: Users can create Offers (to teach) or Requests (to learn).
  • The HelpPoints System: A custom economic model I designed to ensure fairness. Every user starts with 5 HelpPoints. Requesting help costs 1 point, while providing help earns you 1 point.
  • Protected Coordination: A secure environment to manage "Incoming" and "Outgoing" swaps, complete with meeting scheduling and status tracking.

The HelpPoints Logic

To ensure the community remains balanced and solves the free-rider problem, I implemented the following logic: $$\Delta P_{provider} = +1, \quad \Delta P_{requester} = -1$$ This formula ensures that for every "take," there is an equal "give," maintaining a stable ecosystem.

How I built it

I utilized a robust MERN architecture to ensure scalability and a smooth user experience:

  • Backend: Node.js & Express with a clean MVC pattern to manage complex business logic for HelpPoint transactions.
  • Frontend: React & Vite for a high-performance, single-page application experience.
  • Database: MongoDB & Mongoose to store relational data between users, their points, and swap history.
  • Security: JWT-based authentication with protected API endpoints.
  • Notifications: Nodemailer for automated email coordination when swaps are accepted or completed.

[Image of MERN stack architecture diagram]

Challenges I ran into

As a solo developer, the most significant challenge was implementing the conditional UI logic for the "Incoming" vs "Outgoing" tabs while managing the full-stack integration. I had to ensure that the text dynamically updated based on the post type (e.g., "User X wants to help with this" for Requests vs "Request from User Y" for Offers). Additionally, ensuring that HelpPoints were updated atomically—only when a swap is marked as "Completed"—was crucial to maintaining the integrity of the platform's economy without creating "ghost" points.

Accomplishments that I'm proud of

  • The Anti-Leech Guardrail: Successfully building a system that mathematically discourages free-riding.
  • Solo Execution: Managing the entire lifecycle of the project from database schema design to the final UI polishing.
  • Clean Architecture: Maintaining a highly organized codebase with a clear separation of concerns between the client and server.

What I learned

I learned that incentive design is just as important as technical design. Building the HelpPoints logic taught me how to translate a community value (fairness) into a backend requirement. I also deepened my understanding of React's useEffect hooks for handling complex, multi-tab filtering and pagination in a real-world scenario.

What's next for SkillSwap

  • Live Chat: Integrating Socket.io for real-time discussion before a swap is accepted.
  • Reputation System: Beyond points, adding "Expertise" badges for top-tier contributors.
  • Calendar Integration: Allowing users to sync their scheduled swaps directly to Google Calendar.
  • Mobile App: Expanding the reach of the SkillSwap economy with a dedicated mobile experience.

Built With

Share this project:

Updates

Submission history