mirror of
https://github.com/acedanger/finance.git
synced 2025-12-05 22:50:12 -08:00
#1 Update documentation to reflect API implementation progress
This commit is contained in:
27
.github/copilot-instructions.md
vendored
27
.github/copilot-instructions.md
vendored
@@ -9,7 +9,7 @@ This project is a web user interface (UI) for a CRUD (Create, Read, Update, Dele
|
||||
* **Framework:** Astro (latest version)
|
||||
* **Language:** TypeScript, JavaScript (client-side scripts), HTML, CSS
|
||||
* **Styling:** Plain CSS (`src/styles/global.css`)
|
||||
* **Data:** Currently using in-memory arrays. **The goal is to eventually integrate with a backend API.**
|
||||
* **Data:** Using Astro's built-in API routes in `src/pages/api/` with a temporary in-memory store (`src/data/store.ts`). **The goal is to eventually replace the in-memory store with a persistent database.**
|
||||
|
||||
## Current State & Key Features
|
||||
|
||||
@@ -17,7 +17,10 @@ This project is a web user interface (UI) for a CRUD (Create, Read, Update, Dele
|
||||
* **Sidebar:** (`src/components/Sidebar.astro`) Contains account selection dropdown and a collapsible section for adding new transactions. Includes an account summary section.
|
||||
* **Main Content:** (`src/components/MainContent.astro`) Displays the header with the current account name and the transaction list.
|
||||
* **Components:** Separate Astro components exist for major UI sections (Sidebar, MainContent, TransactionTable, AddTransactionForm, AccountSummary).
|
||||
* **Data Loading:** Currently using empty arrays for accounts and transactions, initialized in `src/pages/index.astro`.
|
||||
* **API Integration:**
|
||||
* API routes structure implemented in `src/pages/api/`
|
||||
* Temporary data store in `src/data/store.ts`
|
||||
* GET /api/accounts endpoint implemented and integrated with frontend
|
||||
* **Account Switching:** Selecting an account from the dropdown in the sidebar correctly updates the Main Content area (header, transaction table) and the Account Summary section using client-side JavaScript (`<script>` tag in `index.astro`).
|
||||
* **Collapsible Form:** The "Add Transaction" section in the sidebar (`src/components/AddTransactionForm.astro`) can be expanded and collapsed using client-side JavaScript (`<script>` tag in `AddTransactionForm.astro`).
|
||||
* **Basic Formatting:** Utility functions (`src/utils.ts`) exist for formatting currency and dates, used both server-side and client-side (mirrored in `index.astro` script).
|
||||
@@ -26,8 +29,13 @@ This project is a web user interface (UI) for a CRUD (Create, Read, Update, Dele
|
||||
## File Structure Overview
|
||||
|
||||
* `src/components/`: Reusable UI components.
|
||||
* `src/data/`: Data store and persistence layer.
|
||||
* `src/layouts/`: Base page layout(s).
|
||||
* `src/pages/`: Astro pages (routes). `index.astro` is the main page.
|
||||
* `src/pages/`: Astro pages and API routes.
|
||||
* `index.astro`: Main page
|
||||
* `api/`: Backend API endpoints
|
||||
* `accounts/`: Account-related endpoints
|
||||
* `transactions/`: Transaction-related endpoints
|
||||
* `src/styles/`: Global CSS styles.
|
||||
* `src/types.ts`: TypeScript type definitions.
|
||||
* `src/utils.ts`: Utility functions (formatting, etc.).
|
||||
@@ -35,10 +43,15 @@ This project is a web user interface (UI) for a CRUD (Create, Read, Update, Dele
|
||||
|
||||
## Next Steps & TODOs
|
||||
|
||||
1. **Backend API Integration:**
|
||||
* Define the expected API endpoints (e.g., `GET /api/accounts`, `GET /api/accounts/:id/transactions`, `POST /api/transactions`, `PUT /api/transactions/:id`, `DELETE /api/transactions/:id`).
|
||||
* Replace static JSON data fetching in `index.astro` with `fetch` calls to the backend API during server-side rendering (or potentially client-side, depending on strategy).
|
||||
* Update client-side logic to interact with the API for CRUD operations.
|
||||
1. **Complete API Implementation:**
|
||||
* Implement remaining API endpoints:
|
||||
* GET /api/accounts/:id
|
||||
* GET /api/accounts/:id/transactions
|
||||
* POST /api/transactions
|
||||
* PUT /api/transactions/:id
|
||||
* DELETE /api/transactions/:id
|
||||
* Add error handling and validation
|
||||
* Prepare for future database integration
|
||||
2. **Implement Create Functionality:**
|
||||
* Add client-side JavaScript to the `AddTransactionForm.astro` component (or enhance the script in `index.astro`) to handle form submission.
|
||||
* Prevent default form submission.
|
||||
|
||||
Reference in New Issue
Block a user