Inspiration:

14 million, that’s the number of university students in the US and Canada that feel isolated and lonely according to the CBC. 3.3 million stated they don’t have any real friends. After surveying my friends and upper year students, there was a general consensus that the majority of friends they made throughout the years weren’t from orientation but rather group led activities. This included going to the gym, doing class projects, and most prominently, working in study groups. They stated that it was a great way for them to meet people in the same program, have the same courses, and bond due to similar interests. Furthermore, they emphasized the effectiveness of studying with friends compared to alone in their dorms, where they were constantly distracted or spent hours attempting to understand their work. 60% of students believed they consumed more knowledge when studying in a group and 70% stated that they had increased motivation. I did some research and found that 60% of students believed they consumed more knowledge when studying in a group and 70% stated that they had increased motivation. This inspired me to create Study Buddies.

What it does

Study Buddies is a website where students can create and join group study sessions - based on their location, courses, and program. This will facilitate the ability for students to make new friends that are in their program or classes, limit isolation in dorms, deal with tough classes, and promote an active lifestyle.

How we built it

To create the server and handle http requests/routing I used Node.js and Express.js. I created authentication from scratch by using passport.js, js, session cookies, and joi to create the schema, middleware to validate registration/login, and authorize users - from there the data was sent back and stored in the mongoDB database. Once a user inputs their program and semester, I used a web-scraping library called puppeteer to extract all the courses from their respective program. From there a user can view active sessions - what course is being studied, who created it, who is currently in the study session, the time it’s taking place, it’s location, and choose whether to join or leave a study session. I used ejs for the html template, bootstrap and my own styling, as well as flash to make the UI/UX very appealing. They can then create a new study session if they are logged in and delete it if they are the user. Additionally middleware and protected routing were implemented so that even if a person tries to send requests through postman they have to be properly validated.

Challenges we ran into

This was my first time using web-scraping so learning how to use puppeteer, and reading through the documentation was really tedious. Furthermore, because of the time crunch and the fact that I was working alone I wasn’t able to implement all the features that I had almost completed. For example, using python instead for the web-scraping and calling the function and receiving data using an api from my Node.js server, creating a user’s dashboard, using Cohere or an algorithm to recommend friends based on similar courses or programs.

Accomplishments that we're proud of

In a short time span I was able to create semi crud functionality, (updating wasn’t really necessary for this website), utilize a web-scraping library instead of having to manually create arrays based on a user’s program, deploy the app, and use MongoDB atlas to create an online server. I also managed to create the schema in a way so that in the future when I want to implement more features it becomes much easier as most of the data has already been stored - even if not used.

What we learned

I learned a lot about a library called puppeteer after a frustrating amount of trial and error, quickly implementing styles, developing middleware, and more complicated routing.

What's next for Studdy Buddies

A dashboard so that a user can see what sessions they are currently in, friends they have made, statistic on how many sessions they joined in the past, awards based on their activity, etc. A method for creating online study sessions so that the website can become more accessible - however many safety features and precautions have to be implemented for this to work correctly. Expand the web-scraper to be implemented for all university students because at the moment it’s only usable for Waterloo engineering students.

Sources: https://www.facultyfocus.com/articles/course-design-ideas/what-students-can-learn-from-studying-together/ https://www.bestcolleges.com/research/college-enrollment-statistics/ https://www.cbc.ca/news/canada/toronto/covid-ont-universities-1.6326620 https://www.independent.co.uk/news/education/education-news/student-lonely-university-friends-mental-health-research-a8839011.html

Built With

Share this project:

Updates