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 - -