aboutsummaryrefslogtreecommitdiffstats
path: root/app/requirements.tsv
blob: 279a1202e3aed77d1d03b654d32cb8c2708431f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ID	Category	Requirement
ARCH-1	Architecture	Six-file ES6 module structure: main.js, dom.js, models.js map.js, components.js, svg.js
ARCH-2	Architecture	Dynamic styling with no external CSS (HTMLElement style property). RGBA coloring.
ARCH-3	Architecture	Modern ecmascript with import maps for clean module resolution and jsdoc types
ARCH-5	Architecture	Functional declarative interface around browsers native API's - SVG (svg.js) and DOM (dom.js).
ARCH-6	Architecture	Code style: Prefer static, private, Classes, modules, constricted state, function chaining, null safety by design.
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 with own functional oriented wrapper API.
UI-3	UI	Color-coded house markers based on scoring
UI-4	UI	Native dialog elements and cards 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	Models translate json data into application structure.
DATA-2	Data	Couchbase API integrates for house data and enables querying
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 groups - All changes are collected and elements replaces at once.
ERROR-2	Error Handling	Errors should be raised when the program has ended up in a state that it should not be in.
MAP-1	Direct EPSG4326 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
DEVX-1	Developer Exp	Clean separation of concerns between modules and components. Each component should handle its internal state.