freealberta/map/files-explainer.md

5.0 KiB

ADMIN_IMPLEMENTATION.md

Summarizes the implementation of the admin panel and related backend/frontend changes for the NocoDB Map Viewer.

Instuctions.md

Project development instructions and rules for contributors to the canvassing map application.

README.md

Main documentation for the NocoDB Map Viewer project, including features, setup, and usage.

build-nocodb.md

Documents the development and requirements of the NocoDB automation script for table setup.

build-nocodb.sh

Bash script to automate creation of required NocoDB tables and default data for the app.

docker-compose.yml

Docker Compose file to orchestrate the map-viewer app container and its environment.

app/Dockerfile

Dockerfile for building the Node.js application image for deployment.

app/config/index.js

Handles environment config and NocoDB URL parsing for the backend.

app/controllers/authController.js

Controller for user authentication (login, logout, session check).

app/controllers/locationsController.js

Controller for CRUD operations on map locations.

app/controllers/settingsController.js

Controller for application settings, start location, and walk sheet config.

app/controllers/shiftsController.js

Controller for volunteer shift management (public and admin). When users sign up for shifts, the signup record includes the shift title for better tracking and display.

app/controllers/usersController.js

Controller for user management (list, create, delete users).

app/middleware/auth.js

Express middleware for authentication and admin access control.

app/middleware/rateLimiter.js

Express middleware for API rate limiting, with Cloudflare IP support.

app/package.json

Node.js project manifest, dependencies, and scripts for the backend app.

app/server.js

Main Express server entry point for the map application backend.

app/server copy.js

Legacy or backup version of the main server file, possibly for reference or migration.

app/services/geocoding.js

Service for geocoding and reverse geocoding using external APIs, with caching.

app/services/nocodb.js

Service for interacting with the NocoDB API (CRUD, config, etc).

app/services/qrcode.js

Service for generating QR codes and handling QR-related logic.

app/utils/helpers.js

Utility functions for geographic data, validation, and helpers used across the backend.

app/utils/logger.js

Winston logger configuration for backend logging.

app/public/admin.html

Admin panel HTML page for managing start location, walk sheet, and settings.

app/public/css/admin.css

CSS styles specific to the admin panel UI.

app/public/css/shifts.css

CSS styles for the volunteer shifts page.

app/public/css/style.css

The style.css file is the base .css file for the application. It is referenced in many of the .html files.

app/public/favicon.ico

Favicon for the web application.

app/public/index.html

Main map viewer HTML page for the canvassing application.

app/public/login.html

Login page HTML for user authentication.

app/public/shifts.html

Volunteer shifts management and signup page HTML.

app/public/js/admin.js

JavaScript for admin panel functionality (map, start location, walk sheet, etc).

app/public/js/auth.js

JavaScript for authentication logic and user session management.

app/public/js/config.js

Global configuration constants for the frontend app.

app/public/js/location-manager.js

JavaScript for loading, displaying, and managing map locations on the frontend.

app/public/js/main.js

Main entry point for initializing the frontend application.

app/public/js/map-manager.js

JavaScript for initializing and managing the Leaflet map instance.

app/public/js/map.js.backup

Backup or legacy version of the main map JavaScript logic.

app/public/js/shifts.js

JavaScript for volunteer shift signup, management, and UI logic. Updated to use shift titles directly from signup records.

app/public/js/ui-controls.js

JavaScript for UI controls, event handlers, and user interaction logic.

app/public/js/utils.js

Utility functions for the frontend (escaping HTML, parsing geolocation, etc).

app/routes/admin.js

Express router for admin-only endpoints (start location, walk sheet config).

app/routes/auth.js

Express router for authentication endpoints (login, logout, check).

app/routes/debug.js

Express router for debug endpoints (session info, table structure, etc).

app/routes/geocoding.js

Express router for geocoding and reverse geocoding endpoints.

app/routes/index.js

Main router that mounts all sub-routes for the backend API.

app/routes/locations.js

Express router for CRUD endpoints on map locations.

app/routes/qr.js

Express router for QR code generation endpoints.

app/routes/settings.js

Express router for application settings endpoints (start location, walk sheet).

app/routes/shifts.js

Express router for volunteer shift management endpoints (public and admin).

app/routes/users.js

Express router for user management endpoints (list, create, delete users).