freealberta/map/files-explainer.md

205 lines
5.0 KiB
Markdown

# 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).