Back to the project hall

Swapi

Set Goals. Exchange Skills. Have Fun — Together

made in a weekend!
Screenshot of Swapi

the spark

Framing the Problem

What is the problem you are trying to solve? Who does it affect?

Most good and interactive study courses are either expensive or don't match how you like to learn. Furthermore learning a new skill alone is already hard but trying to learn with someone that doesn't match your interests is even harder. This doesn't only affect students it can also account for professionals that want to learn some new skills but don't have the time to commit to a course.

Idea Explanation

Instead of setting a study goal and then working out alone which programs to use and how to learn, you get matched with a study buddy who shares your study interests and who you can exchange skills with, having fun along the way. You set your goal, then decide the date, time and how much commitment you want, all without spending any money. Swapi also tracks your progress, with a Journey tab, reflections after each session and a mascot that evolves as you complete sessions, so you can see how far you’ve come.

under the hood

Implementation

Swapi is a single-page application hosted on GitHub Pages. A short setup quiz creates your profile, which is stored in a shared db.json file that acts as a public database. This file holds all users, swipes, matches, and messages, allowing real people to match and interact with each other. The frontend handles everything: matching, swiping, chat, booking, the study room, and progress tracking. Demo profiles are seeded so that a single user can still experience the full flow, but the system is built to support real user interactions. For security, each user is assigned a unique token stored in their browser, which acts as their identity.

what got in the way

Challenges

The biggest struggle was deciding on the final layout and how to implement it. We each had a different vision for how the app should look and work, so we had to compromise on a design that stayed simple enough for a new user. Getting the swiping to feel natural on a phone and fitting many features into one clean flow were the hardest parts of the build. We overcame this by agreeing on a core experience first (setup, swiping, matching and booking), then adding extra features one at a time and testing each on both desktop and mobile.

high fives

Accomplishments

We all learned something different, but mainly we reflected on how to make an app engaging and appealing to use. We all had different features we wanted, and we ended up with a system that includes at least one feature from everyone’s recommendations.

since then

Next Steps

The next steps are to implement secure user accounts with email and password authentication, migrate from a JSON file to a proper database (like PostgreSQL) for better scalability, and replace the current polling mechanism with WebSockets for real-time chat and notifications. We also plan to add moderation tools to ensure user safety.

same weekend, different ideas

More from October 2026

See all projects from this weekend