aboutsummaryrefslogtreecommitdiffstats
path: root/app/requirements.tsv
diff options
context:
space:
mode:
Diffstat (limited to 'app/requirements.tsv')
-rw-r--r--app/requirements.tsv20
1 files changed, 11 insertions, 9 deletions
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