It's no secret that building real, meaningful connections through the internet is much harder than it is in person. The COVID-19 pandemic has amplified this disparity. Many of our team members have had similar experiences of struggling to build connections and professional networks, something regarded as trivial before quarantine. We quickly discovered that sending cold emails and unwarranted social media direct messages just isn't effective. At the same time, we have had eye-opening experiences that have revealed the much larger pool of potential connections when not restricted to the people around us. Mixr is looking to solve the cold email problem and tap into the great possibilities by providing users a platform to find and connect with other professionals.
What it does
Mixr approaches how we make connections and build our professional networks online with a new formula. Through an in-house matching algorithm and a Tinder-like swipe interface, Mixr ensures you connect with similar and willing people, eliminating the need for awkward cold emails and elevator pitches. Users are presented with a stack of profiles on which they can swipe right or left to vote yes or no on potential matches. When two users swipe right on each other, a match is made and a text channel is created for the users. The users can use this interface to communicate and potentially (WIP) initiate an audio call.
How we built it
Mixr's backend is built with Node.js, Express.js, and Typescript. For Twilio, the backend has an endpoint that returns a JWT based on a unique identity string associated with the user. In this case, we used the Linkedin vanityName as the identity. We used the twilio-node package to generate the token and added a chat grant to it. We also used express-jwt and express-jwt-authz to authenticate the endpoints.
We’re using a Firestore database in order to store LinkedIn profiles, and using the frontend firebase SDK in order to fetch data. We are using a LinkedIn scraper running on our backend server to scrape a user’s LinkedIn profile and add it to the Firestore database in order to enable matching with everyone.
Our frontend is built with React Native and Expo, enabling the app to function on both Android and iOS devices. Authentication is facilitated through Auth0. Our messaging interface and communication is provided by Twilio. We use Redux to store our state app-wide and also use the redux-persist library to save user login locally to the device, ensuring the user only has to log in once. Notifications will be available soon.
Challenges we ran into
One challenge we ran into was working across time zones, as our team is split across Los Angeles and Singapore. We had to come up with interesting ways to coordinate with each other.
Another problem was that setting up the audio chat in the given timeframe proved to be difficult; however, we intend to complete this feature soon following LA Hacks.
Finally, the last challenge we ran into was working with the LinkedIn API. Our initial intentions were to build our users' profiles through LinkedIn OAuth, but we soon discovered this to be a deprecated feature. Our final solution built profiles automatically with the help of a LinkedIn scraper.
Accomplishments that we're proud of
We're proud of the obstacles we were able to overcome while working in different time zones. We're proud of the many integrations (LinkedIn, Expo, Auth0, Twilio, Firebase, and more) we were able to incorporate in our final app. We're most happy that our project is a meaningful tool for those looking to expand their professional networks. All of us here on the Mixr team agree that we met our goal of building a useful and enriching product.
What we learned
Working on Mixr was a great learning experience for all of us. Multiple members of our team were able to experience mobile development for the first time. Additionally, we all gained experience working on advanced concepts both in the frontend and in the backend.
What's next for Mixr
Though we were able to put together our minimum viable product, we have many more plans for where Mixr can go. We hope to continue adding features that will enrich the communication experience, and we want to prioritize iterating on our matching algorithm. We definitely want to continue working on Mixr and will gradually build a userbase.