From 643470cd617938efe33e6ee2093a32f035a59972 Mon Sep 17 00:00:00 2001 From: jbyrne Date: Thu, 3 Oct 2024 17:26:28 -0700 Subject: [PATCH] feature/hitide-profile-local-dev-readme: add instructions for local development --- README.md | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a841288..58e43c6 100644 --- a/README.md +++ b/README.md @@ -30,4 +30,116 @@ Subset-Job related endpoints: ## Connections to other systems * Earthdata Login system * MySQL/MariaDB database -* PODAAC L2SS services \ No newline at end of file +* PODAAC L2SS services + +## Local development + +### 1. Setting Up MySQL with Docker + +#### Step 1: Pull the MySQL Docker Image + +Make sure you have Docker installed on your system. Then, pull the MySQL version 5 Docker image: + +```bash +docker pull --platform linux/x86_64 mysql +docker pull mysql:5 +``` + +#### Step 2: Run the MySQL Docker Container + +Run a MySQL container with the desired configuration: + +```bash +docker run --name hitide-mysql --platform linux/amd64 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:5 +``` + +You can customize: + +- `--name hitide-mysql`: The name of the Docker container. +- `-e MYSQL_ROOT_PASSWORD=my-secret-pw`: The root password for MySQL. +- `-p 3306:3306`: The port mapping, which maps port 3306 on your host to port 3306 in the container. + +#### Step 3: Verify the MySQL Container is Running + +Check the status of the running container: + +```bash +docker ps +``` + +You should see your MySQL container listed. + +### 2. Creating the Database + +#### Step 1: Connect to the MySQL Instance + +Use your preferred MySQL client or the MySQL command-line tool to connect to the running MySQL instance: + +```bash +mysql -h 127.0.0.1 -P 3306 -u root -p +``` + +You'll be prompted for the root password (my-secret-pw in this case). + +#### Step 2: Create the Database + +Once connected, create the database: + +```sql +CREATE DATABASE hitide_profile; +``` + +### 3. Setting Up the Application + +#### Step 1: Configure Environment Variables + +Before running the setup script, configure the necessary environment variables. You can set these variables in your shell session or use a `.env` file. Here’s an example of how to set them: + +```bash +export DATABASE_HOST=127.0.0.1 +export DATABASE_PORT=3306 +export DATABASE_NAME=hitide_profile +export DATABASE_ADMIN=root +export DATABASE_ADMIN_PASSWORD=my-secret-pw +export DATABASE_USERNAME=hitide_user +export DATABASE_PASSWORD=hitide_password +``` + +#### Step 2: Run the Setup Script + +Navigate to the hitide-profile root directory and run the setup script: + +```bash +cd path/to/hitide-profile +node mysql/setup-db.js +``` + +This script will: +- Connect to the MySQL instance using the admin credentials. +- Create a new user (specified by `DATABASE_USERNAME` and `DATABASE_PASSWORD`). +- Set up the necessary tables in the `hitide_profile` database. + +### 4. Verifying the Setup + +#### Step 1: Check Database and Tables + +Reconnect to the MySQL instance and check the database and tables: + +```bash +mysql -h 127.0.0.1 -P 3306 -u root -p +``` + +Then run: + +```sql +USE hitide_profile; +SHOW TABLES; +``` + +You should see the tables created by the setup script. + +### Note: +In HiTIDE UI code in the **hitideConfig.js** file, make sure you set the **hitideProfileOrigin** variable to where your local hitide-profile instance is running so the frontend knows where to find hitide-profile. For example: +``` +var hitideProfileOrigin = "http://localhost:8080/hitide/api"; +``` \ No newline at end of file