- Updated LiabilityController and LiabilityService to consolidate liability properties into a single 'balance' field for improved clarity.
- Added new methods in AssetRepository to retrieve assets grouped by type.
- Introduced a method in InvoiceRepository to calculate user-specific invoice statistics, including total, paid, outstanding, and overdue invoices.
- Adjusted DashboardService to reflect changes in asset value calculations.
- Added '@typescript-eslint/no-unused-vars' rule to ESLint configuration for better variable management in TypeScript files.
- Updated database.ts to ensure consistent logging format.
- Refactored AuthController and CashflowController to improve variable naming and maintainability.
- Added spacing for better readability in multiple controller methods.
- Adjusted error handling in middleware and repository files for improved clarity.
- Enhanced various service and repository methods to ensure consistent return types and error handling.
- Made minor formatting adjustments across frontend components for improved user experience.
- Introduced bun.lock and package-lock.json to manage dependencies for the project.
- Enhanced backend API architecture documentation with additional security and documentation guidelines.
- Made minor formatting adjustments across various files for consistency and clarity.
- Deleted eslint.config.js file to streamline project setup.
- Removed ESLint and related packages from package.json to simplify development environment.
- Added pino-pretty as a development dependency for enhanced logging capabilities.
- Updated various dependencies in bun.lock to their latest versions for improved performance and security.
- Replaced native enum for asset types with a constant array using z.enum for improved type safety and maintainability in create and update asset schemas.
- Modified TypeScript configuration to disable strict mode and allow importing TypeScript extensions.
- Updated Prisma schema to enhance the User model with a new debtAccounts field and refined asset/liability types.
- Adjusted environment variable parsing for PORT to use coercion for better type handling.
- Refactored various controllers and repositories to utilize type imports for better clarity and maintainability.
- Enhanced service layers with new methods for retrieving assets by type and calculating invoice statistics.
- Introduced new types for invoice statuses and asset types to ensure consistency across the application.
- Introduced a comprehensive backend API using TypeScript, Fastify, and PostgreSQL.
- Added essential files including architecture documentation, environment configuration, and Docker setup.
- Implemented RESTful routes for managing assets, liabilities, clients, invoices, and cashflow.
- Established a robust database schema with Prisma for data management.
- Integrated middleware for authentication and error handling.
- Created service and repository layers to adhere to SOLID principles and clean architecture.
- Included example environment variables for development, staging, and production setups.
## Summary
Complete frontend overhaul implementing best practices, security hardening,
full CRUD operations, and performance optimizations across the application.
## Key Changes
### Architecture & Performance
- Implement code splitting with React.lazy() reducing main bundle from 795KB to 308KB (61% improvement)
- Add error boundary component for graceful error handling
- Create shared utility modules for formatters, validation, and calculations
### Security Enhancements
- Add input sanitization to prevent XSS attacks
- Implement comprehensive validation (email, phone, positive numbers, required fields)
- Sanitize all user inputs before storage
- Add confirmation dialogs for destructive operations
### Features & Functionality
- Implement complete edit/delete operations for assets, liabilities, clients, and invoices
- Add invoice status update functionality (draft/sent/paid/overdue/cancelled)
- Connect "Record Snapshot" button with proper functionality
- Fix hardcoded statistics with dynamic calculations (monthly change, YTD growth)
- Make all list items clickable with hover effects and visual feedback
### Code Quality
- Replace inline currency formatting with shared formatters
- Add comprehensive input validation across all forms
- Display inline error messages for validation failures
- Implement loading states for lazy-loaded routes
- Ensure type safety throughout with zero TypeScript errors
### UI/UX Improvements
- Add hover states to all clickable items
- Display validation errors inline with user-friendly messages
- Add loading indicators during page transitions
- Color-code financial metrics (green for positive, red for negative)
- Improve form user experience with real-time validation
## Technical Details
- Created src/lib/formatters.ts for currency and percentage formatting
- Created src/lib/validation.ts for input validation and sanitization
- Created src/lib/calculations.ts for financial calculations
- Added EditAssetDialog, EditLiabilityDialog, EditClientDialog, InvoiceDetailsDialog
- Wrapped app in ErrorBoundary for robust error handling
- Added .nvmrc file to specify Node.js version 24 for the project.
- Revised README to reflect the new project focus on personal finance management, detailing features such as net worth tracking, debt management, invoicing, and cashflow monitoring.
- Updated installation and development instructions to use Bun for package management.
- Introduced AddInvoiceDialog component for creating new invoices with client selection and form validation.
- Updated CashflowPage to include dialogs for adding income, expenses, and transactions, improving user interaction.
- Enhanced ClientsPage with a dialog for adding new clients, streamlining client management.
- Improved InvoicesPage with a dialog for creating new invoices, facilitating better invoice management.
- Updated NetWorthPage to include dialogs for adding assets and liabilities, enhancing financial tracking capabilities.
- Updated CashflowPage to streamline calculations and improve layout, including inline summaries for income, expenses, and savings.
- Refined ClientsPage to enhance client management with a more organized grid layout and improved client statistics display.
- Enhanced DebtsPage with a new view mode toggle and refined debt account presentation for better user experience.
- Improved InvoicesPage with a summary of overdue, sent, and draft invoices, along with a more detailed display of recent transactions.
- Updated NetWorthPage to include quick stats and a more visually appealing layout for assets and liabilities.
- Introduced AddAssetDialog, AddClientDialog, AddExpenseDialog, AddIncomeDialog, AddLiabilityDialog, and AddTransactionDialog components for improved asset and client management.
- Added support for new font sources: 'Funnel Sans' and 'Inter'.
- Updated CSS variables for better theming and adjusted font settings for improved readability.
- Refactored main entry point to include new font imports and ensure consistent styling across the application.
- Introduced CashflowPage component for managing income and expenses, including detailed summaries and transaction tracking.
- Updated App component to include routing for the new CashflowPage.
- Enhanced Layout component with navigation for Cashflow.
- Created Redux slice for cashflow management, including actions for income sources, expenses, and transactions.
- Integrated mock data for initial cashflow setup to facilitate development and testing.
- Added new font support for 'Oxanium' and integrated Radix UI components including Dialog and Select.
- Updated CSS to set the default font to 'Oxanium Variable' and adjusted HTML font size.
- Introduced AddAccountDialog component for managing debt accounts, enhancing user experience.
- Refactored DebtsPage to utilize the new AddAccountDialog and improved account management features.
- Updated Redux store to support debt categories and accounts, including actions for adding, updating, and removing accounts.
- Mock data added for clients and invoices to facilitate development and testing.
- Added new dependencies: @fontsource-variable/geist, @radix-ui/react-separator, @radix-ui/react-tooltip, date-fns, react-router-dom, and recharts.
- Updated index.html to set the HTML class to "dark" for dark mode support.
- Refactored App component to implement routing with React Router, replacing the previous UI structure with a layout and multiple pages (NetWorth, Debts, Invoices, Clients).
- Enhanced CSS for dark mode and added depth utilities for improved UI aesthetics.
- Expanded Redux store to include net worth, debts, and invoices slices for comprehensive state management.
- Created a new frontend-web project structure with essential files including package.json, tsconfig, and Vite configuration.
- Added ESLint and Prettier configurations for code quality.
- Implemented basic UI components (Button, Card, Input, Label) with Tailwind CSS for styling.
- Established Redux store with user authentication slice and typed hooks for state management.
- Included a sample App component demonstrating the use of UI components and Redux store.
- Set up .gitignore to exclude build artifacts and dependencies.