The inspiration for this project came from a team member’s personal experience doing STEM advocacy with FIRST Robotics. Inspired by what they saw at our demos and other outreach programs, parents and students would often ask: ‘Where can I get involved? What programs/teams are near me?” The truth was that we often didn’t have an answer - we had virtually no information to help students find teams, other than by word of mouth or outdated forums. It was especially disheartening when the only thing we did know is that the student was unlikely to find a team since few existed where they lived. This experience got us thinking: How can we help people find STEM programs that already exist near them and how can we spur the growth of those programs where interest is high but service is low?
What it does
stemLinked facilitates team and program formation by creating a network of students who are looking for opportunities, coaches or mentors who want to start offering them, and existing programs/teams looking for students to join them. Although stemLinked could be applied to any number of team based STEM programs all over the country, we used the FIRST LEGO League (FLL) competitions in the Virginia-Washington D.C. region as a case study for its basic functions. Using the web application, students can see, on a map, all of the teams within a certain radius of their address and can apply to teams that are accepting new members. If there are no teams accepting new members near them, students can submit a team formation request, which involves providing some basic contact information. The location of the student who made the request is marked on the map where it can be viewed by others. The density of formation requests can signal which areas have a high level of interest in FLL but which also have a high unmet need for teams. This is where stemLinked for coaches comes in. New coaches can view the map of team formation requests and determine how many of those requests come from a radius close to their location. These coaches can reach out to the students who made the request using their contact information in order to form their team! If additional formation requests pop up within a potential coach’s zip code, they will be notified to reach out to the potential student via Twilio. The feedback between potential students and coaches through stemLinked allows for more efficient team formation, which in turn promotes STEM programs like FLL to reach a much larger population in the areas that need these programs most.
How I built it
The framework for the front end of stemLinked was created in R using the R Shiny package. SMS notifications were configured using Twilio Programmable SMS in Python. This Python script was run in R using a package called “reticulate”. The database of team, coach, and student information was built in Google Cloud using Google Cloud mySQL
Challenges I ran into
One of the major issues we ran into was the disconnect between the information that is currently available publicly and what we wanted to be available for team formation through stemLinked. For example, no information about team location beyond zip code is currently publicly available. Additional information about the number of team members, the age of team members, head coach contact, etc. is available. This lack of information required us to pad what was available with mock attributes like “accepting applications” or “looking for coaches” to meet some of the search parameters we wanted to filled. This problem also meant that we had to consider and compensate for a number of different scenarios, like a returning mentor claiming an existing team. On the development side of things, we ran into challenges in terms of configuring the front end so that it was usable and displayed information in a way that could be easily interpreted. For the backend, we ran into multiple issues setting up the database to store all the team, student, and coach data. First, we attempted to use MongoDB to set up our database but sustained connection issues that we didn’t have the time or mentor help to effectively troubleshoot. This led to us transitioning to using Google Cloud mySQL for the database setup, which presented its own connection issues between Google Could and mySQL but we were eventually able to work through them.
Accomplishments that I'm proud of
We were proud of the fact that we were able to integrate a number of skills that were completely new to us including, but not limited to, working with geodata, Google Cloud, and Twilio. Additionally, it was really cool to see the whole project come together, especially since we all feel that our concept is one that addresses the real need to get more STEM programs to underserved communities.
What I learned
We learned how to use Google Cloud mySQL and how to send SMS using Twilio and Python along with “reticulate” in R to run the Python script. We also learned how to work with geodata using a number of R shiny packages and features.
What's next for stemLinked
While stemLinked does currently collect information regarding students' regarding student age, preferred meeting time, and email contact, that information is not currently being used for anything due to time constraints. Moving forward, this data would be used for more precise and specific filtering for students to find the right teams for them or for coaches to find the right students. Additionally, to expand the capabilities of stemLinked for FLL, more support and features could be added to the coach side of things. Similar to the functionality stemLinked has for students to apply to teams and submit team formation requests, coaches would be able to see what other coaches are trying to form new teams or which existing teams are looking for more support. These features would make it easier for aspiring coaches to find at least one other person to coach alongside them in order to meet FLL’s “two coaches per team” requirement. Returning coaches would be able to login to claim and manage their team through stemLinked. Existing teams can recruit new coaches through stemLinked to help them better manage large teams or find coaches to replace those who are retiring. These improvements to stemLinked will help tackle issues of sustainability within FLL since loss of a coach is one of the biggest factors that contribute to team folding. All of these changes would require modifications to stemLinked’s database querying, data acquisition, and member login functions to improve the overall robustness of the application. stemLinked has the potential to be applied to any number of team-based STEM programs, not just FLL as we tested in this case study. Based on the framework set up for FLL, it would be relatively easy to create stemLinked databases and maps for other programs in the FIRST network, like FIRST LEGO League Jr. FIRST Tech Challenge, and FIRST Robotics Competition. With additional tweaking, support for VEX Robotics, Technology Student Association, Quiz Bowl, MathCounts, or any number of other STEM programs could come to stemLinked, allowing interest in these programs to be accurately tracked and allowing the community to better respond to the needs of their students.