ICT for Civic Data — Turin University 2025-26
# Project Definition
and Proposal Outline
Crash Course — Day 1 Afternoon
civicliteraci.es
--- # Your Angle Note: Transition from morning: "This morning we analysed the RFP together. Now it's your turn: what angle will YOUR response take?" --- ## Choosing your angle You cannot respond to everything in the RFP with equal depth. A strong proposal is **specific**. Consider: - A specific **region** or country (e.g., coastal Bangladesh, the Sahel, Mozambique) - A specific **hazard type** (floods, drought, extreme heat, cyclones) - A specific **population** (children under 5, elderly, displaced communities) - A specific **infrastructure gap** (health facilities, emergency shelters, road access) Your angle determines your research questions, your data sources, and the shape of your proposal. Note: Students should think about what they know or care about. Some may have professional experience in a region. Others may choose based on curiosity. Both are valid starting points. The data availability question will be tested later this afternoon. --- ## What are the risks? Every proposal has risks. The strong ones **name them**. - What data might **not exist** for your chosen region? - What if the data exists but is **too coarse** (national, not district-level)? - What if two data sources use **different geographic boundaries**? - What assumptions are you making about **data quality**? A proposal that acknowledges risks is more credible than one that pretends there are none. Note: Brief. This plants the seed. The risks will become very concrete when students try to find and map data in the next exercise. --- ## Exercise: develop your angle **Individual work — 20 minutes** Write down **1-2 possible angles** for your proposal response: 1. Which **region** or country? 2. Which **hazard type**? 3. Which **population** or **infrastructure gap**? 4. In one sentence, what would your proposal argue? You will use these to form teams after the exercise. Note: Circulate and check that students are being specific enough. "Africa" is not a region. "Natural disasters" is not a hazard type. Push for precision. --- ## Team formation Find **1-2 other students** whose angle is compatible with yours. - You don't need identical angles, just compatible ones - A team focusing on "flood risk in East Africa" can accommodate different infrastructure focuses - Teams of **2-3 people** Once your team is formed, agree on a **shared angle** that combines your perspectives. Note: Manage based on class dynamics. If students cluster naturally, let it happen. If they're hesitant, assign teams. Make sure remote students are integrated. --- # Setting Up Note: "Before we can use AI tools, we need our workspace ready." --- ## Your workspace You need three things: 1. **A GitHub repository** for your team's project 2. **A Codespace** launched from that repository 3. **An agentic CLI tool** installed inside the Codespace If you set this up during the lectures, it should take a few minutes. If not, follow along and ask for help. Note: Most students did this in Lecture 2. This is a quick refresher, not a full tutorial. Circulate and help anyone who is stuck. Remote students may need extra attention. --- ## Exercise: set up your environment **Individual — 20 minutes** 1. One team member creates the repository and invites the others as collaborators 2. Each team member launches a Codespace from the shared repository 3. Install your chosen CLI tool: **Gemini CLI:** ```bash npm install -g @google/gemini-cli ``` **Claude Code or OpenAI Codex:** follow the installation instructions for your tool. 4. Authenticate and verify it works: ask it a simple question. Note: The repository is shared but each student has their own Codespace. This means they can work in parallel on the same codebase. Help anyone stuck on authentication. The goal is everyone has a working agent by the end of this block. --- # Building Your
First Map Note: "Your tools are ready. Now let's use them. By the end of today you will have a published map online." --- ## The goal By the end of this afternoon, your team will have: - Used your AI tool to **find and retrieve** geospatial data relevant to your angle - Built a **Leaflet map** displaying that data - **Published it** on GitHub Pages - A live URL you can share This is your first artifact. It will not be perfect. The point is to go through the full loop once. Note: Set expectations: the map will be rough. That's fine. The value is in practicing the loop: find, extract, build, publish, iterate. Tomorrow we do it with more rigour. --- ## The loop
Find data, Extract, Build map, Publish, Refine
Each cycle produces a **visible result** you can check and improve. - First pass: get something on the map - Second pass: improve the data or add a layer - Third pass: refine the presentation The AI tool handles the technical work. You handle the **decisions**: what data, what to show, what the map should communicate. Note: This is the iteration loop they will use all week. Today they experience it for the first time. The key message: you don't need to get it right the first time. You need to get it visible, then improve. --- ## Step 1: ask your AI tool to find data Start by asking your agent what data exists for your angle.
"I'm working on a proposal about flood preparedness in [your region]. I need geospatial data I can put on a map. What open data sources exist? Compare them on coverage, format, and how to access them."
Review what the AI suggests. **You decide** which source to start with. Note: This is AI as research assistant, not coder. The prompt is deliberately open: let students see what the AI surfaces, then make their own judgment about which source to try first. Encourage them to start with whichever source seems simplest to access. --- ## Step 2: extract and save Ask your agent to write a script that retrieves the data and saves it to your repository.
"Write a Python script that fetches health facility locations in [your region] from [source] and saves the result as a GeoJSON file in data/. Add comments explaining each step. Do not run it yet."
**Read the script first.** Then ask the agent to run it. A script is a **reproducible artifact**. If someone asks how you got this data, you show them the script. Note: Same principle as Lecture 5: script first, review, then run. The script is documentation. Emphasise: do not let the AI just dump data into a file without a script. The script is your methodology. --- ## Step 3: build a map Ask your agent to create a Leaflet map from your data.
"Build a self-contained HTML page with a Leaflet map that displays the GeoJSON file in data/. The map should be centered on [your region] and show each point with a popup containing the name. Save it as index.html."
Open the HTML file in the Codespace preview to check it works. Note: Leaflet is a JavaScript mapping library. The AI writes the HTML and JavaScript. Students don't need to know JavaScript. They need to verify the map shows the right data in the right place. The Codespace has a built-in preview for HTML files. --- ## Step 4: publish on GitHub Pages Commit your files and enable GitHub Pages: 1. **Commit and push:** ```bash git add . git commit -m "first map: [your data description]" git push ``` 2. **Enable Pages:** Repository Settings → Pages → Source: main branch → Save 3. Your map is live at: `https://[username].github.io/[repo-name]/` Note: Walk through this live if needed. GitHub Pages takes a minute or two to deploy. Students should see their map appear at a public URL. This is the moment it clicks: they built something real and it's online. --- ## Step 5: iterate Your first map is a starting point. Now improve it: - **Add a layer:** ask the AI to find a second dataset (e.g., population density, flood zones, admin boundaries) and overlay it on the map - **Improve the popups:** add more fields from the data - **Refine the style:** colours, legend, zoom level - Each improvement: commit, push, check the live page Every commit is a documented step in your process. Note: This is where the rest of the afternoon goes. Teams iterate at their own pace. Some will add multiple layers. Some will spend time getting the first layer right. Both are fine. Circulate and help. Encourage teams to commit frequently so their GitHub history shows the progression. --- ## Exercise: build and publish your map **Team work — rest of the afternoon** 1. Use your AI tool to find geospatial data for your angle 2. Extract it with a documented script 3. Build a Leaflet map and publish it on GitHub Pages 4. Iterate: add layers, improve, push again **Aim for at least two commits** showing progression. When you're done (or when time is called), note down: - What data you found and what you couldn't find - What worked well with the AI tool and what didn't Note: This is the main working block. Teams work at their own pace. The two-commit minimum ensures they experience the iteration loop at least once. The notes at the end feed into tomorrow's work and the wrap-up discussion. --- # Wrap-Up Note: Bring everyone back together. "Let's see what you built." --- ## Show your maps Each team: **share your GitHub Pages URL** and tell us in 2 minutes: 1. What **data** did you put on the map? 2. What was the **hardest part**? 3. What would you **add next**? Note: Quick round. Project each team's map on the main screen if possible. Celebrate what they built. The "add next" question sets up Day 2. --- ## What we produced today **Morning:** - A shared understanding of how to read an RFP strategically - The "show don't tell" insight: demonstrate capacity, don't just describe it **Afternoon:** - Teams with a defined angle - A working development environment - A published map with real data on GitHub Pages - The beginning of your artifact chain Note: Connect the morning framing to the afternoon output. The map is the first piece of "showing, not telling." --- ## Day 2 preview Tomorrow we get serious about data collection: - **Research questions and horizon table** — what data do we actually need? - **Structured data retrieval** — moving from exploration to rigorous collection - **Documentation** — every step documented and reproducible Come with your Codespace ready and your map URL handy. Note: The horizon table moves to Day 2 morning when students have a much clearer picture of what data exists from today's exploration. Day 2 is Find and Get with full rigour. --- # Questions?