Skip to content
Update Tools authored by Ryan M's avatar Ryan M
Classless Action is an open-source project that is contained in [GitLab](https://gitlab.com/alexgobear/cs331e-idb).
## **Table of Contents**
[TOC]
## **Front-End**
### **Tools Used**
- [Bootstrap v5.3](https://getbootstrap.com)
- UI implementation
- [Figma](https://www.figma.com)
- UI design
<!--
### **Splash Page Example**
There are several ways a user can interact with the website. The user will first be greeted with a splash page. Using the navigation bar the user will be able to choose their destination page since links to the about, company, class action, and stock pages will be provided. Additionally, a carousel will be present in the splash page. Here, the three most recent class action lawsuits will be displayed. Each carousel slide will contain three pieces of information: the class action name, company name/logo, and a description of the lawsuit. The picture below shows a potential design:
![Example Splash Page with Tesla Information](media/splash-example-tesla.png)
The last section of the splash page will be a body, which will contain a description of a website and cards associated with each pillar.
-->
## **Back-End**
### **Tools Used**
- [Flask v2.2.2](https://flask.palletsprojects.com/en/2.2.x/)
- App Structure and Data
### **Data Sources**
- [Wikipedia](https://en.wikipedia.org/wiki/List_of_S%26P_500_companies) & [Wikipedia API](https://en.wikipedia.org/w/api.php)
- SPX 500 companies and their descriptions
- [Caselaw Access Project](https://api.case.law/v1/)
- Gather class action lawsuit information for each SPX 500 company
- [Yahoo! Finance scraped using yfinance](https://pypi.org/project/yfinance/)
- Gather stock data about each SPX 500 company
## **Data Collection**
This phase required a small amount of data collection. More specifically, the aim was to provide at least three rows and five columns worth of data for each pillar. This website consists of three pillars: companies, class action lawsuits, and stock information. Sample data was collected for Amazon, Tesla, and Netflix using a combination of APIs and web scraping.
<br>
The five features used for the company pillar are the company’s stock symbol, sector, location, founding year, and short description. The first four features were obtained through web scraping this Wikipedia link. The last feature was obtained by accessing the Wikipedia API through the requests module in Python.
<br>
The five features used for the class action pillar are the case name, the case’s decision date, the court name, the jurisdiction name, and a copy of the class action lawsuit in a pdf format. All five features were obtained using a search endpoint from the Case Law API. In this phase, the sample data contained three class action lawsuits for each company.
<br>
The five features used for the stock pillar are date, closing price, the market cap of the company, the institutional holders, and the total number of shares. All five features were obtained using the yFinance library. There seems to be an issue with accessing certain information from yFinance. For example, attempting to access the info attribute from a ticker object will lead to a decryption error: “Exception: yfinance failed to decrypt Yahoo data response.” In other words, it seems that the yFinance library is having problems, outlined in this [GitHub issue thread](https://github.com/ranaroussi/yfinance/issues/1407). It would be wise to use a different source to retrieve stock information such as the TradingView API.
<!-- TODO: what is this -->
## **Embedding-Media Services**
Images of team members were given by each team member, Company logos were obtained using [Google Images](https://images.google.com/), and various stock images were obtained from [Unsplash](https://unsplash.com/).