Files
homebox/.github/AGENTS.md
2025-07-07 11:46:41 -04:00

1.8 KiB

This is a Go based repository with a VueJS client for the frontend built with Vite and Nuxt, with ShadCN.

To make life easier, the use of a Taskfile is included for the majority of development commands.

Please follow these guidelines when contributing:

Required Before Each Commit

  • Generate Swagger Files: task swag --force
  • Generate JS API Client: task typescript-types --force
  • Lint Golang: task go:lint
  • Lint frontend: task ui:fix

Repository Structure

Backend

  • backend/: Contains the backend folders
  • backend/app: Contains main app code including API endpoints
  • backend/internal/core: Contains basic services such as currencies
  • backend/data: Contains all information related to data, including ent schemas, repos, migrations, etc.
  • backend/data/migrations: Contains migration data, the sqlite3 sub-folder contains sqlite migrations, postgres sub-folder the postgres migrations, BOTH are REQUIRED.
  • backend/data/ent/schema: Contains the actual ent data models.
  • backend/data/repo: Contains the data repositories
  • backend/pkgs: Contains general helper functions and services

Frontend

  • frontend/: Contains initial frontend files
  • frontend/components: Contains the ShadCN components
  • frontend/locales: Contains the i18n JSON for languages
  • frontend/pages: Contains VueJS pages
  • frontend/test: Contains Playwright setup
  • frontend/test/e2e: Contains actual Playwright test files

Docs

  • docs/: Contains VitePress based documentation

Key Guidelines

  1. Follow best practices for the various programming languages
  2. Maintain existing code structure and organization when possible
  3. Use dependency injection when reasonable
  4. Write tests for new functionality and after fixing bugs to validate they're fixed
  5. Document changes to the docs/ folder when appropriate