Project Name and Description:
Property Information Portal – Resign and development (PIPDES) project is focused
on redesigning the existing property information portal of the City of Kamloops.
GOALS AND OBJECTIVES:
– Improve User Interface:
redesign for better navigation and aesthetics aligned with the City of Kamloops’
design guidelines.
– Enhance Search Functionality:
advanced search options, including misspelled words and abbreviations, and
implementing an auto-complete feature.
– Increase Data accessibility:
ensure users have easier access to comprehensive and accurate property
information.
SCOPE OF WORK:
– UI/UX Redesign
– Functionality enhancements
– Backend support for data accessibility.
RESOURCES REQUIRED
– Human Resources:
Parul (Team lead – UI/UX designer, developer, and tester); City of Kamloops staff
as project managers.
– Technology Stack:
Python (backend)
Docker (deployment)
HTML, CSS, JS, jQuery, Bootstrap and node (front end)
GitHub (version control)
QUALITY ASSURANCE MEASURE
– Testing:
Conscientious testing of portal’s functionality, usability, and performance.
– Feedback Loops:
Regularly gathering and incorporating feedback.
SUCCESS METRICS:
– User Satisfaction:
Positive feedback from business owners.
– Performance indicators:
Metrics like ‘site load time’, error rates, and uptime
Search Functionality:
Problem to solve:
Current feature, uses ‘LIKE’ command to query against Database and display
search results.
It does not account for typos or misspelled addresses and provides a rather generic searching functionality.
Solution Implemented:
Fuzzy Search – fuse.js: Lightweight JS library for implementing full-text search –
approximate searches and typo handling.
Reason for choosing this solution:
Maximum number of entries at a given time for addresses in Kamloops: 45000 –
48000;
Given the search data is not highly saturated and flexibility provided by fuse.js to
perform a robust search feature without any overhead of a server-side search
engine. The ease of use and integration made it a preferred choice for adding
search functionalities to this web-based application.
Implementation:
Default address convention in database: {Unit number/Street number Street name
Address Abbreviation}
Address Abbreviations include short forms for name types such as DR (drive); ST
(street); and so on.
fuse search, considers > ‘dagsui’; ‘dsai dgsau 55′, ’55da s4bb’ as a single string.
– Data set loaded via a fetch request on server side – JSON file including all
Addresses and PID (property tax identification)
– Fuse search initializes the resultant items in an array – library functionality.
– Searching parameter:
o Keys: ADDRESS
o threshold: .3 – lower threshold for more precise search
– FuzzySearch sorting (sorting):
o Display suggestions-based score provided by the searching parameters
compared to input.
o Manually prioritize the score of the best match to display on top.
o If all the results are displayed with the same score, prioritize display based
on Street numbers/Unit numbers.
Search and Sort for display results:
– Search and Sort applied on ‘input entered’ – combine string.
– Custom Sort – based on strings; based on numerical values.
o Sorting Logic:
▪ Primary score comparison, compare the input value against
‘Addresses’ and return sort based on the score assigned by the fuzzy
search library – a lower score means a better match.
▪ Refined further sorting, for jumbled search convention – (street
name, street number/ street name, unit number).
● The function first attempts to sort the numeric part of the
addresses. If a direct match with the input’s numeric part is
found, the item is prioritized.
● If no direct numeric match is found, it then considers the
proximity of numeric values to the numeric part of the
search term, followed by an alphabetic comparison.
● In the absence of numeric parts in the search term, it
defaults to sorting based on the alphabetic part of the
addresses.
Refined sort (sortFn) is for handling more nuanced sorting than first
considers the numeric closeness and then alphabetic order – an attempt to provide
a further balanced approach to mixed-type strings.
Conclusion:
The PIPDES project represents a significant step forward in making property information accessible and useful for the residents of Kamloops. By focusing on user-centric design and robust functionality, the redesigned portal will aim to serve as a model for municipal information systems.