This part of BRN project responsible for end-user UI.
- Framework: Ember.js 4.12 (Octane)
- Data Layer: WarpDrive 5.8.1 (successor to ember-data)
- Language: TypeScript 5.9
- Styling: Tailwind CSS
- Auth: Firebase + ember-simple-auth
- Testing: QUnit + ember-cli-mirage
The app uses WarpDrive's schema-driven architecture:
- Schemas (
app/schemas/) — JSON schema definitions for all model types, replacing class-based@attr/@belongsTo/@hasManymodels - Handlers (
app/handlers/) —AuthHandlerinjects auth tokens;BrnApiHandlernormalizes the backend's REST responses to JSON:API format for the WarpDrive cache - Transformations (
app/transformations/) — Custom field transformations (full-datefor Luxon DateTime,arrayfor array fields) - Store (
app/services/store.ts) — Configured with aRequestManagerpipeline: Auth → API normalization → Fetch → Cache
You will need the following things properly installed on your computer.
- Git
- Node.js (>= 22)
- pnpm (or use
corepack enablewith Node 22+) - Ember CLI
- Google Chrome
- install watchman
git clone <repository-url>this repositorycd brn/frontendpnpm install
-
pnpm localstarts DEV incremental build pointed to localhost:8081 as API -
pnpm remotestarts DEV build pointing to production BE -
Visit your app at http://localhost:4200.
-
Visit your tests at http://localhost:4200/tests.
ember testember test --server
pnpm test:coverage- open
./coverage/index.htmlto see detailed report
pnpm lint:hbspnpm lint:jspnpm lint:js --fix
ember build(development)ember build --environment production(production)