From e82bf454b6239b118a22e0eaf6026b6e7d04d582 Mon Sep 17 00:00:00 2001 From: "J.P. Hutchins" Date: Sat, 1 Jan 2022 14:41:08 -0800 Subject: [PATCH 1/3] docs: add environment setup section #31 --- README.md | 108 +++++++++++++++++++++++++++++++++++++++ docs/browser-address.png | Bin 0 -> 4021 bytes docs/four-terminals.png | Bin 0 -> 17705 bytes docs/ip-a.png | Bin 0 -> 51782 bytes 4 files changed, 108 insertions(+) create mode 100644 docs/browser-address.png create mode 100644 docs/four-terminals.png create mode 100644 docs/ip-a.png diff --git a/README.md b/README.md index 9a45d08..61bb3e1 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,114 @@ If you are a PG&E customer you can link your account now! If you are not a PG&E ![Design](/docs/PGESMD_sketch_full.png) +# Development + +## Environment Setup (Ubuntu 20.04) + +Process notes here: https://github.com/JPHutchins/open-energy-view/issues/31 + +The following notes are for setting up the environment with a Windows 10 host and Ubuntu 20.04 on WSL2. Please submit a PR if you find necessary adaptations on your environment. + +Personally I use VSCode from the Windows host utilizing the "Remote - SSH" and "Remote - WSL" extensions. + +### Clone this repository +``` +git clone git@github.com:JPHutchins/open-energy-view.git +cd open-energy-view +git status +``` +### Install backend dependencies +* **Install python requirements** + + Note: check your python3 version + ``` + sudo apt install python3.8-venv build-essential python3-dev + ``` +* **Create the virtual environment and install packages** + ``` + python3 -m venv venv + source venv/bin/activate + pip3 install -r requirements.txt + ``` +* **Install and configure rabbitmq** + * Install erlang: + ``` + sudo apt update + sudo apt install software-properties-common apt-transport-https + wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add - + echo "deb https://packages.erlang-solutions.com/ubuntu focal contrib" | sudo tee /etc/apt/sources.list.d/rabbitmq.list + sudo apt update + sudo apt install erlang + ``` + * Install rabbitmq + ``` + curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash + sudo apt install rabbitmq-server + * Start rabbitmq-server + ``` + sudo service rabbitmq-server start + sudo service rabbitmq-server status # verify that it is running + ``` + * Configure rabbitmq + ``` + sudo rabbitmqctl add_user jp admin + sudo rabbitmqctl set_user_tags jp administrator + sudo rabbitmqctl add_vhost myvhost + sudo rabbitmqctl set_permissions -p myvhost jp ".*" ".*" ".*" + ``` + +### Install frontend dependencies and build +* **Install nvm** (if you don't have it) + + notes: https://github.com/nvm-sh/nvm + ``` + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash + ``` +* **Install npm** + ``` + nvm install 10.19.0 + ``` +* **Install frontend packages** + ``` + cd open_energy_view/frontend + nvm use 10 + npm install + ``` +* **Build frontend** + + Assumes you are at path: `*/open-energy-view/open_energy_view/frontend` + ``` + nvm use 10 + npm run build + ``` + +### Run the development server and workers +* **Start the server and workers** + * Open four terminals (example from VSCode) + + ![Four-Terminals](/docs/four-terminals.png) + * First terminal: `./run-wsgi-dev` + * Second terminal: `./run-io-worker` + * Third terminal: `./run-cpu-worker` +* **Open the development site in a browser** + * Fourth terminal: `ip a` + * Note the IP address of your WSL2 instance, in this case `172.31.30.203` + + ![ip-a](/docs/ip-a.png) + * On your host OS, open a Chrome or Firefox web browser and navigate to `http://:5000` + + ![browser-address](/docs/browser-address.png) + +### Example account setup +For first time setup you must register a user to your local database. Use something easily memorable and keep in mind that you can register as many users as you need while testing. +* Click "Register now!" + * For email use: `dev@dev.com` + * For password use: `admin` +* You are prompted to add energy sources. This is local development so there would be no way to add a real PGE account here. In the dropdown select "Fake Utility" and click "Authorize". +* You are prompted to name the fake energy source. Enter `dev`, for example, then click "Add Source". + +After simulating API calls and parsing the retrieved ESPI data (J.P.'s old data) you will be greeted with an OEV instance that will respond to changes in your local Python/Flask/Celery backend and React frontend. + ## Data Analysis ### Averages diff --git a/docs/browser-address.png b/docs/browser-address.png new file mode 100644 index 0000000000000000000000000000000000000000..ea0f8b76203d220c55ad70e6ea845e621b05fe51 GIT binary patch literal 4021 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 b&Sc_byBf5;Q*p%297#MgmuOwA4 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 A_y7O^ literal 0 HcmV?d00001 diff --git a/docs/ip-a.png b/docs/ip-a.png new file mode 100644 index 0000000000000000000000000000000000000000..8203612f2b9bd5ed07625d76ac9d2cd826da0f76 GIT binary patch literal 51782 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�L?m_x$iyV`|hDl&p@_BjOT)B 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 LxEfmJY1sb&Nq Date: Sat, 1 Jan 2022 14:55:58 -0800 Subject: [PATCH 2/3] docs: remove git status #31 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 61bb3e1..7b644a6 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,6 @@ Personally I use VSCode from the Windows host utilizing the "Remote - SSH" and " ``` git clone git@github.com:JPHutchins/open-energy-view.git cd open-energy-view -git status ``` ### Install backend dependencies * **Install python requirements** From aee6c2939ae656ce31f04edd52fb69bc75035cf1 Mon Sep 17 00:00:00 2001 From: "J.P. Hutchins" Date: Sat, 1 Jan 2022 14:58:02 -0800 Subject: [PATCH 3/3] docs: clarify rabbitmq status #31 --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b644a6..c0781ea 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,10 @@ cd open-energy-view * Start rabbitmq-server ``` sudo service rabbitmq-server start - sudo service rabbitmq-server status # verify that it is running + ``` + * Verify that rabbitmq-server is running + ``` + sudo service rabbitmq-server status ``` * Configure rabbitmq ```