Inspiration

Even though there are many websites such as LinkedIn and Handshake for allowing students to find internships, there aren't any comparable platforms for research opportunities. Our vision with prof.io is to enable students to more easily connect with research faculty and professors to outreach to students about their research.

What it does

The application matches students and professors that share similar research interests. It gives the students recommendations of research opportunities that align with their preferences and helps professors filter out possible mismatches.

How we built it

We built the frontend of the mobile application using Swift and used Python with a machine learning library called sklearn to create an K-means clustering model that matches students with professors. The model uses k-elbow method to find the optimal k value, and uses Principal Component Analysis to reduce feature dimensions, hence, reducing running time. Furthermore, we set up our database using Firebase to easily store and retrieve data on students and professors. In the front end, the mobile app connects to the Google Cloud, runs the python script, and returns the computation result back to the mobile app.

Challenges we ran into

Not everyone on the team had familiarity with Swift and we had to learn along the way. Due to limitations on data that we were able to programmatically generate, the resulting model may not be 100% accurate.

Accomplishments that we're proud of

Our team was able to apply machine learning to our project and create a working model. We were also able to build a full-stack mobile application with multiple components within 24 hours.

What we learned

We attempted to follow the traditional software development cycle from ideation to presentation. During the process, we were able to be exposed to various technologies widely used by the industry.

What's next for prof.io

Organize the structure of the application so that there is a clearer distinction between the frontend and backend, and remodel the user interface to make it more appealing and responsive. We can also improve the machine learning model by analyzing real-world data.

Built With

Share this project:

Updates