feat: Initialize branch for AI-driven development
This commit introduces the initial setup for the `ae_app_3x_llm` branch. The purpose of this branch is to explore and implement more direct collaboration with AI Large Language Models (LLMs) for complex code changes, including the creation of new function libraries and the modification of existing code. This initial commit includes: - GEMINI.md: A file to provide context to the AI about the project. - TODO.md: A to-do list for upcoming development tasks, created in collaboration with the AI.
This commit is contained in:
27
GEMINI.md
Normal file
27
GEMINI.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Aether (AE) SvelteKit Application
|
||||
|
||||
This project is a Svelte and SvelteKit based application, part of the Aether (AE) system. It uses Tailwind CSS and Skeleton for styling and some elements. This is the frontend UI/UX. The backend API uses Python FastAPI.
|
||||
|
||||
Core Aether modules
|
||||
* hosted_files
|
||||
* person
|
||||
* users
|
||||
|
||||
Additional Aether modules
|
||||
* events
|
||||
* presentation management - import the program data (events, session, presentations, presenters, evnet files, locations/rooms, devices)
|
||||
* launcher - Technically this is used with presentation management. It is part of the native app that uses Electron. One of the libraries is for functions that only work when the site is opened in an Electron app. For example the regular browser can not move files around on the local computer or run local commands.
|
||||
* badge printing
|
||||
* lead retreavl - attendee tracking; QR codes
|
||||
* journals - journal, documentation, notes, diary, blog, etc
|
||||
* idaa - One of my clients
|
||||
|
||||
## Documentation
|
||||
* TODO.md
|
||||
|
||||
## Ignored Directories
|
||||
|
||||
The following directories are ignored for various operations (e.g., search, file listing) to focus on relevant source code:
|
||||
- `build`
|
||||
- `node_modules`
|
||||
- `tests`
|
||||
179
TODO.md
Normal file
179
TODO.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Project TODO
|
||||
|
||||
This is a list of tasks to be completed before the next event/show/conference.
|
||||
|
||||
## Priority Tasks (Easy & Quick)
|
||||
|
||||
- [ ] **Core:** Define `Account`, `Site`, and `SiteDomain` interfaces in new files under `src/lib/ae_core/`.
|
||||
- [ ] **Journals:** Improve the empty state message in `src/routes/journals/+page.svelte`.
|
||||
- [ ] **Journals:** Add a loading indicator to the main journals page.
|
||||
- [ ] **IDAA:** Add a loading indicator to the archives page (`src/routes/idaa/(idaa)/archives/+page.svelte`).
|
||||
- [ ] **Events:** Add pagination to the main event list in `src/routes/events/+page.svelte`.
|
||||
|
||||
---
|
||||
|
||||
## Critical Functions for Review
|
||||
|
||||
These functions are frequently used and critical to the application's data flow. Reviewing and cleaning them up will significantly improve the codebase.
|
||||
|
||||
1. **`get_ae_obj_li_for_obj_id_crud_v2()`** (from `src/lib/ae_api/api_get__crud_obj_li_v2.ts`)
|
||||
* **Why:** This is the main function for fetching lists of data from the backend, used extensively across all modules.
|
||||
* **Cleanup:** Review parameters and return types for consistency, improve error handling, and add more detailed logging for debugging.
|
||||
|
||||
2. **`db_save_ae_obj_li__ae_obj()`** (from `src/lib/ae_core/core__idb_dexie.ts`)
|
||||
* **Why:** This function is the single point of entry for saving data to the local Dexie database, critical for performance and reliability.
|
||||
* **Cleanup:** Optimize for bulk operations, add robust error handling and logging, and ensure correct handling of updates to existing objects.
|
||||
|
||||
3. **The `process_ae_obj__*_props()` family of functions** (e.g., `process_ae_obj__journal_props()` from `src/lib/ae_journals/ae_journals__journal.ts`)
|
||||
* **Why:** These functions transform API data for the frontend and are a common source of bugs and inconsistencies.
|
||||
* **Cleanup:** Standardize their structure across all modules, ensure they are pure functions, and add unit tests for correctness.
|
||||
|
||||
4. **Usage of `liveQuery` from Dexie**
|
||||
* **Why:** `liveQuery` is powerful for reactive UIs, but current usage suggests complexity and potential issues.
|
||||
* **Cleanup:** Review `liveQuery` usage throughout the application, simplify queries, and investigate reactivity issues. Consider wrapping `liveQuery` in a custom Svelte store for a more predictable interface.
|
||||
|
||||
---
|
||||
|
||||
- [ ] Improve the `e_app_codemirror_v5.svelte` component and plan the migration from Tiptap to CodeMirror for rich text editing.
|
||||
|
||||
---
|
||||
|
||||
## Core Module Improvements
|
||||
|
||||
### 1. Core Module Dashboard
|
||||
- [ ] Create a central dashboard at `/core` to provide an overview and links to all core data management pages.
|
||||
|
||||
### 2. Account Management
|
||||
- [ ] **Route:** Create a new route at `/core/accounts`.
|
||||
- [ ] **Data:** Define the `Account` interface in a new file `src/lib/ae_core/core__account.ts`.
|
||||
- [ ] **API:** Implement functions in `core__account.ts` for CRUD operations on accounts.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a `+page.svelte` to list all accounts.
|
||||
- [ ] Create a `[account_id]` dynamic route to view and edit account details.
|
||||
|
||||
### 3. Site & Domain Management
|
||||
- [ ] **Route:** Create a new route at `/core/sites`.
|
||||
- [ ] **Data:** Define `Site` and `SiteDomain` interfaces in a new file `src/lib/ae_core/core__site.ts`.
|
||||
- [ ] **API:** Implement functions in `core__site.ts` for CRUD operations on sites and domains.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a `+page.svelte` to list all sites.
|
||||
- [ ] Create a `[site_id]` dynamic route to view and edit site details and manage associated domains.
|
||||
|
||||
### 4. Person Management
|
||||
- [ ] **Enhance:** Improve the existing person management components under `/core/person`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a dedicated page for creating new person records.
|
||||
- [ ] Add search and filtering capabilities to the person list.
|
||||
|
||||
### 5. User Management
|
||||
- [ ] **Route:** Create a new route at `/core/users`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a `+page.svelte` to list all users.
|
||||
- [ ] Create a `[user_id]` dynamic route to view and edit user details, including permissions.
|
||||
- [ ] Implement a component to link users to person records.
|
||||
|
||||
### 6. Hosted File Management
|
||||
- [ ] **Route:** Create a new route at `/core/hosted_files`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a `+page.svelte` to list all hosted files with filters (e.g., by file type, uploader).
|
||||
- [ ] Implement a file viewer for common file types.
|
||||
- [ ] Add functionality to upload new files and associate them with other objects (e.g., a person, a journal entry).
|
||||
|
||||
### 7. Shared Lookup Lists
|
||||
- [ ] **Route:** Create a new route at `/core/lookups`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a simple UI to view and manage the shared lookup lists (e.g., `countries`, `time_zones`).
|
||||
|
||||
---
|
||||
|
||||
## Journals Module Improvements
|
||||
|
||||
### Code Cleanup & Refactoring
|
||||
- [ ] **Consolidate Data Functions:** Refactor `ae_journals__journal.ts` and `ae_journals__journal_entry.ts` to reduce code duplication, especially in data loading and processing functions.
|
||||
- [ ] **Remove Dead Code:** Clean up commented-out code blocks and unused variables across the module.
|
||||
- [ ] **Logging:** Implement a more structured logging solution to replace the widespread use of `console.log`.
|
||||
- [ ] **Promise Handling:** Standardize promise handling to use `async/await` consistently and remove mixed `.then()` and `async/await` syntax.
|
||||
- [ ] **Type Safety:** Replace `any` types with more specific interfaces, particularly in function parameters and API responses.
|
||||
|
||||
### Features & Enhancements
|
||||
- [ ] **Offline Support:** Improve offline capabilities by pre-fetching and caching more data. Review the current Dexie implementation for optimizations.
|
||||
- [ ] **Search & Filtering:** Enhance the UI with more advanced search and filtering options for journals and entries (e.g., by date range, content, tags).
|
||||
- [ ] **User Experience (UX):**
|
||||
- Implement better loading indicators and skeleton loaders.
|
||||
- Provide clearer empty state messages (e.g., "No journals found, create one!").
|
||||
- Improve error handling and provide more informative error messages to the user.
|
||||
- [ ] **Encryption:** Review and enhance the encryption implementation for journal entries to ensure it is secure and user-friendly.
|
||||
- [ ] **Templates:** Fully implement and document the "templates" feature for creating new journals and entries.
|
||||
|
||||
### Bug Fixes & Potential Issues
|
||||
- [ ] **Reactivity:** Investigate potential reactivity issues between Svelte stores and Dexie's `liveQuery`.
|
||||
- [ ] **Data Sync:** Add logic to handle data synchronization conflicts between the local database and the server.
|
||||
- [ ] **Performance:** Profile the application with a large number of journals and entries to identify and address any performance bottlenecks.
|
||||
|
||||
---
|
||||
|
||||
## IDAA Modules Improvements
|
||||
|
||||
### General
|
||||
- [ ] **Component Refactoring:** Audit the `ae_idaa_comp__` components and refactor them to be more generic and reusable where possible.
|
||||
- [ ] **State Management:** Simplify state management by reducing the number of stores and triggers, and relying more on derived state and component props.
|
||||
|
||||
### Archives Module (`/idaa/archives`)
|
||||
- [ ] **UI/UX:**
|
||||
- [ ] Add a loading indicator while archives are being fetched.
|
||||
- [ ] Implement a more engaging "empty state" when no archives are available.
|
||||
- [ ] **Performance:**
|
||||
- [ ] Implement pagination or infinite scrolling for the archive list.
|
||||
|
||||
### Bulletin Board Module (`/idaa/bb`)
|
||||
- [ ] **UI/UX:**
|
||||
- [ ] Improve the UI for creating and editing posts and comments.
|
||||
- [ ] Add a rich text editor for a better writing experience.
|
||||
- [ ] **Features:**
|
||||
- [ ] Implement user-specific features, such as editing their own posts and comments.
|
||||
|
||||
### Recovery Meetings Module (`/idaa/recovery_meetings`)
|
||||
- [ ] **Refactoring:**
|
||||
- [ ] Simplify the search and filtering logic. The current implementation with `setInterval` is complex and could be replaced with a more modern approach using debouncing or reactive statements.
|
||||
- [ ] **UI/UX:**
|
||||
- [ ] Make the search and filtering interface more intuitive and responsive.
|
||||
- [ ] Provide instant feedback to the user as they type in the search box.
|
||||
- [ ] **Performance:**
|
||||
- [ ] Optimize the search query to be faster and more efficient.
|
||||
|
||||
---
|
||||
|
||||
## Aether Events Module Improvements
|
||||
|
||||
### General
|
||||
- [ ] **Dashboard:** Create a central dashboard for each event at `/events/[event_id]` that provides an overview of the event and links to all the management pages.
|
||||
- [ ] **Component Refactoring:** The module has a large number of `ae_comp__` components. Audit and refactor them to be more modular and reusable.
|
||||
- [ ] **UI/UX Consistency:** Ensure a consistent look and feel across all the different event management pages.
|
||||
|
||||
### Core Event Management
|
||||
- [ ] **Event List (`/events`):**
|
||||
- [ ] Add search and filtering capabilities to the main event list.
|
||||
- [ ] Implement pagination for the event list.
|
||||
- [ ] **Event Creation/Editing:**
|
||||
- [ ] Create a dedicated page or modal for creating and editing events.
|
||||
|
||||
### Sub-modules (`/events/[event_id]/...`)
|
||||
- [ ] **Sessions, Presentations, Presenters, etc.:**
|
||||
- [ ] For each sub-module (sessions, presentations, etc.), implement a consistent set of features:
|
||||
- [ ] List view with search and filtering.
|
||||
- [ ] Detail view.
|
||||
- [ ] Create and edit forms.
|
||||
- [ ] Delete functionality with confirmation.
|
||||
- [ ] **File Management:**
|
||||
- [ ] Improve the file upload component (`ae_comp__event_files_upload.svelte`) with features like drag-and-drop and progress bars.
|
||||
- [ ] Enhance the file list view with more details and actions.
|
||||
- [ ] **Launcher (`/events/[event_id]/launcher`):
|
||||
- [ ] Add documentation to explain the purpose and usage of the launcher.
|
||||
- [ ] Improve the UI to make it more intuitive for users.
|
||||
- [ ] **Badges (`/events/[event_id]/badges`):
|
||||
- [ ] Enhance the badge printing interface with more customization options.
|
||||
- [ ] Add a preview of the badge before printing.
|
||||
|
||||
### Performance
|
||||
- [ ] **Live Queries:** Review the use of `liveQuery` throughout the module and optimize for performance, especially on pages with a large amount of data.
|
||||
- [ ] **Data Loading:** Implement more efficient data loading strategies to avoid fetching unnecessary data.
|
||||
Reference in New Issue
Block a user