Skip to content

Latest commit

 

History

History
66 lines (45 loc) · 2.11 KB

File metadata and controls

66 lines (45 loc) · 2.11 KB

brn user UI

This part of BRN project responsible for end-user UI.

Tech Stack

  • 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

Data Architecture

The app uses WarpDrive's schema-driven architecture:

  • Schemas (app/schemas/) — JSON schema definitions for all model types, replacing class-based @attr/@belongsTo/@hasMany models
  • Handlers (app/handlers/) — AuthHandler injects auth tokens; BrnApiHandler normalizes the backend's REST responses to JSON:API format for the WarpDrive cache
  • Transformations (app/transformations/) — Custom field transformations (full-date for Luxon DateTime, array for array fields)
  • Store (app/services/store.ts) — Configured with a RequestManager pipeline: Auth → API normalization → Fetch → Cache

Prerequisites

You will need the following things properly installed on your computer.

Installation

  • install watchman
  • git clone <repository-url> this repository
  • cd brn/frontend
  • pnpm install

Running / Development

Running Tests

  • ember test
  • ember test --server

Test coverage report

  • pnpm test:coverage
  • open ./coverage/index.html to see detailed report

Linting

  • pnpm lint:hbs
  • pnpm lint:js
  • pnpm lint:js --fix

Building

  • ember build (development)
  • ember build --environment production (production)