- Implement tests for client validation functions including tax ID, VAT ID, IBAN, BIC, website, and company form validation.
- Create tests for revenue and expense categories ensuring all expected categories and labels are present.
- Add tests for invoice number generation with various scenarios including prefix handling and sequence padding.
- Introduce tests for default categories and their integration, ensuring no overlaps and consistent naming conventions.
- Implement Zod schema validation tests for currency, tax rates, IBAN, tax ID, VAT ID, invoices, companies, and customers.
- Add utility tests for tax calculations, including item amounts and invoice totals, ensuring correct handling of tax rates and formatting.
- Set up Vitest configuration and global test setup for consistent testing environment.
- Implemented client-side validation functions for tax ID, VAT ID, IBAN, BIC, and website URL.
- Added debug logging functionality to assist in development.
- Created a comprehensive validation function for company form data.
feat: initialize database with Prisma migrations
- Added a server-side script to run Prisma migrations and check database health.
- Ensured safe initialization of the database to prevent concurrent migrations.
feat: comprehensive server-side error logging
- Developed an error logging system that captures detailed error context, including request details and stack traces.
- Implemented logging functions for different error types (route, action, database, API, startup).
fix: validate user ID existence in audit logs
- Updated the logging function to validate that the user ID exists in the database before logging actions.
fix: update schemas for optional fields and validation
- Modified schemas to allow for nullable fields and refined validation logic for tax ID, VAT ID, IBAN, and BIC.
feat: enhance error boundary for better debugging
- Improved error boundary to log detailed error information in development mode.
- Added a debug panel to the main application layout for real-time error tracking.
feat: implement company deletion functionality in admin routes
- Added a new API route for deleting companies with appropriate logging.
- Integrated delete confirmation in the admin interface for better user experience.
fix: handle API errors gracefully
- Wrapped API actions in try-catch blocks to log errors and return appropriate responses.
feat: generate and save invoice PDFs
- Implemented functionality to generate and save invoice PDFs upon status updates.
- Added a new column in the database for storing the URL of the generated PDF.
chore: update Docker image reference
- Changed the Docker image reference to point to the new Git repository.
chore: update package dependencies
- Added @radix-ui/react-tooltip for enhanced UI components.
- Updated package-lock.json to reflect new dependencies.
- Implemented upload and retrieval of receipts (Belege) associated with Einnahmen entries.
- Added new API routes for uploading and deleting receipts.
- Updated the Einnahmen model to include a `belegUrl` field for storing receipt references.
- Enhanced the Einnahmen page to support file uploads and display existing receipts.
- Introduced drag-and-drop functionality for file uploads and improved user feedback during uploads.
- Added necessary validation for file types and sizes during uploads.
- Implemented a new route for managing Einnahmen Kategorien.
- Added auto-seeding of default Einnahmen Kategorien if none exist.
- Integrated category usage tracking to prevent deletion of in-use categories.
- Enhanced Einnahmen page to link to the new Kategorien management.
- Updated Prisma schema and seed script to include default categories.
- Added a modal for detailed view of Einnahmen by category and month.
- Refactored existing Einnahmen page to accommodate new category structure.
- Introduced PostCSS configuration for Tailwind CSS support.
- Created a new migration to update existing category labels in the database.
- Added TypeScript configuration for stricter type checking.
- Set up Vite configuration for improved development experience with React Router.
- Implemented a new route for managing financial transactions (money) for companies, including creating, editing, and deleting transactions.
- Added a new model `Buchung` to represent transactions with fields for date, account type, transaction type, amount, and description.
- Updated the `companies` model to include a relation to the new `Buchung` model.
- Enhanced the company overview page to link to the new financial transactions page.
- Added migration scripts to create the necessary database tables and fields for the new functionality.
- Created utility scripts for resetting the admin password and setting up the initial admin user.
Full-stack German accounting & invoice management web application:
- Multi-company management (Mandantenverwaltung) with full CRUD
- Invoice creation with dynamic line items and automatic tax calculation
- Sequential invoice numbering per company (RE-2024-001 format)
- §14 UStG compliant PDF invoice generation via @react-pdf/renderer
- Customer management (Kundenverwaltung) per company
- Tax reports: quarterly USt-Voranmeldung and monthly revenue overview
- Email/password authentication via NextAuth.js v5
- Responsive, modern UI with Tailwind CSS and custom shadcn/ui components
- Prisma v5 ORM with MySQL/MariaDB schema + demo seed data
Stack: Next.js 14 (App Router) · TypeScript · Prisma/MySQL · NextAuth.js
https://claude.ai/code/session_01FN53KKxo5ebrGwqFhxzkT9