docs: Update project documentation and session notes

- Updates `GEMINI.md` with a detailed summary of the days debugging session for the v3 Badges page.
- Updates `TODO.md` to mark recent bug fixes as complete and adds new tasks for outstanding issues (e.g., `order_by_li` fix).
- Updates `ARCHITECTURE.md` to reflect the current state of the tech stack (Tailwind v4, component library status).
- Creates `README.md` files for the new v3 Badges module and the legacy Lead Retrieval module to clarify their purpose and status.
This commit is contained in:
Scott Idem
2025-11-19 19:05:06 -05:00
parent 10cc435146
commit bd4bd360f7
5 changed files with 49 additions and 46 deletions

View File

@@ -0,0 +1,16 @@
# Event Badges Module (v3)
This directory contains the Svelte components and pages for the "v3" Badge Printing module for a specific event.
## Key Features
- **Search:** A reactive search page (`+page.svelte` and `ae_comp__badge_search.svelte`) for finding attendee badges.
- **Printing:** Functionality for printing individual and lists of badges.
- **CRUD Operations:** Components for creating, viewing, updating, and deleting badges.
- **Templates:** A system for managing different badge layouts and templates.
## Technical Notes
- This module is built using Svelte 5 (runes) and Flowbite-Svelte for UI components.
- It relies on the `events_func` and `ae_events__event_badge.ts` for its business logic and API communication.
- The search functionality was recently debugged to resolve a series of build and runtime errors related to CSS conflicts, Svelte 5 reactivity, and API query parameter issues.

View File

@@ -1,48 +1,18 @@
# Events - Leads Module
# Event Lead Retrieval Module
This document describes the **Events - Leads** module, which is a sub-module of the Events module. It provides a lead retrieval solution for exhibitors at an event.
This directory contains the Svelte components and pages for the exhibitor Lead Retrieval module.
## Overview
## Key Features
The Leads module allows exhibitors to capture, manage, and export leads from event attendees. It is designed to be used on a variety of devices, including desktops, tablets, and smartphones.
- **Exhibitor Login:** Allows exhibitors to log in using a shared passcode or an individual license key (email).
- **Lead Capture:** Provides an interface for adding new leads, either by scanning a badge QR code or by manual entry.
- **Lead Management:** A list view for exhibitors to see all the leads they have collected.
- **Lead Qualification:** Exhibitors can rank leads (sort) and mark them as priority (star).
- **Data Export:** Functionality to export collected leads to an Excel file.
## Data Models
## Technical Notes
The Leads module is based on two main data models:
- **`EventExhibit`**: Represents an exhibitor at an event. It contains information about the exhibitor, such as their name, description, and booth number. It also includes configuration options for the lead retrieval service, such as custom questions and the number of licenses.
- **`EventExhibitTracking`**: Represents a lead captured by an exhibitor. It links an exhibitor (`event_exhibit_id`) with an attendee's badge (`event_badge_id`) and includes fields for notes and responses to custom questions.
## Features
- **Authentication:** The module supports two types of authentication for exhibitor staff:
- **Shared Passcode:** A shared passcode can be used by all staff members of an exhibitor.
- **License-based:** Individual licenses can be assigned to staff members, each with their own email and passcode.
- **Lead Capture:** Leads can be captured by:
- **Scanning QR Codes:** The module includes a QR code scanner that can be used to scan the QR code on an attendee's badge.
- **Manual Entry:** The attendee's badge ID can be entered manually.
- **Lead Management:** The module provides a comprehensive interface for managing leads, including:
- Viewing a list of all captured leads.
- Viewing the details of a single lead.
- Adding notes to a lead.
- Answering custom questions for a lead.
- **Lead Export:** Leads can be exported to a CSV or Excel file for further processing.
- **License Management:** Exhibitors can manage their licenses, including adding, editing, and removing licenses.
- **Client-Side Caching:** The module uses Dexie.js for client-side caching in IndexedDB, which improves performance and enables offline access.
## UI Components
The Leads module is composed of the following UI components:
- **`exhibit/[slug]/+page.svelte`:** The main entry point for an exhibitor. It provides a tabbed interface for accessing the different features of the module.
- **`exhibit/[slug]/leads_add_scan.svelte`:** A component for adding a new lead by scanning a badge or entering the badge ID manually.
- **`exhibit/[slug]/leads_list.svelte`:** A component for viewing and managing the list of captured leads.
- **`exhibit/[slug]/leads_manage.svelte`:** A component for managing the exhibitor's settings and exporting leads.
- **`exhibit/[slug]/leads_view_lead.svelte`:** A component for viewing the details of a single lead.
## How it Works
1. The exhibitor navigates to the `events_leads/exhibit/[slug]` page, where `[slug]` is their exhibitor ID.
2. They authenticate using either the shared staff passcode or their individual license.
3. They can then use the different tabs to capture new leads, manage their existing leads, and configure their settings.
4. All data is fetched from the API and cached in IndexedDB for offline access and faster loading times.
- This is considered a legacy module but is still in active use and was recently updated to fix styling issues.
- The UI was previously dependent on Skeleton UI classes. Recent fixes have replaced these with standard Tailwind CSS to resolve critical rendering errors caused by the removal of global Skeleton CSS.
- The main entry point is `/events_leads`, which lists available exhibits.
- Individual exhibitor functionality is handled under the `/events_leads/exhibit/[slug]` dynamic route.