The inspiration for this project is two-fold. First, California passed a law at the beginning of 2019 requiring all schools to develop curriculum to teach media literacy. Second, I often return to my high school and occasionally, my middle and elementary schools, to speak with my former educators. From these visits, I have had the opportunity to watch as technology has gradually become integrated in classrooms. While some technological integrations make me wish I were back in the K-12 school system, it has also brought several important considerations to be cautious towards. Recently, I have been involved in various discussions regarding how to educate students on fake news and how to navigate the internet, how social media can play a detrimental role to mental health, and how algorithms are increasingly impacting our lives. I believe that there is a lack of baseline knowledge on these rapidly emerging and growing issues (as can be seen in previous Congress hearings), which inhibits us from having deep and thoughtful discussions that we need to collectively be having. (Shoutout to CS181W for supplying me with many of the readings and thought provoking questions for the privacy and algorithm sections of this application.)
What it does
This application contains multiple modules that are meant to educate the user on some of the most pressing technological issues of the 21st century. These modules as divided into three main subsections: media literacy, data privacy, and algorithms. Each section is further subdivided into subsections. The most technologically challenging part of this application is within the media literacy news scoping subsection. This part of the application uses your phone's location to scrape news relevant to your city, state, and country, respectively. This section is meant to encourage the user to consider the implications of news at various levels, from local to national.
How I built it
I used News API to scrap news articles and metadata from various news sources. The mobile application was programmed in React Native with use of Expo's API. The primary functions of Expo used were geolocation and mobile navigation. All icons are from Flaticon.
Challenges I ran into
Since I have never programmed with React Native and have limited mobile development experience, I spent much of my time debugging my application (I had a record number of tabs open), particularly with screen navigation and the obtaining the geo-location. I also found that it would have been easier if I were working in a team so I could focus on specific part of the application as opposed to balancing creating and designing the UI, generating the informational content, and working on the desired functionality of the application.
Accomplishments that I'm proud of
This was my first time programming in React Native and using Expo, and coming in with very little mobile development experience, I am proud I was able to put this together within the time frame allotted.
What I learned
I obtained a better understanding of states and props in React, and I learned about many of the design considerations that differ between mobile and web development. For example, there screen orientation, scrolling, and space real estate are all different. I also learned about various API integrations and geo-location as I experimented to find what worked best within React Native's environment.
What's next for Navigating the 21st Century
Though I made this a mobile application, it might actually be in my best interest to covert it into a web application at some point so I can further build out some of the other modules that are less mobile friendly, but I suppose we can cross that road when we get there. Other features I wanted to added were (moderated) comment sections at the end of each module so users can discuss content, interactive data visualizations to allow users to see the facts (I found some interesting datasets as I was brainstorming this project!), and either mini "games" or Codepen integrations in the algorithms section to elucidate what goes on in them. I draw some of my inspiration from Explorable Explanations. I also wanted to expand my news scoping feature to include an international scope, and I want to try using a different API to scrape news data since the API I used is insufficient for local news. (I was surprised that there is no list or database out there that catalogs local news publications by region unless they already collaborate like the Los Angeles Newspaper Group.) Another aggregation I wanted to do, but is more suited for a research topic, is summarizing the facts from various news sources on the same story but with the added feature that for the parts that vary or contrast, the summary would quote those specific sources in the summary so the reader could see the contrasting views.