diff --git a/README.md b/README.md
index fe5d58c..8f94f71 100644
--- a/README.md
+++ b/README.md
@@ -13,55 +13,6 @@ Your one-stop shop for all things GIS! Easily learn about GIS in an interactive
## Motivation
Mapmakers use maps as a form of graphical communication. Map readers (such as yourself) vary in levels of map literacy. To bridge the gap between mapmakers and map readers, the site aims to promote map literacy and critical thinking by concentrating on improving map reader spatial inquiry competencies in an interactive / storytelling self-paced GIS learning environment. The site is meant to be open source and act as a knowledge base that contributors can build upon.
-## Curriculum
-
-Have a chapter idea? Look below on [how to contribute](https://github.com/InteractiveLearner/interactivelearner-gis#how-to-contribute).
-
-The incomplete chapters are mentioned in the [Issues](https://github.com/InteractiveLearner/interactivelearner-gis/issues) tab under the *Content* label.
-
-- [x] [Projections](https://www.interactivelearner-gis.com/projections)
-- [x] [Scale](https://www.interactivelearner-gis.com/scale)
-- [x] [Visual Encoding](https://www.interactivelearner-gis.com/visual)
-- [x] [Types of Maps](https://www.interactivelearner-gis.com/thematic)
-- [x] [Classification Schemes](https://www.interactivelearner-gis.com/classification)
-- [x] [Spatial Autocorrelation Statistics](https://www.interactivelearner-gis.com/spatial-stats)
-- [ ] Lying with Maps
-- [x] [Spatial data and its types](https://www.interactivelearner-gis.com/spatial-data)
- - Will touch on geometric primitives
-- [ ] Spatial Analysis
-- [ ] Web GIS
-- [ ] Relational databases
-
-
-
-## Planned features for a better learning experience
-
-- [ ] Implement report system using local storage to track user progress
-- [ ] Grade tracking system to assess learning (also local storage)
-- [ ] Support multiple languages
-
## How to contribute
### Developers and content writers
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index 3fb6bdc..36fcde6 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -1,5 +1,7 @@
import { defineConfig } from "vitepress";
-import { generateSidebar } from 'vitepress-sidebar';
+import { generateSidebar } from "vitepress-sidebar";
+// import { viteStaticCopy } from "vite-plugin-static-copy";
+// import path from "path";
// refer https://vitepress.dev/reference/site-config for details
export default defineConfig({
@@ -32,6 +34,7 @@ export default defineConfig({
{ text: "Classifying data", link: "/lessons/classification" },
{ text: "Spatial autocorrelation", link: "/lessons/spatial-stats" },
{ text: "Relational databases", link: "/lessons/relational-db" },
+ { text: "WebGIS", link: "/lessons/web-gis" },
{ text: "Misleading maps", link: "/lessons/misleading" },
],
},
@@ -42,7 +45,7 @@ export default defineConfig({
},
sidebar: generateSidebar({
// ============ [ RESOLVING PATHS ] ============
- documentRootPath: '/docs',
+ documentRootPath: "/docs",
// ============ [ GETTING MENU TITLE ] ============
useTitleFromFrontmatter: true,
// ============ [ STYLING MENU TITLE ] ============
@@ -52,7 +55,7 @@ export default defineConfig({
frontmatterOrderDefaultValue: 9,
}),
search: {
- provider: 'local'
+ provider: "local",
},
},
lastUpdated: true,
@@ -65,6 +68,21 @@ export default defineConfig({
},
},
},
+ vite: {
+ plugins: [
+ // viteStaticCopy({
+ // targets: [
+ // {
+ // src: path.resolve(
+ // __dirname,
+ // "../../node_modules/package-name/**/*"
+ // ),
+ // dest: "",
+ // },
+ // ],
+ // }),
+ ],
+ },
head: [
["link", { rel: "icon", type: "image/png", href: "/logo192.png" }],
["meta", { name: "theme-color", content: "#144d1e" }],
diff --git a/docs/lessons/relational-db.md b/docs/lessons/relational-db.md
index e297639..4c33f37 100644
--- a/docs/lessons/relational-db.md
+++ b/docs/lessons/relational-db.md
@@ -5,6 +5,7 @@ author: Omar Kawach
order: 8
---
+
::: warning
Interactive examples are a work in progress for this page.
:::
diff --git a/docs/lessons/web-gis.md b/docs/lessons/web-gis.md
new file mode 100644
index 0000000..48fd966
--- /dev/null
+++ b/docs/lessons/web-gis.md
@@ -0,0 +1,294 @@
+---
+title: Web GIS
+description: GIS and web development technologies
+author: Omar Kawach
+order: 8
+---
+
+
+
+::: warning
+Interactive examples are a work in progress for this page.
+:::
+
+# Web GIS
+
+By {{ $frontmatter.author }}
+
+Making a beautiful map requires a lot of effort.
+If your map is only for illustration, you may only need a printed or static digital version.
+
+However, expectations have evolved. People today expect their maps to be more engaging, interactive, and accessible. They are looking for maps with dynamic content that encourage exploration and provide more profound insights.
+
+Web GIS can help with that, but depending on what you're trying to achieve, implementing Web GIS at your organization can get quite technical.
+
+Web GIS combines the power of the browser and GIS tools for capturing, storing, and analyzing spatial data, enabling users to access spatial data from anywhere, on any device.
+
+Below are **_some_** key considerations for a successful Web GIS based mapping application:
+
+- Choose a web mapping library that suits your needs
+- Decide on a frontend web development framework
+- Assuming your data has already been preprocessed and ready for publishing, consider where you will host your data
+ - Client side or server side?
+
+## Web mapping libraries
+
+To include maps in a web application, the easiest and most common way is through mapping libraries. Mapping libraries provide out-of-the-box support for visualizations and interactions in maps. Common choices are as follows:
+
+- Open-source libraries:
+ - [Leaflet](https://leafletjs.com/)
+ - [MapLibre GL JS](https://maplibre.org/)
+ - [OpenLayers](https://openlayers.org/)
+ - [turf.js](https://turfjs.org/)
+ - [D3.js](https://d3js.org/d3-geo)
+- Commercial libraries:
+ - [ArcGIS Maps SDK for JavaScript](https://developers.arcgis.com/javascript/latest/)
+ - [Google Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/overview)
+ - [MapBox GL JS](https://docs.mapbox.com/mapbox-gl-js/guides/)
+
+Choosing the best web mapping libraries that suit end user and developer needs is a crucial step for all web development involving maps and/or location services.
+
+::: tip
+You should check out all the different lessons on this site for examples of a few of these libraries.
+The [projections](/lessons/projections) page uses D3, the [scale](/lessons/scale) page uses Leaflet and the [types of maps](/lessons/map-types) page uses the ArcGIS Maps SDK for JavaScript. Leaflet and the JavaScript Maps SDK were used on this page too.
+You can **_usually_** tell which technology was used to author a web map by looking at the attribution at the bottom of the map.
+:::
+
+## Frontend frameworks
+
+Your choice of a [frontend](https://en.wikipedia.org/wiki/Frontend_and_backend) framework can depend on the scale of the website you plan to host your web mapping application on.
+Some web maps can be quite simple like placing a point on a map to help customers find a business.
+For this, the application can be written quickly without extra tools, all you need is HTML/JavaScript/CSS.
+
+::: tip
+If you're new to web development, you should read about the [Document Object Model](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction) (DOM), [HTML](https://developer.mozilla.org/en-US/docs/Glossary/HTML), [JavaScript](https://developer.mozilla.org/en-US/docs/Glossary/JavaScript), and [CSS](https://developer.mozilla.org/en-US/docs/Glossary/CSS).
+:::
+
+