Sign Up page
NewsFeed (multiple posts)
Proof : THE ENTIRE WEBSITE IS RESPONSIVE
More details about a post
Information about a user (not styled yet)
Personality Test calculator for Compatibility with users to gain connections
Compaitbility Page (in this case, the user is unique i.e, threshold personality Compatibility value is less than x%)
In this case, the current user (top right) has matched with one user from the website and has been linked in their 'link' page
events Page where users can add events to enhance their connections
close-up on few events
detailed event < vt hacks >
adding comments to an event
all comments displayed for an event
The idea of Finna was stemmed through the marriage of two concepts : Entrepreneurship and finding friends. I've been passionate about entrepreneurship and building ideas since high school. When I came into VT, I wanted to build something meaningful which would create a long lasting impact on the community. The only problem was: I couldn't do it all by myself. Hence, I needed some people I could trust who would undertake the common journey what we'd call a startup. The only problem was: I didn't know anyone when I first came in. So, I ran a quick search on Facebook : VT Class of 2022 students. While the list was impressive with lots of students, the only problem was, well, there were too many students to scan for as potential business partners. This was frustrating because it was really hard finding friends who could gel well with me. In theory, I could, but that would require a lot of time. Being a college student, time was a scarce resource I couldn't afford to lose. And hence, Finna was created...
What it does
Finna is essentially a matching application for individuals seeking new ventures in the form of startups, programming, or just about anything that they love to do. So, how is it different from Social Media giants like Facebook and LinkedIn?
- Unlike Facebook, Finna doesn't recommend you friends based on your mutual friends or people in the same group as you. Instead, it generates a personality test and finds individuals with common personalities with a commonality level of about 70%. This means that if you fill out the short 10 question MCQ test, Finna would do the heavy lifting for you and try to figure out if there any users with similar personalities and interests as you. If so, then you can potentially add them to your group of connections (not implemented yet!).
Unlike LinkedIn, Finna is geared towards empowering startups and individuals in the process of growing themselves. Instead of finding jobs at companies, Finna encourages users to create new ones and accelerate the technological progress in the world. Users at Finna don't look for jobs at companies but instead, new and exciting ventures which they value. Never have people found jobs they truly value as much as they do now when they'd use Finna. --> There are 4 key components to Finna:
Newsfeed: This page is where all the posts made from users are located regarding new ventures, questions about business strategy, development, finance, and much more.
Users : This page is where all the users are located. Unless a user makes his/her profile private, any authorized user can view each other's profile. Unlike any other social media platform, Finna has limited the number of connections one user can have to 144. This would encourage users to choose wisely the people they consider to be their 'connections.'
Events : This page is responsible for users to be able to add and go to events that other developers / entrepreneurs have posted. This gives Finna the ability to help users meet in real time and encourage users to create physical connections just as much, if not more, as virtual ones.
The Link : this is arguably the most important part of the application, hence the best for the last. The link provides the user the ability to take a short (1-2 min.) personality type test. Once taken, the algorithms behind the scenes will figure out the compatibility or ' gel-ness ' of an individual with others. Once completed, The Link will generate users from the website who would possibly get along well with the user. This way, the time it would take to find and make new and meaningful connections will decrease by several order of magnitudes. While I am aware that the algorithm can not always be perfect, there is always a good indicator that the user can be matched with someone with shared interests.
How I built it
I used a lot of technologies for this full-stack extensive web application. I used MongoDB as part of my NOSql Database along with Mongoose as my Object Data Modelling library. I also used express as my web application framework for NodeJS as my run-time back-end environment. I also used other libraries such as moment.JS to calculate the time in DateString() a user posted a comment. Although the website hasn't been finished yet, I have added a lot of security to the website through the use of Passport.js for Local and Google OAuth as part of my Authentication methods. I also used my custom created middleware (all not done yet).
The main part, the connection algorithm, was arguably the most difficult part of the process of developing the application which will be talked in the next section.
Challenges I ran into
The algorithm responsible for separating Finna from any other social media platform turned out to be the hardest one to implement, naturally. While I am not willing to share how I created the algorithm due to confidentiality and self-interest, I did manage to create a very efficient sorting and matchmaking algorithm which was very frustrating initially.
I remember at one point how frustrated I was over the algorithm that I decided to abandon the project completely and just walk away. While coming back to my laptop after a 30 minute walk, I figured it out. Turns out that when you really want something bad as much as you want to breathe, no force can stop you!
Accomplishments that I'm proud of
First and foremost, I am really proud of how far I came into implementing a problem I had last semester into an actual solution. Secondly, I feel quite confident that my sorting matchmaking algorithm can provide analyzed connections to an upper bound of several million users. After the hackathon, I'd have to create an even better sorting algorithm to be very efficient and quick so it can serve to an infinite amount of people.
What I learned
I learned that nothing works better than console.logging every single line of problematic code. It's the call stack (debugger) for backend programming. I also learned a whole new process of authentication, namely google oauth. What I was surprised about was how easy it is to retrieve user data from a linked google account such as contact, address, age, and other private scopes.
What's next for Finna
While Finna hasn't been converted to a minimal viable product yet, the next step for Finna is to add the ability to send and accept/deny connections. Moreover, Finna will be adding chat services too using Socket.io and other JS libraries to ensure the full-stack integrity of the application. Once this is completed, an estimate of 1-2 weeks, Finna will hopefully be available to the public and officially be a free product for people to use to alleviate their connections. In the minimal viable product version of the application, Finna will be served only to users with an authentic .edu account to keep it strict to college/school level experience.
Finna hopes you enjoy our service. While far from being done, we hope you are excited just as much as we are for what it means to redefine CONNECTION!