With summer break ending soon for many of us and schools entering a new school year completely online, new and innovative solutions have been introduced to ease the transition into virtual learning. School counseling, however, has not received as much attention, as counselors rush to hastily meet the demands of hundreds of students by frantically scheduling Zoom calls or answering emails to simple questions from students while transitioning into a new work environment. To help school counselors who are adjusting to virtual learning, or even simply just trying to keep up with their already massive workload, we created vCounselor.
What it does
vCounselor is a mobile application that assists students who are seeking basic counseling. The app asks students for information such as how they spend their time, and utilizes machine learning to predict whether the student is currently on track to meet their academic goals. If the student appears to have any problems such as a lack of free time, or isn’t on track to meet their academic goals, vCounselor provides guidance and resources to assist the student. vCounselor can also help students identify potential classes, universities, and careers they may want to pursue based on their interests. The goal of the app is to provide basic assistance to students so they can receive more immediate help and reduce the workload of counselors, allowing these counselors to focus on more important or urgent cases, such as student health or familial problems.
How we built it
The frontend of vCounselor was built using Expo and React Native along with the UIKittens library. The app utilizes a custom SciKit Learn machine learning model to generate predictions for student performance based on user inputted data, which was then put into an API through Flask and hosted on a Heroku server. The career and college screen uses Python and BeautifulSoup4 (also accessed through the same API and Heroku server) to perform web scraping which provides the recommendations seen on that screen.
Challenges we ran into
In our team’s last hackathon, we dealt with machine learning for the first time, but ultimately failed to make a finished working product since we were unable to figure out how to get predictions from our model to the app. We spent a great deal of this hackathon working to address the same issue, but with different and more fleshed out ideas to solve the problem, ultimately creating an API through Flask and hosting it on Heroku. We also worked with web scraping for the first time, initially facing difficulties with reading through HTML code to find what was needed and figuring out which sites had means to block web scraping, but were able to scrape the results of various college information and advising sites to provide recommendations for students based on their interests. This hackathon also introduced new non-technical challenges for us related to our personal lives, forcing us to work without one of our usual teammates and with even more limited time constraints than already placed on us by the hackathon.
Accomplishments that we're proud of
Through vCounselor, our team has overcome challenges both new and old, giving us a sense of relief and accomplishment in doing so. We feel accomplished in beginning to gain mastery over old challenges that we had faced, such as developing a machine learning model, or working entirely with languages we had only learned months ago. We feel that vCounselor is one of our best applications yet, in both technical difficulty and functionality, especially after looking back at hackathon projects we had made as recently as May.
What we learned
In the process of creating vCounselor, we learned about creating APIs, hosting on and accessing Heroku servers, and how to perform basic web scraping. We also gained experience in finding relevant datasets and creating machine learning models through SciKit Learn. Since one of our teammates, who specializes in frontend with React Native, was busy this weekend, members of our team also learned more about creating the user interface and working outside of our usual assignments. While vCounselor has allowed us to learn many new skills and tools in programming and app development, it has also increased our appreciation of our school counselors. When creating this app, we began to realize just how many aspects of student life counselors have to address, from basic class schedules, to the health and wellbeing of the community. We hope those who see and try our app can also learn and appreciate how much counselors and advisors do for their school, especially when a school is understaffed and dealing with transitioning into virtual learning.
What's next for vCounselor
We hope to introduce vCounselor to the staff at our high school, and receive feedback from our counselors and staff members on how to potentially improve and implement it at our school. While vCounselor is more student oriented and meant to reduce the workload of counselors, we also hope to make a counterpart for the counselors themselves that will receive alerts for students that may need more assistance or deserve recognition, and potentially automate tasks for counselors as well. If vCounselor accomplishes its goal within our local community and schools, we could change the app to accommodate various types and levels of education, and integrate more features such as schedule planning to further assist counselors. Once we gain more experience with different tools such as PyTorch, we may also consider trying to improve its already existing features, such as our machine learning model, or improving the quality and use of our web scraper.
Google Slides Presentation: https://docs.google.com/presentation/d/1CLXMYm0jJRlG-FKLIR2NXKUIqqUvHC4POjaX1BJiI_o/edit?usp=sharing