Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iam-abbas/reddit-stock-trends
Fetch currently trending stocks on Reddit
https://github.com/iam-abbas/reddit-stock-trends
Last synced: 14 days ago
JSON representation
Fetch currently trending stocks on Reddit
- Host: GitHub
- URL: https://github.com/iam-abbas/reddit-stock-trends
- Owner: iam-abbas
- License: mit
- Created: 2021-02-06T12:22:38.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-23T22:57:15.000Z (over 2 years ago)
- Last Synced: 2024-10-21T11:15:55.747Z (23 days ago)
- Language: Python
- Size: 1.65 MB
- Stars: 1,528
- Watchers: 85
- Forks: 200
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
Reddit Stock Trends 📈
See trending stock tickers on Reddit and check Stock perfomance
## Backend
### Reddit API
- Get your reddit API credentials from [here](https://www.reddit.com/prefs/apps).
- Follow [this](https://towardsdatascience.com/scraping-reddit-with-praw-76efc1d1e1d9) article to get your credentials.
- Go to `back/` directory.
- Create a `praw.ini` file with the following```
[ClientSecrets]
client_id=
client_secret=
user_agent=
```Note that the title of this section, `ClientSecrets`, is important because `ticker_counts.py` will specifically look for that title in the `praw.ini` file.
### Local usage
- Install required modules using `pip install -r requirements.txt`.
- Run `ticker_counts.py` first.
- Now run `yfinance_analysis.py`.
- You will be able to find your results in `data/` directory.
- [Optional] Run `wsgi.py` to start a server that returns the data in JSON format. This step will generate the csv files if they don't already exist.## Frontend - Vue
There's also a JavaScript web app that shows some data visualizations.
### Local usage
Start the local server. This server will generate the csv files if they don't already exist.
```bash
cd back
python wsgi.py
```Then, launch the client
```bash
cd front
cp .env.example .env
npm install
npm run serve
```You can change the env variables if you need to
### Docker usage
- Requires Docker 17.09.0+ and docker-compose 1.17.0+
- make sure you have .env or a system wide export for the var VUE_APP_API_URL, see env.example
- `docker-compose up -d` to start all services in the background. (-d == detatched)
- `docker-compose up ` to bring up a specific service.
- `docker-compose rm` removes the image
- `docker-compose ps` to list running services
- `docker-compose up --build` if you made changes to the compose or dockerfiles and need it built into a new image.
- `docker-compose build --no-cache` if you made changes to specific files and docker does not recognize as new thereby reusing cached layers incorrectly. This takes about 3 minutes on a gaming pc with 0 docker tuning.
- `compose.yml` determines service names and which ports are bound to your host. By default front=8080 back=5006.
- Once `up` navigate to http://localhost:8080/.
- `docker-compose stop` stops all services---
## Frontend - React
There's also a React JavaScript web app that has +3 more features than the vue app.
- shows all available data on one site/table
- you can sort the data by clicking the header name, if you want see what ticker had the most 5d Change for example
- the tickername is a direct link to the tradeview overview site for the ticker if you find a ticker interesting and want to analyse it### Local usage
Start the local server. This server will generate the csv files if they don't already exist.
```bash
cd back
python wsgi.py
```Then, launch the client
```bash
cd react-front
cp .env.example .env
npm install
npm start
```You can change the env variables if you need to
**No Docker solution for the react app.**
---
#### Ticker Symbol API - EOD Historical Data
Included for potential future use is a csv file that contains all the listed ticker symbols for stocks, ETFs, and
mutual funds (~50,000 tickers). This was retrieved from https://eodhistoricaldata.com/. You can register for a free api key and get up to 20 api calls every 24 hours.To retrieve a csv of all USA ticker symbols, use the following:
https://eodhistoricaldata.com/api/exchange-symbol-list/US?api_token={YOUR_API_KEY}
## Contribution
I would love to see more work done on this, I think this could be something very useful at some point. All contributions are welcome. Go ahead and open a PR.
- Join the [Discord](https://discord.gg/USsBfc97RM) to discuss development and suggestions.
### To Do
See [this](https://github.com/iam-abbas/Reddit-Stock-Trends/labels/feature) page.
Suggestions are appreciated.
### Donation
If you like what I am doing, consider buying me a coffee this helps me give more time to this project and improve.
### Sponsors
TickerHype: https://tickerhype.com/
---
If you decide to use this anywhere please give a credit to [@abbasmdj](https://twitter.com/abbasmdj) on twitter, also If you like my work, check out other projects on my [Github](https://github.com/iam-abbas) and my [personal blog](https://abbasmj.com).