** Create Screener Backend (there is a bug in this, it's pointing the the wrong Tiingo API endpoint) Let’s create a stock screener. It will store symbol, stock price data, and computed screener filtering data. For simplicity, let's skip intraday for now. Let’s use a sqlite3 database (screener_data.db) with tables (and indexes) for symbols, price data , and computed screener filtering data (supporting the possible feature set). Before we get started, please select 15 common stock screener technical features including price and volume. Before generating code, please list the screener features as well as the database structure. The source symbol list is in supported_tickers.csv, here’s the first three rows: ticker,exchange,assetType,priceCurrency,startDate,endDate A,NYSE,Stock,USD,11/18/1999,9/29/2025 AA,NYSE,Stock,USD,10/18/2016,9/29/2025 ** Stock Price API For price data, we are using Tiingo’s REST API. The token value is TIINGO_API_TOKEN in constants.py. The target URL is: https://api.tiingo.com/iex/?token=XXX Documentation on the call is available here: https://www.tiingo.com/documentation/iex Shape the symbol table to accommodate the API response. We are going to address data processing first, then we will work on a user interface. Please access the existing files as needed, do not change constants.py. Let’s generate four programs to prepare the data: ** create_database.py – This simply creates the database, tables, and indexes. - Explain the database in the conversation before creating the program. ** load_symbols.py – Appends unique symbols to the symbol table from the source symbol list. ** load_tiingo_daily.py – Upsert daily price data. Default to select 300 days of data per symbol. Input Parameters - lookback_days - 300 - max-symbols – 10000 ** precompute_stats.py – Code the feature calculations against the daily price data to support effective, efficient querying. Note: Include lots of print statements to note status and also certain diagnostic information for process clarity. ** Create Screener UI Now let’s generate the stock screener user interface. Let’s use Flask with Bootstrap. Add a dark mode toggle, default to dark mode. Organize the available features in the screener_stats table by category (use create_database.py for database structure references). Setup a card area for each feature category (stack cards vertically), allowing each to accordion open/closed independently. For range-based features such as price setup a min/max bounds. Add a button to copy the result set to the clipboard.