Skip to content

Developer guide ​

Start with one business module and connect its model, API, page, and permissions. This guide is for developers. For daily administration, see the user guide; for server releases, see deployment and operations.

Your first module ​

  1. Run the project: follow environment setup, select Backend and Frontend, initialize them, and sign in.
  2. Build a module: follow the business notes tutorial to add creation, pagination, menus, and bilingual pages.
  3. Verify and deliver: use an ordinary role to check permissions and tenant isolation, then follow debugging and validation for migrations, builds, and functional checks.

The notes tutorial includes complete source examples. Notes are shared within a tenant; private or department-scoped resources require their own data policy.

Find a task ​

TaskRead
Understand layers and file locationsBackend architecture, repository structure
Add a table, API, page, and menuAdd a business module
Connect a Vue page, requests, and loading stateWeb pages and requests
Restrict actions and accessible recordsAPI and button permissions, data scope
Add lists, images, and cachingPagination, upload integration, caching
Register a background taskScheduled jobs
Add translations and languagesInternationalization
Diagnose request, migration, type, and build issuesDebugging and validation
Build a desktop applicationDesktop overview, desktop development

Develop with AI assistance ​

Install HoHu Skills, then follow AI-assisted development to create a project or implement a module. Generated code still needs migration, permission, and functional validation.

To expose business capabilities to the in-app AI assistant, continue with business tool integration. HTTP endpoints do not automatically become AI tools; queries, confirmed execution, and result rendering need explicit integration.

Development conventions ​

  • The API handles authentication, permissions, and commits. Services own business logic and data scope. Models and schemas define persistence and API data respectively.
  • Tenant context comes from server-side authentication. Keep tenant boundaries in queries, relationships, and writes.
  • Send IDs to the frontend as strings. Keep business types and permission codes stable, and maintain both language resources.
  • Use each repository's manifests, lockfiles, and contribution instructions for versions and checks. See source and licensing.