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
-