Giter Site home page Giter Site logo

fatcat's Introduction

Fatcat

Stock screener tool to turn me into a fatcat.

Setup

Install dependencies

This app uses poetry for Python dependency version management.

# Install poetry globally
pip install poetry

# Within a virtualenv
cd fatcat
poetry install

The app includes a command-line tool to do setup and basic tasks.

Create database

To create the sqlite3 database and populate initial tables.

cd fatcat
python manage.py migrate

Populate database

This requires an API key for Financial Modeling Prep. To obtain one visit fmpcloud.io. Save that key to a text file called fmp_api_key.txt within the fatcat directory (same dir as manage.py).

The following call will use that key.

Note, be careful if you only signed up for the trial as this will burn through your limit pretty quick.

cd fatcat
python manage.py populate-companies

Local serving

# Backend
cd fatcat
uvicorn app:app

# Frontend
cd app
npm start

Todo

There is still a lot to do. Note that right now the API is not wired up to the database and instead returns one static object thousands of times.

The frontend is also not completely ready to hook up to the API anyway.

I don't think I want to start with a page listing all companies. I think the next step is to build a page that will show any one company. When you visit localhost:3000/DAL, for instance, it will show the page for DAL. The API call will go and get the data it needs from FMP if it does not already have it in the sqlite database.

This will progressively fill up the database with companies as I request them, rather than all at once. But if I change my mind and want to implement a batch job, I can.

Data for this page should include:

  • Company profile information (name, description, exchange, etc.)
  • Key metrics (BVPS, ROIC, etc)
  • "The Big Five" calculated for 10, 5, and 1-year periods
  • Sticker price
  • Current price

Hypothetically, if I can generate and display this for one company, I can do it for any of them. Although, I'm sure I'll spend quite a bit of time working around corner-cases and missing data and the like.

fatcat's People

Contributors

ljhenne avatar

Watchers

James Cloos avatar Logan Hennessy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.