What is Spark?

Spark is a React Native Android application that enables users to easily match with others in order to find project partners, hackathon team members, whiteboarding buddies, find study groups, and to spark new lifelong friendships.

Inspiration

In many instances, an individual may feel too shy, too intimidated, or not in the mood to try to network/introduce themselves to a large gathering and would rather keep to themselves. This typically results in losing many opportunities to participate in hackathons (due to not having a team), not being able to work on a large collaborative project or practice whiteboarding with a partner.

Our experiences of trying to find interesting individuals to do a hackathon with, do Leetcode/Whiteboarding preparation, do interview prep, projects, and study groups had motivated our team to create this app to hopefully simply this search and modernize the experience. With the goal and ambition of replacing the many "looking for a partner" posts on large Facebook groups, we hope to modernize the search for a study buddy.

As more individuals are at home, it is important to keep being productive. Finding similarly ambitious individuals is very key to an individual's mental health and motivation levels. Having that extra buddy to keep you accountable and push you beyond your limit is invaluable. We hope that our app could contribute to a solution to make working from home/ studying from home/ staying at home easier, more productive, and social.

Happy at Home Hack

What it does

Spark is a solution to this problem. With a very user-friendly interface, Spark allows simple swipes left or right matching users based on inputted interests. Spark is the one place stop for quickly forming connections for specific events and activities where a user would be inclined to work with others.

How I built it

Our stack consists of React Native, JavaScript, React, Socket.io, MongoDB, OAuth2.0, Express.js, Passport.js The mobile application allows the user to login with LinkedIn via OAuth2.0 where the users LinkedIn profile is uploaded to the MongoDB server. Via GET requests, we are able to populate the user's profile fields.

The user can choose to swipe left or right on an array of users who have similar interests. In this curated list of users that the user can swipe, we had used a matching algorithm in the backend in order to test the similarity of profile users. This algorithm gave each a similarity score which is based on matching results/keywords. A higher score means that there's a higher match in the keywords of the interests of each user. We curated the user list to show other users with high scores to ensure a high-quality matching experience.

Challenges I ran into

  • The entire team was in the midst of midterms and preparing for job interviews; thus, our team was really only able to participate in half of the hackathon. :(
  • Due to setting up the environment for React Native (as it was the first time our team had worked with React Native), our actual development couldn't begin until 8 pm PDT which is 11 pm EST :(
  • Connecting the front end to the backend was a troublesome issue. React Native could be very troublesome especially when using the dev tool, EXPO.
  • Implementing Chat was filled with bugs.

Accomplishments that I'm proud of

Our team was able to complete a: Completely functional backend Completely functional frontend in only a single day :)

Additional features we have completed and are proud of:

  • OAuth2.0 and LinkedIn verification
  • Cookie sessions to also ensure an excellent browser experience and easy portability to a web app.

What I learned

  • First time learning React Native- none of our team ever built anything in React Native. It was an excellent experience to be able to learn and add React Native to our stack. It also serves as a very huge contrast to Android development using Android Studio and Java.

  • We learned how to set up the backend completely and utilize Passport.js and OAuth2.0 in order to enhance user experience. Users can use OAuth2.0 to signup and sign-in with LinkedIn.

  • We learned how the numerous issues and troublesome bugs that can occur when trying to link up the backend and the front end. It was a very beneficial first experience as it was our team's first time connecting an actual backend to an Android app.

What's next for Spark

  • Implement OAuth2.0 for Facebook/Google
  • Streamline Chat functionality
  • Add User Feeds
  • Custom unique code as an identifier for specific groups in order to allow targeted swiping. (ie. For Same Home Different Hacks Hackathon, users who are looking for hackathon teams can simply enter the code: SHDH12391741 and be able to swipe other users who specifically have also entered the code.)
  • Implement Authentication Strategies for DevPost which may simply the above feature.

Best Domain Name from Domain.com

sparkify.online

Share this project:

Updates