We were inspired by the issue of period poverty in the United States. Feminine hygiene products are a necessity. Using substitutes such as toilet paper or cloth can be dangerous. Despite the importance of feminine hygiene products, many women cannot afford them. In a 2019 survey of low-income women, two-thirds of women said they were unable to buy hygiene products at some point in the past year. For many, it is a choice between tampons and food. Another study showed that nearly 1 in 5 American girls have been forced to miss school or leave school early because they have not had access to hygiene products. This should not be the case. Although we are unable to solve this issue entirely, the goal of Era is to help women find the cheapest period products nearest to them, in order to ease the effects of period poverty.
What it does
Era is a website that generates a list of the cheapest period products in the user’s area. The user inputs their zip code and can specify the type of feminine hygiene product they are looking for and the store(s) for which they would like to view the products. Then, Era uses web scraping to retrieve product information from various sites across the internet. Era sorts and filters this information to display the cheapest products the user can buy at a store near them. The user can scroll through this information and hopefully find products that can meet their budgeting requirements within a walking distance.
How we built it
We divided our focus into the two main aspects of the program: web scraping and the user interface. For the web scraping, we used Python and Selenium. We wrote scripts to retrieve prices from various stores within the user’s area and store that data. For the user interface, we used Python, HTML, CSS, and Django to create two pages: a user input screen and an output screen. The output screen is a template that displays all the data collected from the web scraping scripts. We sorted the data by price to make it easier for users to find the cheapest product. We used Google SDK to locally host the website.
Challenges we ran into
Web scraping requires code that is very specific to the website which meant we had to write separate code for each website we wanted to scrape. While some websites were relatively easy to navigate using the Selenium library for Python, others were much more difficult. This task was especially difficult because rather than scraping a very specific website, the program needed to be more general and able to work for any store location. Another challenge that arose was with collaborating on programs. Since we were a team of four we had to determine the best way to share code and a system standardization so that the code could work together.
Accomplishments that we’re proud of
Some accomplishments that we are proud of are creating the user interfaces and formatting them in such a way that they are easy to navigate and read. We are also proud of the complicated web scraping scripts that we wrote to find and store data.
What we learned
We learned how to web scrape using the Selenium library along with Python. Although web scraping proved challenging, it was an invaluable learning experience and web scraping is an important skill, so we are glad we took the time to learn it. We also improved our skills at building Python web apps and deploying them locally.
What's next for Era
Moving forward, we would like to improve Era by making the web scraping more efficient. Currently, it is pretty slow with four stores so as we add more stores, we will need to optimize the script.To accomplish this, we would like to analyze the program to find processes that may be slowing it down and adjust these processes to decrease the load time. Additionally, we would like Era to be able to manage more variables, such as flow, brand, and unit cost, to give women a more personalized search tool.