├── Procfile ├── requirements.txt ├── media ├── banner.jpg ├── notebook-to-pdf.gif └── jupyter-dashboard-finance.gif ├── welcome.md ├── README.md ├── LICENSE ├── .gitignore └── dashboard.ipynb /Procfile: -------------------------------------------------------------------------------- 1 | web: mercury run 0.0.0.0:$PORT 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | mljar-mercury 2 | mplfinance 3 | yfinance 4 | -------------------------------------------------------------------------------- /media/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pplonski/dashboard-python-jupyter-notebook/HEAD/media/banner.jpg -------------------------------------------------------------------------------- /media/notebook-to-pdf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pplonski/dashboard-python-jupyter-notebook/HEAD/media/notebook-to-pdf.gif -------------------------------------------------------------------------------- /media/jupyter-dashboard-finance.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pplonski/dashboard-python-jupyter-notebook/HEAD/media/jupyter-dashboard-finance.gif -------------------------------------------------------------------------------- /welcome.md: -------------------------------------------------------------------------------- 1 | # Dashboard in Python with Jupyter Notebook 2 | 3 | The finance dashboard was created in Python. The development was done with Jupyter Notebook. This website is serving notebook as web app. It is using MLJAR Mercury framework. 4 | 5 | The link to the code repository. 6 | 7 | The article on how to build a dashboard in Python with Jupyter Notebook. 8 | 9 | ## Dashboard 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](https://raw.githubusercontent.com/pplonski/dashboard-python-jupyter-notebook/main/media/banner.jpg) 2 | 3 | # Dashboard in Python with Jupyter Notebook 4 | 5 | The finance dashboard was created in Python. The development was done with Jupyter Notebook. This website is serving notebook as web app. It is using MLJAR Mercury framework. 6 | 7 | ## Links 8 | 9 | Th web app is running at https://dashboard-jupyter-notebook.herokuapp.com/. 10 | 11 | The article on how to build a dashboard in Python with Jupyter Notebook. 12 | 13 | ## Dahsboard web app 14 | ![](https://raw.githubusercontent.com/pplonski/dashboard-python-jupyter-notebook/main/media/jupyter-dashboard-finance.gif) 15 | 16 | 17 | ## Export notebook to PDF 18 | ![](https://raw.githubusercontent.com/pplonski/dashboard-python-jupyter-notebook/main/media/notebook-to-pdf.gif) 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Piotr 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /dashboard.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "raw", 5 | "metadata": {}, 6 | "source": [ 7 | "---\n", 8 | "title: Finance dashboard\n", 9 | "description: Dashboard with financial data\n", 10 | "show-code: False\n", 11 | "params:\n", 12 | " ticker: \n", 13 | " input: select\n", 14 | " value: TSLA\n", 15 | " label: Select ticker\n", 16 | " choices: [TSLA, COIN, MSFT, PLTR, SNOW, NFLX]\n", 17 | "---" 18 | ] 19 | }, 20 | { 21 | "cell_type": "code", 22 | "execution_count": 1, 23 | "metadata": {}, 24 | "outputs": [], 25 | "source": [ 26 | "import yfinance as yf\n", 27 | "import mplfinance as mpf" 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": {}, 33 | "source": [ 34 | "# Historic stock price 📈" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 2, 40 | "metadata": {}, 41 | "outputs": [], 42 | "source": [ 43 | "ticker = \"TSLA\"" 44 | ] 45 | }, 46 | { 47 | "cell_type": "code", 48 | "execution_count": 3, 49 | "metadata": {}, 50 | "outputs": [ 51 | { 52 | "name": "stdout", 53 | "output_type": "stream", 54 | "text": [ 55 | "Selected ticker: TSLA\n" 56 | ] 57 | } 58 | ], 59 | "source": [ 60 | "print(f\"Selected ticker: {ticker}\")" 61 | ] 62 | }, 63 | { 64 | "cell_type": "code", 65 | "execution_count": 4, 66 | "metadata": {}, 67 | "outputs": [], 68 | "source": [ 69 | "history = yf.Ticker(ticker).history(period=\"3mo\")" 70 | ] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": 5, 75 | "metadata": {}, 76 | "outputs": [ 77 | { 78 | "name": "stdout", 79 | "output_type": "stream", 80 | "text": [ 81 | "3 months low: 620\n", 82 | "3 months high: 1152\n" 83 | ] 84 | } 85 | ], 86 | "source": [ 87 | "print(f\"3 months low: {history.Low.min().astype(int)}\")\n", 88 | "print(f\"3 months high: {history.High.max().astype(int)}\")" 89 | ] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": 6, 94 | "metadata": {}, 95 | "outputs": [ 96 | { 97 | "data": { 98 | "text/html": [ 99 | "
\n", 100 | "\n", 113 | "\n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | "
OpenHighLowCloseVolumeDividendsStock Splits
Date
2022-06-06733.059998734.599976703.049988714.8400272806820000
2022-06-07702.000000719.989990690.280029716.6599732426950000
2022-06-08720.260010749.890015717.530029725.5999762540350000
2022-06-09748.020020766.640015717.979980719.1199953216380000
2022-06-10705.469971718.500000683.739990696.6900023251220000
\n", 189 | "
" 190 | ], 191 | "text/plain": [ 192 | " Open High Low Close Volume \\\n", 193 | "Date \n", 194 | "2022-06-06 733.059998 734.599976 703.049988 714.840027 28068200 \n", 195 | "2022-06-07 702.000000 719.989990 690.280029 716.659973 24269500 \n", 196 | "2022-06-08 720.260010 749.890015 717.530029 725.599976 25403500 \n", 197 | "2022-06-09 748.020020 766.640015 717.979980 719.119995 32163800 \n", 198 | "2022-06-10 705.469971 718.500000 683.739990 696.690002 32512200 \n", 199 | "\n", 200 | " Dividends Stock Splits \n", 201 | "Date \n", 202 | "2022-06-06 0 0 \n", 203 | "2022-06-07 0 0 \n", 204 | "2022-06-08 0 0 \n", 205 | "2022-06-09 0 0 \n", 206 | "2022-06-10 0 0 " 207 | ] 208 | }, 209 | "execution_count": 6, 210 | "metadata": {}, 211 | "output_type": "execute_result" 212 | } 213 | ], 214 | "source": [ 215 | "history.tail()" 216 | ] 217 | }, 218 | { 219 | "cell_type": "code", 220 | "execution_count": 7, 221 | "metadata": {}, 222 | "outputs": [ 223 | { 224 | "data": { 225 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAFSCAYAAAA9wuHTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABP2klEQVR4nO3deXxcVd3H8c+5WdvsaZsWKohiOChQFcpqaREqUAQKqLggKogbi7uIPj76gLjigmxS0bKJKChaBQpa0BYQkAKycwggikD3rNPs9zx/3ElI26SZSWZyJzPf9+vVVzN3lvvLyWTyu2f5HeO9R0RERERSF8QdgIiIiMhkowRKREREJE1KoERERETSpARKREREJE1KoERERETSVBx3AONljHkYmAE8G3csIiIiklfeAKz33r916zsmfQIFzKiqqp79xj32mh1XAKXFAT19YVynn1TUVqlTW6VObZU6tVXq1Fapy9e2euqJx2hvbxv2vnxIoJ594x57zf7VjTfHFsDshkpeWtcR2/knE7VV6tRWqVNbpU5tlTq1Veryta0+8J6j+cd99ww7wqU5UCIiIiJpUgIlIiIikiYlUCIiIiJpUgIlIiIikiYlUCIiIiJpUgIlIiIikiYlUCIiIiJpUgIlIiIikiYlUCIiIiJpUgIlIiIikiYlUCIiIiJpUgIlMk5XL10SdwgiIjLBlECJjJMSKBGRwqMESmQUSpBERGRrSqBERqEESkREtlYcdwAiuWrxogUkEh10tLexcP4+VFRUsmz5yrjDEhGRHKAESmQEiUQHTU1Ng7cbGxtjjEZERHKJhvBERERE0qQESkRERCRNGsITGYOF8+fS0tIMQHdXF3Pn7EptbR0rVq2OOTIREZkISqBExqClpZnSklKAwf8HEioREcl/GsITERERSZMSKBEREZE0KYESERERSZMSKBEREZE0KYESERERSZMSKBEREZE0KYESERERSZMSKBEREZE0KYESERERSZMSKJk0rl66JO4QREREACVQMomMlkApwRIRkYmiBEryhhIoERGZKNpMWHLewvlzaWlppruri7lzdqW2to4Vq1bHHZaIiBSwCUugrLV7AsuAHzvnLrHWLgBuBE51zt2cfMxuwBXAVOAB4AznnLfWfgo4OXn8q865WycqbolfS0szpSWllJaUDt4WERGJ04QM4VlrK4CLgTuS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\n", 226 | "text/plain": [ 227 | "
" 228 | ] 229 | }, 230 | "metadata": { 231 | "needs_background": "light" 232 | }, 233 | "output_type": "display_data" 234 | } 235 | ], 236 | "source": [ 237 | "mpf.plot(history, type='candle', mav=(7),figratio=(18,10))" 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "execution_count": null, 243 | "metadata": {}, 244 | "outputs": [], 245 | "source": [] 246 | }, 247 | { 248 | "cell_type": "code", 249 | "execution_count": null, 250 | "metadata": {}, 251 | "outputs": [], 252 | "source": [] 253 | } 254 | ], 255 | "metadata": { 256 | "kernelspec": { 257 | "display_name": "djenv", 258 | "language": "python", 259 | "name": "djenv" 260 | }, 261 | "language_info": { 262 | "codemirror_mode": { 263 | "name": "ipython", 264 | "version": 3 265 | }, 266 | "file_extension": ".py", 267 | "mimetype": "text/x-python", 268 | "name": "python", 269 | "nbconvert_exporter": "python", 270 | "pygments_lexer": "ipython3", 271 | "version": "3.8.10" 272 | } 273 | }, 274 | "nbformat": 4, 275 | "nbformat_minor": 4 276 | } 277 | --------------------------------------------------------------------------------