Inspiration

We noticed a growing need for accessible help within communities—people who couldn’t afford traditional services often had skills of their own to offer. This inspired us to create a platform that empowers users to trade services directly, fostering a community of mutual aid and collaboration.

What it does

ServiceSwap is a peer-to-peer service exchange platform that allows users to post, discover, and fulfill service listings—completely without money. Users log in, list services they can offer (e.g., coding help, lawn care), and create requests for tasks they need completed. Users can narrow down their search by using a deep learning searching tool, which shows related results and keywords, which is further refined by the geolocation of the user and a customizable search radius. In order to have their request completed, users can use the search to find someone who’s needs they can fulfill, after which they can reach out to them and connect using the real-time chat feature integrated into the platform. Each user has a profile, in which they are strongly encouraged to upload qualifications; the more qualifications a user has, the higher their trust is and the more they are recommended in the search. The search is furthermore refined through the use of a dynamic 5-star rating system based on past completed exchanges.

How we built it

We developed ServiceSwap using a Flask-based backend paired with SQLite for data storage, managed through SQLAlchemy ORM for clean and scalable database interactions. User authentication and session handling were implemented using Flask-Login’, while WTForms provided secure form validation and input management. For real-time messaging between users, we integrated Flask-SocketIO. On the frontend, we used TailwindCSS alongside custom CSS and JavaScript to build a responsive, visually engaging interface. The HTML5 Geolocation API was used to capture user coordinates, enabling us to filter listings by proximity using the Haversine distance formula. Additionally, we implemented a semantic similarity module using a custom filter_by_semantic_similarity utility to enhance search relevance, allowing users to find matching listings even with varied phrasing. To give results based on similarity/keywords, we used a pre-trained deep learning model called sentence_transformers, which produced a fixed-size embedding vector that represented the meaning of every request. Then, by using cosine similarity, we are able to compare how closely similar the semantic meaning of the request and the search term is, allowing the search if a certain threshold is reached.

Challenges we ran into

  • Integrating and synchronizing profile data (e.g., images and ratings) across all views, including listings, inbox, and profile pages.
  • Calculating geospatial distance accurately and optimizing filtering efficiently.
  • Integrating a real-time chat feature between users of the platform at any given moment
  • Developing a flexible search utility that could intelligently match semantically related terms without overloading client-side performance.
  • Ensuring security of uploaded files and dynamic content handling across the stack.

Accomplishments that we're proud of

  • Delivered a complete, community-based full-stack bartering system within 36 hours.
  • Designed and implemented a deep-learning-powered semantic search system to improve matching relevance.
  • Created a live, production-ready chat system and a flexible UI with animated popups and modals.
  • Developed a rating and qualification trust system that elevates user credibility within the marketplace.

What we learned

  • How to architect a modular full-stack application that incorporates authentication, real-time features, semantic search, and geolocation, along with Websockets for a real-time chatting interface
  • How to integrate deep learning models into production-level Flask apps without latency issues.
  • The importance of UI/UX responsiveness in service-based apps, especially around listing input, filtering, and chat interactions.

What's next for ServiceSwap

  • Optimizing the machine learning aspect to provide more accurate results, as well as improving the listing algorithm + looking into the idea of categorizing listings into sub-categories for better organization
  • Improving the chat feature with additional features such as scheduling, bookmarking, notifications, videocalling/calling, and much more to help users coordinate trades efficiently.
  • Adding more layers of security to the entire protocol and keeping track of when transactions occur between users to create a fairer rating system, as well as track fraud
    • To ensure even more security, tools to report or flag suspicious users can be used
  • Letting larger organizations (e.g., schools, NGOs) coordinate and post group-wide needs and offers
  • Gamification; track progress to see how many trades you’ve done and how many hours contributed, and have batches to celebrate user milestones (i.e., 100th completed trade)

Built With

Share this project:

Updates