SportShare (Website/PWA) - Team RunTime Terror
We were mainly inspired by the lack of physical activity reported throughout the US during the pandemic. Secondly, this problem is exacerbated by the fact that Americans at a socio-economic disadvantage are at further risk of minimal exercise due to cost constraints. Finally, the pandemic has led to increased rates of isolation and depression as people continue to stay at home.
Sportshare was conceived as a solution to the effects of COVID-19 on in-person fitness activities. The international journal of exercise science reported that the increase in lockdowns and cancellations has resulted in a 22.4% reduction in total physical activity from pre- to post-cancellation in participants who were most physically active before the pandemic and this reduction was apparent for each exercise intensity (light, moderate, vigorous), an effect which still continues today. In addition, socioeconomic disadvantages prevent a large percentage of families in the US from allowing their children to participate in extracurricular activities due to cost constraints. Roughly 20% of Americans fall below or close to the poverty line and many of them can’t pay for equipment let alone fitness lessons. Finally, 36% Americans reported feeling lonely “frequently” or “almost all the time or all the time” over a 4 week period during the pandemic.
What it does
Sportshare solves these problems by creating a platform in which mentors and students can meet one on one or in small groups to practice sports in a socially distanced manner! All mentors go through a verification process in which a coach recommends and verifies mentors, and mentors can earn volunteer hours with sportshare and report to volunteer organizations. Our service allows mentors to list available times and locations, and individuals can sign up for these lessons. Different types of sports available are listed, and mentors can specify skill level and sports covered. The website also provides services including an easy way to locate available centers to practice, accessible information regarding commonly sports rules, tips, and practices, and more!
How we address the theme
Sportshare addresses the “Quality of Life” theme because our hack increases fitness and physical involvement, leading to greater physical and mental wellbeing. Connecting members in the community fosters collaboration and camaraderie, and students are provided leadership opportunities to serve as role models. Overall, due to increased community fitness, social connection, and self-growth provided, we believe that Sportshare provides a greater impact on the community than any other fitness program today.
How we built it
TomTom API was used to gelocate the user's location based on any robust location parameter. Then, the tomtom catefory api was used to use gelocated data to extract nearby facilities.
Cookie Parser was used to store user session/cookies which have a 1 hour expiration time.
Custom Search API was used as a web-scraping tool in order to find information about any sport from the web. This also provided us with a diverse variety of sources and ranking algorithm.
NodeMailer was used to send mail between the website and all users whenever an edit or delete was made to a shared session.
JSDOM was used to create a virtual DOM in the backend for server side rendering.
UUID was used to create custom identifiers for each session.
Firebase was used for authentication purposes in providing UIDs and authorization.
**Express.js **was a framework we used on top of Node.js as our backend/server.
Heroku is our hosting platform for the website, providing us access to logs and error reports.
HTML, CSS, and JS was used as the frontend tools for client side rendering.
Cloud Firestore was used to store information about users and sessions. We were able to create a CRUD application using this platform.
Challenges we ran into
One of the main challenges that we ran into was asynchronous callbacks in JS. There would be multiple occasions where asynchronous events would be executed after the server had already sent a response synchronously. This meant that although our resources were being loaded, they were not being sent to the frontend. In order to address this issue, we found async/await functions extremely useful in the backend because it helped to convert some of our asynchronous callbacks into synchronous statements.
Accomplishments that we're proud of
We are extremely proud of developing our first PWA. We had never had solid experience with developing a PWA before. However, we were eventually able to figure out and convert the website to a format that could be downloaded on all platforms.
Furthermore, we were extremely proud of connecting the website to email so that any updates being made to a session would lead to a notification able to be received by any device, through email. We once again did not initially know how to accomplish this. However, we were later able to use the node-mailer library to connect our backend to gmail.
What we learned
We learned a lot about rendering and authentication. Specifically, we learned the difference between server-side and client-side rendering. Throughout the application, we used one of the two based on which better suited the needs. For instance, we used client-side rendering during searches while server side rendering to load user resources.
Additionally, we also learned about PWAs (Progressive Web Apps), allowing us to convert our website into a downloadable app that can run on windows, IOS, and android devices. Specifically, we learned about service workers, registration of service workers, manifest files, and maskable icons. We also had to understand how caching works in order to convert to a PWA.
What's next for SportShare
Our next steps to success include creating chapter sports share organizations in local high schools, allowing schools to share the talent of their best student athletes with the community. We will reach out to coaches and sports We will reach out to coaches and sports honor societies nation wide to ensure everyone gets in on the action! If we all contribute, we can make a difference in creating a healthier, and more fit America.