From a4ed99a370930b1a0c0f065906ed99c15a015fd4 Mon Sep 17 00:00:00 2001 From: Petri Hienonen Date: Mon, 3 Nov 2025 11:19:15 +0200 Subject: Update documentation --- app/requirements.tsv | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'app/requirements.tsv') diff --git a/app/requirements.tsv b/app/requirements.tsv index 173a43f..12cc95a 100644 --- a/app/requirements.tsv +++ b/app/requirements.tsv @@ -1,10 +1,11 @@ ID Category Requirement -ARCH-1 Architecture Three-file ES6 module structure: app.js, dom.js, models.js map.js geometry.js -ARCH-2 Architecture Dynamic styling with no external CSS +ARCH-1 Architecture Five-file ES6 module structure: main.js, dom.js, models.js map.js geometry.js +ARCH-2 Architecture Dynamic styling with no external CSS (HTMLElement style property). RGBA coloring. ARCH-3 Architecture Modern javascript with import maps for clean module resolution ARCH-4 Architecture Comprehensive JSDoc type definitions with TSC validationn -ARCH-5 Architecture Direct use of SVG and DOM interfaces -ARCH-6 Architecture Static, private, classes, modules, minimal state, function chaining, null safe +ARCH-5 Architecture Functional declarative interface around browsers native SVG (svg.js) and DOM (dom.js). +ARCH-6 Architecture Code style: Prefer static, private, Classes, modules, minimal state, function chaining, modern null safety. +ARCH-7 Architecture Less program lines and generic approach is always preferred over "Ad hoc" patching. UI-1 UI Single view layout with map and control panel UI-2 UI Native SVG map with Helsinki district boundaries UI-3 UI Color-coded house markers based on scoring @@ -12,12 +13,13 @@ UI-4 UI Native dialog elements for house details UI-5 UI Toast notifications for error handling UI-6 UI Weight sliders for scoring parameters UI-7 UI Filter controls for price, year, area and first appeared -DATA-1 Data Main map datasets from local geojson files -DATA-2 Data Couchbase API integration for house data -DATA-3 Data Class-based data models with fromJson() -DATA-4 Data Scoring engine with weighted criteria -PERF-1 No DOM selectors but use of direct layout handles +DATA-1 Data Models translate json data into application structure. +DATA-2 Data Couchbase API integrates for house data and enables querying if it is ever needed. +DATA-3 Data Scoring engine with weighted criteria +PERF-1 No DOM selectors but use of direct layout handles (we know each element). +PERF-2 Changes to DOM are performed in patches. All changes are collected and elements replaces at once. ERROR-1 Error Handling Meaningfull debug information +ERROR-2 Error Handling Errors should be raised when the program has ended up in a state that it would not be in. MAP-1 Direct WGS84 coordinates with moving view space MAP-2 Map House markers with hover and click interactions MAP-3 Map Responsive map that handles window resize, zoom and pan -- cgit v1.2.3-70-g09d2