Summary

This page has been used for me personally to learn new technologies. Like HTMX; a tool to build modern user interfaces with just hypertext. But mainly it was used to learn different database technologies like SQLite, PostgreSQL, MS SQL Server, MongoDB, and Redis. It uses a dataset from the city of Kansas City of property and parcel data from KC Land Bank. I took the CSV, transformed it into a SQLite database and query the information with SQLAlchemy with the Flask Framework in the implementation on this website.

Technology

DataBase Structure

The Database Model only consist of one table. There was a lot of information in the original dataset and I decided to keep it all so it could better serve as a learning tool. When first using the dataset and creating the database, I made a point to create types for the SQLite database for each of the different columns but the added unneeded bloat when strings, integers and floats were all that was needed. There is a API that uses list, but after a little reformating and cleaning the data, specifically the "multipolygon", it was easier and quicker to just parse the string and get a list from the data. I have made a second table in past to hold the Land Use Codes and description but it made more sense to combine all the data into one table to keep calls to the backend as low as possible.


Framework and File Structure

The backend framework is Flask, a lightweight WSGI web application framework. I also used the Open Street Map API and LeaFlet API for the interactive map. Previous versions of the app have used HTMX before and while that framework is fun and well made, i wanted to communicate a understanding of Javascript and the included APIs like the Fetch API. The file structure is influenced more then enforced by Flask but it made to be modular so easily adjusted to new frameworks, database technologies or frontend/backend relationships. There is also UV playing a role in the file structure. Uv is a Python package and project manager, written in Rust. It is fast and replaces a lot of other tools I feel I have enough experience in the be able to work with older projects. Using this new manager is a learning experience in itself but worth it for the benefits and keeping up to date with technologies.

Parcel Table
id Integer
multipolygon String
kivapin String
apn String
platname String
lot String
block String
tract String
owner_name String
owner_name2 String
owner_occupied String
owner_occupied_str String
owner_addr String
owner_addr2 String
owner_city String
owner_state String
owner_zip String
owner_full_address String
cont...
address String
stret_numb String
fraction String
prefix String
street String
street_type String
suite String
full_address String
landusecode String
landusedesc String
assessed_land_value Float
assessed_improved_value Float
exempt_land_value Float
exempt_improved_value Float
assessment_effective_date Float
legal String
shape_area Float
shape_len Float