Axis is a web application for construction inspection. It helps field engineers and quality control teams record measurements, compare them with design values and tolerances, and follow up on defects within a project.
The work centres on four kinds of checks: survey coordinates and elevations, reinforcement, structural geometry, and concrete strength. IFC models provide element context and some design values alongside the measurements taken on site.
The project is under active development. Its engineering checks use Russian SP and GOST references; the interface supports Russian and English, with some results and report text still in Russian.
- Create projects and organise checks by structure, floor and grid axes.
- Record design and measured values, evaluate deviations, and revisit saved checks.
- Track issues in the inspection register and record repeat inspections without replacing the original evidence.
- Use a control plan to see which checks are required and where records are missing.
- Import IFC elements, select them in inspection forms, and inspect a model in the 3D viewer.
- Review project summaries and analytics, export register data as CSV or JSON, and prepare reports, including PDF output.
IFC support is selective. Missing or unsupported design dimensions stay empty rather than being inferred from the rendered mesh. See BIM and IFC for supported data, coordinate handling and model-size limits.
The browser application uses TypeScript, HTML and CSS, without a UI framework. Firebase Authentication handles sign-in; Firestore stores projects and inspection records.
An Express API provides server-side IFC import and report generation. IFC parsing uses a shared WebIFC adapter, running in a browser Worker or a bounded Piscina worker pool on the server. The 3D viewer uses Three.js and IFC-Lite. Report text is assembled from inspection data; it does not require an external AI model.
OpenAPI defines the HTTP contract. Generated types and route identifiers are used by the client through openapi-fetch. Presentation translations use i18next. A separate Firebase Function serves the profile news feed.
See Architecture for module boundaries and data consistency.
Use Node.js 22.12+ in the Node 22 release line, npm and Java 21+ for Firebase emulators. The pinned Node version is in .nvmrc.
git clone https://github.com/valiibragimov/axis.git
cd axis
npm ci
npm ci --prefix server
npm ci --prefix functionsRun npm run dev:local and open http://127.0.0.1:5050/login.html. Register a local account. This runs the actual application and Express API with Firebase emulators; it needs no live credentials.
See the development guide for Firebase setup, the optional API, build outputs and test prerequisites.
npm run api:check
npm run shared:check
npm run typecheck
npm run lint
npm run build
npm test
npm run test:integration
npm run audit:allnpm test builds the application, then runs smoke tests, core tests and Playwright browser scenarios. Windows browser tests use installed Google Chrome; Linux requires npx playwright install --with-deps chromium. Firestore integration tests require Java 21+ and use an isolated local emulator with synthetic data.
The CI workflow runs these checks on pull requests to main. For changes to HTTP or shared BIM contracts, see Contributing.
- Large models are read from Firestore in pages, but their metadata still occupies memory proportional to the number of elements. Geometry loading is not streamed.
- IFC exporter coverage is incomplete, especially for advanced placements and georeferencing. Imported coordinates and dimensions need review against the source design.
- Server imports run in a process-local queue. They are request-bound jobs, not a durable distributed job system.
- English translation is incomplete. Switching language preserves stored engineering values and normative notation.
- Development — local setup, builds and verification.
- Architecture — runtime responsibilities and source layout.
- BIM and IFC — import, engineering data and safe model maintenance.
- Contributing — change scope and review expectations.
- Security — reporting vulnerabilities and handling sensitive data.
Axis is proprietary software. Public source access does not grant permission to use, modify or distribute it. See LICENSE for the terms.