diff --git a/cspell.json b/cspell.json index d7c6bcb..8f9f4c7 100644 --- a/cspell.json +++ b/cspell.json @@ -1,18 +1,24 @@ { "version": "0.2", "words": [ - "pytest", - "marp", - "Kartoza", - "QGIS", - "visualising", - "Marp", "colour", "colours", + "docstrings", + "gource", + "Hefni", + "hefniraera", + "Isochrones", + "kartoza", + "Kartoza", + "marp", + "Marp", "oversaturatin", - "sandboxed", "pgdata", - "gource", + "pytest", + "qgis", + "QGIS", + "sandboxed", + "timlinux", "Visualise", "docstrings", "qgis", @@ -20,6 +26,7 @@ "timlinux", "Lindie", "Strijdom", - "linstrijdom" + "linstrijdom", + "visualising" ] -} \ No newline at end of file +} diff --git a/img/culinaryfacilities-collection.png b/img/culinaryfacilities-collection.png new file mode 100644 index 0000000..263f35d Binary files /dev/null and b/img/culinaryfacilities-collection.png differ diff --git a/img/culinaryfacilities-erd.png b/img/culinaryfacilities-erd.png new file mode 100644 index 0000000..b6a6aaf Binary files /dev/null and b/img/culinaryfacilities-erd.png differ diff --git a/img/culinaryfacilities-forms.png b/img/culinaryfacilities-forms.png new file mode 100644 index 0000000..b551381 Binary files /dev/null and b/img/culinaryfacilities-forms.png differ diff --git a/img/culinaryfacilities-model.png b/img/culinaryfacilities-model.png new file mode 100644 index 0000000..ed157a4 Binary files /dev/null and b/img/culinaryfacilities-model.png differ diff --git a/img/culinaryfacilities-results.png b/img/culinaryfacilities-results.png new file mode 100644 index 0000000..6b06e22 Binary files /dev/null and b/img/culinaryfacilities-results.png differ diff --git a/img/interns/hefni-raera.png b/img/interns/hefni-raera.png new file mode 100644 index 0000000..1a5f3dd Binary files /dev/null and b/img/interns/hefni-raera.png differ diff --git a/presentations/3-culinaryfacilities.md b/presentations/3-culinaryfacilities.md new file mode 100644 index 0000000..8d2c88d --- /dev/null +++ b/presentations/3-culinaryfacilities.md @@ -0,0 +1,128 @@ +--- +marp: true +theme: infrastructure +class: _lead +header: 'Infrastructure Mapper' +footer: 'Kartoza (Pty) Ltd. 2025' +--- + + + + +# 🌍 *Infrastructure Mapper - Culinary Facilities* + +## *Hefni Rae R A* + +πŸ“… *04/07/2025* + +--- + +## πŸ‘©β€πŸ’» About Me + +![bg left](../img/interns/hefni-raera.png) + +- Intern at **Kartoza** +- Bachelor of Engineering, majored in Geodetic Engineering +- Currently exploring GIS with a growing interest in open-source GIS. Passionate about GIS and map styling. +- Tools used: QGIS, QFieldCloud, PostgreSQL, pgAdmin, VS Code, Marp, GitHub, etc. + +--- + +## 🧱 The Model + +![ERD](../img/culinaryfacilities-erd.png) + +--- + +## πŸ“‹ The Forms + +QGIS smart forms created to collect and validate field data efficiently. + +![Forms Collage](../img/culinaryfacilities-forms.png) + +--- + +## 🏞️ Field Collection + +> Data collected in the field using mobile GIS apps and GPS-enabled devices. + +--- + +## πŸ—ΊοΈ Collection Results + +- **Total features collected:** + - Points: 80 +- **Area covered:** 15 kmΒ² + +![Map of Features](../img/culinaryfacilities-collection.png) + +--- + +## ❓ Analysis Problem + +- How can we determine culinary facilities that are reachable within a specific travel time from a central point? +- Which culinary facilities that can be reached within 8 minutes and offer the best combination of **low price**, **high ratings**, specific **facilities** like Wi-Fi and indoor seating, and specific **category** like Cafe/Bakery? + +--- + +## βš™οΈ Methodology + +- A custom QGIS Model Designer diagram used for repeatable spatial processing. + +![QGIS Model](../img/culinaryfacilities-model.png) + +--- + +## πŸ“Š Results + +- Isochrones analysis output +- Features within specific travel time and given parameters. +![Results](../img/culinaryfacilities-results.png) + +--- + +## πŸ’‘ Insights + +- Average Price Range by Category +- Rating Distribution +- Top Categories with High Ratings +- Most common facility +- Most common category +- Facilities Coverage +- Facilities by Category + +--- + +## πŸ”¬ Further Research + +If I had more time, I would: + +- Develop a specific travel mode for motorcycles to better represent real conditions, possibly using custom routing technology. +- Improve the model so users can select facilities and categories using dropdowns connected to the lookup table, ensuring updates are reflected automatically. +- Increase the study area and collect more data to improve the analysis + +--- + +## 🧳 My Internship Experience + +### Highlights + +- βœ… Mastered QGIS and explored various GIS tools and workflows +- πŸ” Contributed to impactful projects +- 🌟 Improved problem-solving, adaptability, and critical thinking +- ⏰ Enhanced time management while balancing multiple tasks and responsibilities +- 🌍 Improved English communication skills through professional and collaborative engagements + +--- + +## πŸ“§ Contact Me + +πŸ‘€ Hefni Rae R. A. +πŸ“¨ [hefniraera17@gmail.com](mailto:hefniraera17@gmail.com) +πŸ”— [linkedin.com/in/hefniraera](https://www.linkedin.com/in/hefniraera/) +πŸ’Ό [github.com/hefniraera](https://github.com/hefniraera) + +--- + +> πŸ€– **Prompt:** Create a GIS related image for the Analysis Problem slide +> \ No newline at end of file diff --git a/sql/12-culinary.md b/sql/12-culinary.md index 51d63ea..c21a0f6 100644 --- a/sql/12-culinary.md +++ b/sql/12-culinary.md @@ -6,38 +6,58 @@ The **Culinary** component models food service infrastructure, such as kitchens, **Entities from `sql/12-culinary.sql`:** -- `culinary_facility_type`: Lookup table for types of culinary facilities (e.g., kitchen, canteen, pantry). -- `culinary_facility`: Represents individual culinary facilities, with geometry and a reference to `culinary_facility_type`. -- `food_storage`: Represents food storage areas, with geometry and attributes for capacity and type. +- `culinary_category`: Lookup table for culinary categories (e.g., traditional, fast food). Includes attributes such as name, notes, and metadata for updates. + +- `culinary_facility`: Represents individual culinary facilities, including attributes like name, description, rating, price range, and location (geometry). Also references `culinary_category` to indicate the category of the facility. + +- `facility_type`: Lookup table for types of facilities associated with culinary spots (e.g., parking lot, restroom, playground). Includes descriptive attributes and metadata for updates. + +- `culinary_facility_types`: Association table linking `culinary_facility` with `facility_type`. Represents a many-to-many relationship between facilities and their associated types, with additional metadata and optional notes for the association. ```mermaid erDiagram - culinary_facility_type { + culinary_category { UUID uuid PK TEXT name + TEXT notes TIMESTAMP last_update TEXT last_update_by } + culinary_facility { UUID uuid PK - UUID culinary_facility_type_uuid FK - GEOMETRY geometry TEXT name + TEXT description + TEXT notes + DECIMAL rating_value + DECIMAL min_price + DECIMAL max_price + GEOMETRY geometry TIMESTAMP last_update TEXT last_update_by + UUID culinary_category_uuid FK } - food_storage { + + facility_type { UUID uuid PK - GEOMETRY geometry TEXT name - INTEGER capacity_kg - TEXT storage_type + TEXT description + TIMESTAMP last_update + TEXT last_update_by + } + + culinary_facility_types { + UUID uuid PK + UUID culinary_facility_uuid FK + UUID facility_type_uuid FK + TEXT notes TIMESTAMP last_update TEXT last_update_by } - culinary_facility_type ||--o{ culinary_facility : "has many" - culinary_facility ||--o{ food_storage : "contains" + culinary_category ||--o{ culinary_facility : "has many" + culinary_facility ||--o{ culinary_facility_types : "has associations" + facility_type ||--o{ culinary_facility_types : "associated with" ``` > πŸ€– **Prompt:** Add a subsection to here which has: