From b5cf9b3f8d42d4f6e4f46e99da686da175b0ead3 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 8 Aug 2025 12:58:01 -0600 Subject: [PATCH] Some data work and also adding in some new config --- config.sh | 89 +- map/Instuctions.md | 2 + map/app/package-lock.json | 6 + map/app/package.json | 1 + map/app/public/index.html | 10 +- ...ourhoods (Centroid Point)_20250807.geojson | 4 + ...Edmonton - Neighbourhoods_20250807.geojson | 5 + ...uncil Composition_Current_20250807.geojson | 5 + ..._of_Edmonton_-_Neighbourhoods_20250807.csv | 689 ++++++++ ...ighbourhoods__Centroid_Point__20250807.csv | 407 +++++ ...d_Council_Composition_Current_20250807.csv | 13 + map/data/convert_edmonton_optimized.js | 248 +++ map/data/convert_ward_boundaries_optimized.js | 241 +++ ...dmonton_neighborhoods_nocodb_optimized.csv | 689 ++++++++ map/data/edmonton_nocodb_optimized.csv | 1501 +++++++++++++++++ .../edmonton_ward_boundaries_optimized.csv | 13 + map/data/exampledata.csv | 7 + map/debug-mobile-overlay.html | 0 map/debug-mobile-overlay.js | 0 map/files-explainer.md | 92 +- map/{ => instruct}/ADMIN_IMPLEMENTATION.md | 0 .../CUT_IMPLEMENTATION_SUMMARY.md | 0 .../CUT_PUBLIC_IMPLEMENTATION.md | 0 .../CUT_SIMPLIFICATION_SUMMARY.md | 0 .../TEMP_USER_IMPLEMENTATION.md | 0 map/{ => instruct}/TEMP_USER_TEST.md | 0 map/{ => instruct}/build-nocodb.md | 0 map/package-lock.json | 17 + map/package.json | 5 + map/test-addresses.csv | 4 - map/test-mobile-overlay.js | 0 31 files changed, 4027 insertions(+), 21 deletions(-) create mode 100644 map/data/City of Edmonton - Neighbourhoods (Centroid Point)_20250807.geojson create mode 100644 map/data/City of Edmonton - Neighbourhoods_20250807.geojson create mode 100644 map/data/City of Edmonton Ward Boundary and Council Composition_Current_20250807.geojson create mode 100644 map/data/City_of_Edmonton_-_Neighbourhoods_20250807.csv create mode 100644 map/data/City_of_Edmonton_-_Neighbourhoods__Centroid_Point__20250807.csv create mode 100644 map/data/City_of_Edmonton_Ward_Boundary_and_Council_Composition_Current_20250807.csv create mode 100644 map/data/convert_edmonton_optimized.js create mode 100755 map/data/convert_ward_boundaries_optimized.js create mode 100644 map/data/edmonton_neighborhoods_nocodb_optimized.csv create mode 100644 map/data/edmonton_nocodb_optimized.csv create mode 100644 map/data/edmonton_ward_boundaries_optimized.csv create mode 100644 map/data/exampledata.csv delete mode 100644 map/debug-mobile-overlay.html delete mode 100644 map/debug-mobile-overlay.js rename map/{ => instruct}/ADMIN_IMPLEMENTATION.md (100%) rename map/{ => instruct}/CUT_IMPLEMENTATION_SUMMARY.md (100%) rename map/{ => instruct}/CUT_PUBLIC_IMPLEMENTATION.md (100%) rename map/{ => instruct}/CUT_SIMPLIFICATION_SUMMARY.md (100%) rename map/{ => instruct}/TEMP_USER_IMPLEMENTATION.md (100%) rename map/{ => instruct}/TEMP_USER_TEST.md (100%) rename map/{ => instruct}/build-nocodb.md (100%) create mode 100644 map/package-lock.json create mode 100644 map/package.json delete mode 100644 map/test-addresses.csv delete mode 100644 map/test-mobile-overlay.js diff --git a/config.sh b/config.sh index f74d35f..93cc3df 100755 --- a/config.sh +++ b/config.sh @@ -581,7 +581,12 @@ NOCODB_SHIFTS_SHEET= # NOCODB_SHIFT_SIGNUPS_SHEET is the URL to your NocoDB shift signups sheet where users can add their own shifts. NOCODB_SHIFT_SIGNUPS_SHEET= -# MkDocs Integration (using main domain, not subdomain) +# NOCODB_CUTS_SHEET is the URL to your Nocodb Cuts sheet. +NOCODB_CUTS_SHEET= + +DOMAIN=$new_domain + +# MkDocs Integration MKDOCS_URL=https://$new_domain MKDOCS_SEARCH_URL=https://$new_domain MKDOCS_SITE_SERVER_PORT=4002 @@ -614,6 +619,18 @@ NODE_ENV=production # Add allowed origin ALLOWED_ORIGINS=https://map.$new_domain,http://localhost:3000 + +# SMTP Configuration +SMTP_HOST=smtp.protonmail.ch +SMTP_PORT=587 +SMTP_SECURE=false +SMTP_USER=changeme@$new_domain +SMTP_PASS=changeme +EMAIL_FROM_NAME="$new_domain Map" +EMAIL_FROM_ADDRESS=changeme@$new_domain + +# App Configuration +APP_NAME="$new_domain Map" EOL echo "Map .env file updated with domain: $new_domain" @@ -730,13 +747,13 @@ ALLOWED_ORIGINS=https://map.cmlite.org,http://localhost:3000 SMTP_HOST=smtp.insert.here SMTP_PORT=insert_port SMTP_SECURE=false -SMTP_USER=cmlite@bnkops.ca -SMTP_PASS=insert_pass_here -EMAIL_FROM_NAME=CMlite Map -EMAIL_FROM_ADDRESS=insert_from_address +SMTP_USER=changeme@$new_domain +SMTP_PASS=changeme +EMAIL_FROM_NAME="$new_domain Map" +EMAIL_FROM_ADDRESS=changeme@$new_domain # App Configuration -APP_NAME=CMlite Map +APP_NAME="$new_domain Map" EOL echo "✅ Created new map .env file at $MAP_ENV_FILE" @@ -751,6 +768,13 @@ EOL cp "$MAP_ENV_FILE" "$backup_file" echo "Created backup of map .env at $backup_file" + # Update DOMAIN + if grep -q "^DOMAIN=" "$MAP_ENV_FILE"; then + sed -i "s|^DOMAIN=.*|DOMAIN=$new_domain|" "$MAP_ENV_FILE" + else + echo "DOMAIN=$new_domain" >> "$MAP_ENV_FILE" + fi + # Update NOCODB_API_URL to use new domain if grep -q "^NOCODB_API_URL=" "$MAP_ENV_FILE"; then sed -i "s|^NOCODB_API_URL=.*|NOCODB_API_URL=https://db.$new_domain/api/v1|" "$MAP_ENV_FILE" @@ -758,6 +782,25 @@ EOL echo "NOCODB_API_URL=https://db.$new_domain/api/v1" >> "$MAP_ENV_FILE" fi + # Add NOCODB_CUTS_SHEET if missing + if ! grep -q "^NOCODB_CUTS_SHEET=" "$MAP_ENV_FILE"; then + echo "NOCODB_CUTS_SHEET=" >> "$MAP_ENV_FILE" + fi + + # Update MKDOCS_URL to use new domain + if grep -q "^MKDOCS_URL=" "$MAP_ENV_FILE"; then + sed -i "s|^MKDOCS_URL=.*|MKDOCS_URL=https://$new_domain|" "$MAP_ENV_FILE" + else + echo "MKDOCS_URL=https://$new_domain" >> "$MAP_ENV_FILE" + fi + + # Update MKDOCS_SEARCH_URL to use new domain + if grep -q "^MKDOCS_SEARCH_URL=" "$MAP_ENV_FILE"; then + sed -i "s|^MKDOCS_SEARCH_URL=.*|MKDOCS_SEARCH_URL=https://$new_domain|" "$MAP_ENV_FILE" + else + echo "MKDOCS_SEARCH_URL=https://$new_domain" >> "$MAP_ENV_FILE" + fi + # Update COOKIE_DOMAIN if grep -q "^COOKIE_DOMAIN=" "$MAP_ENV_FILE"; then sed -i "s|^COOKIE_DOMAIN=.*|COOKIE_DOMAIN=.$new_domain|" "$MAP_ENV_FILE" @@ -773,6 +816,40 @@ EOL echo "ALLOWED_ORIGINS=$allowed_origins" >> "$MAP_ENV_FILE" fi + # Update EMAIL_FROM_NAME + if grep -q "^EMAIL_FROM_NAME=" "$MAP_ENV_FILE"; then + sed -i "s|^EMAIL_FROM_NAME=.*|EMAIL_FROM_NAME=\"$new_domain Map\"|" "$MAP_ENV_FILE" + else + echo "EMAIL_FROM_NAME=\"$new_domain Map\"" >> "$MAP_ENV_FILE" + fi + + # Update EMAIL_FROM_ADDRESS if it contains a domain reference + if grep -q "^EMAIL_FROM_ADDRESS=" "$MAP_ENV_FILE"; then + # Only update if it looks like it contains a domain placeholder + if grep -q "changeme@\|insert_from_address" "$MAP_ENV_FILE"; then + sed -i "s|^EMAIL_FROM_ADDRESS=.*|EMAIL_FROM_ADDRESS=changeme@$new_domain|" "$MAP_ENV_FILE" + fi + else + echo "EMAIL_FROM_ADDRESS=changeme@$new_domain" >> "$MAP_ENV_FILE" + fi + + # Update SMTP_USER if it contains a domain reference + if grep -q "^SMTP_USER=" "$MAP_ENV_FILE"; then + # Only update if it looks like it contains a domain placeholder + if grep -q "changeme@\|@bnkops.ca" "$MAP_ENV_FILE"; then + sed -i "s|^SMTP_USER=.*|SMTP_USER=changeme@$new_domain|" "$MAP_ENV_FILE" + fi + else + echo "SMTP_USER=changeme@$new_domain" >> "$MAP_ENV_FILE" + fi + + # Update APP_NAME + if grep -q "^APP_NAME=" "$MAP_ENV_FILE"; then + sed -i "s|^APP_NAME=.*|APP_NAME=\"$new_domain Map\"|" "$MAP_ENV_FILE" + else + echo "APP_NAME=\"$new_domain Map\"" >> "$MAP_ENV_FILE" + fi + # Update domain references in NocoDB URLs while preserving the sheet IDs and paths # This will update domains like cmlite.org, changeme.org, etc. to the new domain sed -i "s|://db\.cmlite\.org/|://db.$new_domain/|g" "$MAP_ENV_FILE" diff --git a/map/Instuctions.md b/map/Instuctions.md index cb04714..886ec80 100644 --- a/map/Instuctions.md +++ b/map/Instuctions.md @@ -15,6 +15,8 @@ Welcome to the Map project! This application is a canvassing tool for political - **Security:** Never expose sensitive credentials. All API calls to NocoDB go through the backend. - **Scalability:** Write code that is easy to extend (e.g., adding new location fields, new admin features). - **User Experience:** Prioritize clear feedback, error handling, and mobile responsiveness. +- **Documentation:** Keep code well-documented and maintain the `Instructions.md`, `README.md` and `files-explainer.md` files. +- **Modularity:** Use modular JavaScript to keep code organized and reusable; try to avoid large monolithic scripts keeping functionality separated by feature with files no longer than 500 lines. ## Directory Structure diff --git a/map/app/package-lock.json b/map/app/package-lock.json index 7ef2f8b..e11a527 100644 --- a/map/app/package-lock.json +++ b/map/app/package-lock.json @@ -22,6 +22,7 @@ "multer": "^1.4.5-lts.1", "node-fetch": "^2.7.0", "nodemailer": "^7.0.5", + "papaparse": "^5.5.3", "qrcode": "^1.5.3", "winston": "^3.11.0" }, @@ -1499,6 +1500,11 @@ "node": ">=6" } }, + "node_modules/papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==" + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", diff --git a/map/app/package.json b/map/app/package.json index 30de2af..a7c58f6 100644 --- a/map/app/package.json +++ b/map/app/package.json @@ -30,6 +30,7 @@ "multer": "^1.4.5-lts.1", "node-fetch": "^2.7.0", "nodemailer": "^7.0.5", + "papaparse": "^5.5.3", "qrcode": "^1.5.3", "winston": "^3.11.0" }, diff --git a/map/app/public/index.html b/map/app/public/index.html index f1a5e8c..f54b212 100644 --- a/map/app/public/index.html +++ b/map/app/public/index.html @@ -106,8 +106,8 @@ 🏠 Hide Start Location - -