Developer Guide
CrowdVision is structured as a Lerna Monorepo using npm workspaces.
{
"workspaces": [
"client",
"server/*"
]
}What this means for you:
cd into server/auth-service to run a test or start a server. Use the root package.json scripts (e.g., npm run test:auth or npm run dev).node_modules where possible, keeping the installation footprint small.We use Semantic Release to fully automate our versioning, package publishing, and CHANGELOG.md generation. For this pipeline to work, you must use Conventional Commits.
When you write a commit message, the prefix dictates how the version number will bump in the next release:
| Commit prefix | Example | Impact on release |
|---|---|---|
| feat: | feat: add support for private domains | Minor release (e.g., 1.1.0 → 1.2.0). |
| fix: | fix: resolve issue with user authentication | Patch release (e.g., 1.1.0 → 1.1.1). |
| docs:,chore:, refactor: | docs: update API documentation | No version bump. Safe internal changes. |
| BREAKING CHANGE: | BREAKING CHANGE: remove deprecated user profile fields | Major release (e.g., 1.1.0 → 2.0.0 ). |
⚙️ The Release Pipeline: When a pull request is merged into the main branch, the GitHub Action triggers npm run release. Semantic Release reads your commit history since the last tag, calculates the new version, updates the CHANGELOG.md, tags the repository, and publishes the release automatically
Because CrowdVision spans both frontend Vue applications and backend Express/Fastify services, we follow strict naming conventions to differentiate architectural layers at a glance.
Backend Conventions (Express / Node.js)
twinController.ts, notificationService.tstwin_ctrl.ts, Notification.tsaccount.ts | Code: export interface IAccount { ... }, `export const Account = model(...)``accounts, buildings).Frontend Conventions (Vue 3 / TresJS)
BuildingCard.vue, NotificationDropdown.vue, LeftMenu.vueuseBuildingModel.ts, useAuth.ts, useSceneControls.tsDashboardView.vue, AdministrationView.vueWhen adding new features, please respect the architectural boundaries we have put in place:
__tests__ directory. Ensure your changes are covered by running npm test from the root before submitting a pull request.