Skip to content

Commit

Permalink
add a mock ai chatbot (#41)
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisns authored Nov 19, 2024
1 parent 7ed914c commit 30324c0
Show file tree
Hide file tree
Showing 8 changed files with 331 additions and 1 deletion.
4 changes: 4 additions & 0 deletions .eleventy.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ const { EleventyRenderPlugin } = require("@11ty/eleventy")
const fs = require("fs")
const util = require("util")

const pluginMermaid = require("@kevingimbel/eleventy-plugin-mermaid")

function gitRev() {
const rev = fs.readFileSync(".git/HEAD").toString().trim()
if (rev.indexOf(":") === -1) return rev
Expand Down Expand Up @@ -42,6 +44,7 @@ function extractContent(markdown, start, end) {

module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(EleventyRenderPlugin)
eleventyConfig.addPlugin(pluginMermaid)

eleventyConfig.addPlugin(govukEleventyPlugin, {
header: {
Expand Down Expand Up @@ -71,6 +74,7 @@ module.exports = function (eleventyConfig) {
},
{ text: "Access", href: "/access" },
{ text: "Optimise", href: "/optimise/" },
{ text: "Help Me!", href: "/begin/" },
],
},
footer: {
Expand Down
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,8 @@
"prettier-plugin-sh"
]
},
"packageManager": "[email protected]"
"packageManager": "[email protected]",
"dependencies": {
"@kevingimbel/eleventy-plugin-mermaid": "^2.2.1"
}
}
109 changes: 109 additions & 0 deletions src/begin/check-assumptions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
---
layout: page
title: Check assumptions
includeInBreadcrumbs: true
---

{% from "govuk/components/button/macro.njk" import govukButton %}
{% from "govuk/components/radios/macro.njk" import govukRadios %}
{% mermaid_js %}

## Please review the following assumptions made based on what you've described

To tackle the goal of ensuring that children within the London Borough of Hackney have access to their entitled free school meals, here’s an expanded plan covering the key touchpoints, stakeholders, data management, and communication strategies:

### 1. **Touchpoints in the Provision of Free School Meals**

- **Schools**: Primary and secondary schools within the borough are essential touchpoints as they are where the meals will be provided and distributed.
- **Catering Suppliers**: These are the companies or services contracted to prepare and deliver meals to the schools. They play a critical role in the quality and type of meals provided.
- **Parents/Guardians**: Engagement with parents is crucial for gathering information on dietary needs and ensuring they are aware of the free meal provisions.
- **Local Education Authorities**: They oversee the implementation and monitoring of the program, ensuring that the process aligns with policies and regulations.

### 2. **Availability and Provision of Meals**

- **School Canteens**: Most schools have on-site facilities where meals are prepared or served. Understanding their current capacities and limitations will help in assessing whether additional resources or support is needed.
- **Centralized Meal Preparation**: Some schools might rely on off-site kitchens or third-party catering services to deliver meals, especially for schools without full kitchen facilities.
- **Grab-and-Go Options**: For schools with time or space constraints, pre-prepared meal options could be offered for students to pick up and consume during lunch periods.

### 3. **Key Stakeholders and Their Roles**

- **School Administration**: School principals and administrative staff need to be informed about new processes or changes in how meals are distributed.
- **Teachers**: Teachers, particularly those supervising meal times, should be briefed to help monitor and support the students’ meal experience.
- **Catering Suppliers**: The suppliers should be aware of any changes in dietary requirements, volume adjustments, and timelines to accommodate shifts in demand.
- **Nutritionists and Dietitians**: Consulting with these professionals can ensure that the meals meet dietary standards and cater to specific health needs of students.

### 4. **Data Ownership and Access**

- **Local Council Databases**: The London Borough of Hackney may have existing records on children eligible for free school meals. Collaborating with the data management department is essential to access this information.
- **School Enrollment Data**: Schools themselves might maintain records that indicate eligibility and contact information for parents/guardians.
- **Public Health Records**: Data from public health departments might provide insights into dietary requirements and allergy considerations relevant to specific schools or areas.
- **Parents/Guardians**: Collecting data directly from parents is necessary for dietary restrictions, religious requirements, and other specific needs of the children.

### 5. **Engaging with Parents for Dietary Requirements and Needs**

- **Online Surveys/Forms**: Develop user-friendly, secure online forms for parents to fill out detailing their children’s dietary needs, allergies, and preferences.
- **School Meetings and Workshops**: Host sessions either in person or virtually to inform parents about the free school meal program and discuss how they can submit their children’s dietary requirements.
- **Direct Communication**: Use emails, text messages, and school apps to remind parents to submit relevant information.
- **Feedback Mechanisms**: Establish an ongoing feedback loop where parents can report on the adequacy and quality of the meals provided and suggest adjustments based on their children’s needs.

### 6. **Additional Considerations**

- **Privacy and Data Security**: Ensure that all data collected from parents and schools is handled according to data protection laws and policies, safeguarding children’s personal information.
- **Training for Staff**: Ensure that school staff, especially those involved in meal distribution and student interaction, are trained on dietary and allergy protocols.
- **Meal Quality Checks**: Regularly monitor the quality of meals provided to ensure they meet nutritional standards and are well-received by students.
- **Communications Strategy**: Develop clear communication materials for parents, schools, and catering partners to outline the processes, the benefits of the program, and any updates or changes.

### 7. **Final Goal**

The goal is to build a streamlined and well-communicated approach that ensures every child entitled to free school meals has reliable access to nutritious, appropriate food options. This requires coordination between various stakeholders, continuous monitoring, and an emphasis on transparency and engagement with the families involved.

## Proposed action plan

```mermaid
graph TD
A[Start: Head of Local Education identifies the need] --> B[Engage with Local Council for Data Access]
B --> C[Access School Enrollment Data]
B --> D[Consult Public Health Records for Allergy Information]
C --> E[Notify School Administration about Initiative]
D --> E
E --> F[Brief Teachers on Monitoring Responsibilities]
E --> G[Inform Catering Suppliers about New Requirements]
G --> H[Collaborate with Nutritionists for Dietary Planning]
H --> I[Set Up Online Forms for Parents]
I --> J[Collect Dietary Requirements and Needs from Parents]
J --> K[Analyze Data for Meal Planning]
K --> L[Share Updated Requirements with Catering Suppliers]
L --> M[Train School Staff on Protocols]
M --> N[Start Providing Meals at Schools]
N --> O[Monitor Meal Distribution and Quality]
O --> P[Collect Feedback from Parents and Teachers]
P --> Q[Adjust Meal Plans as Needed]
Q --> R[Continuous Monitoring and Communication]
R --> S[End: Successful Implementation of Meal Program]
```

{{ govukRadios({
name: "contact",
fieldset: {
legend: {
text: "Is this right?",
isPageHeading: true
}
},
items: [
{
text: "Yes",
checked: true,
disabled: true
},
{
text: "No",
disabled: true
}
]
}) }}

{{ govukButton({
text: "Create a bill of materials",
href: "/begin/review-bill-of-materials"
}) }}
5 changes: 5 additions & 0 deletions src/begin/get-access.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
layout: post
title: TODO
includeInBreadcrumbs: true
---
41 changes: 41 additions & 0 deletions src/begin/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
layout: post
title: Begin
includeInBreadcrumbs: true
eleventyNavigation:
key: Begin
---

{% from "govuk/components/textarea/macro.njk" import govukTextarea %}
{% from "govuk/components/input/macro.njk" import govukInput %}
{% from "govuk/components/button/macro.njk" import govukButton %}

{{ govukInput({
label: {
text: "What role are you in?"
},
value: "Unicorn Officer",
disabled: true
}) }}

{{ govukInput({
label: {
text: "Who do you work for?"
},
value: "London Borough of Hackney",
disabled: true
}) }}

{{ govukTextarea({
name: "explain",
label: {
text: "Can you describe what you want to do, or the problem you want to solve?"
},
value: "I want to help children in schools within my council access the free school meals they are entitled to.",
disabled: true
}) }}

{{ govukButton({
text: "Next",
href: "/begin/check-assumptions"
}) }}
146 changes: 146 additions & 0 deletions src/begin/review-bill-of-materials.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
---
layout: page
title: Review bill of materials
includeInBreadcrumbs: true
---

{% from "govuk/components/button/macro.njk" import govukButton %}

{% from "govuk/components/checkboxes/macro.njk" import govukCheckboxes %}

To effectively implement a system ensuring that children in the London Borough of Hackney have access to their entitled free school meals, the following components are essential:

{{ govukCheckboxes({
fieldset: {
legend: {
text: "1. Data Sources",
classes: "govuk-fieldset__legend--m"
}
},
items: [
{
text: "<strong>Department for Education (DfE):</strong> Provides data on school enrollments, pupil demographics, and free school meal eligibility.",
checked: true
},
{
text: "<strong>Department for Work and Pensions (DWP):</strong> Offers information on household incomes and benefits, aiding in identifying eligible families.",
checked: true
},
{
text: "<strong>Catering Supplier Data:</strong> Fictional supplier 'NutriServe Ltd.' supplies menus, nutritional information, and meal delivery schedules.",
checked: true
}
]
}) }}

{{ govukCheckboxes({
fieldset: {
legend: {
text: "2. Digital Platforms and Tools",
classes: "govuk-fieldset__legend--m"
}
},
items: [
{
text: "<strong>Gov.uk Forms:</strong> Utilized for creating and managing online forms to collect dietary requirements and consent from parents.",
checked: true
},
{
text: "<strong>Gov.uk Notify:</strong> Employed to send notifications and reminders to parents and guardians regarding form submissions and updates.",
checked: true
},
{
text: "<strong>Low-Code Platform:</strong> Fictional provider 'QuickBuild Solutions' offers a platform to develop applications for data integration, workflow automation, and reporting without extensive coding.",
checked: true
}
]
}) }}

{{ govukCheckboxes({
fieldset: {
legend: {
text: "3. Communication and Support Services",
classes: "govuk-fieldset__legend--m"
}
},
items: [
{
text: "<strong>Call Centre Provider:</strong> Fictional service 'HelpConnect Services' manages inbound and outbound communications with parents, addressing inquiries and assisting with form completion.",
checked: true
}
]
}) }}

{{ govukCheckboxes({
fieldset: {
legend: {
text: "4. Integration and Workflow Components",
classes: "govuk-fieldset__legend--m"
}
},
items: [
{
text: "<strong>Data Integration Tools:</strong> Facilitate the merging of datasets from DfE, DWP, and NutriServe Ltd. to create comprehensive profiles for meal planning.",
checked: true
},
{
text: "<strong>Workflow Automation:</strong> Automates processes such as data validation, notification dispatch, and report generation to enhance efficiency.",
checked: true
},
{
text: "<strong>Reporting and Analytics:</strong> Generates insights on meal uptake, dietary needs, and program effectiveness to inform decision-making.",
checked: true
}
]
}) }}

{{ govukCheckboxes({
fieldset: {
legend: {
text: "5. Security and Compliance",
classes: "govuk-fieldset__legend--m"
}
},
items: [
{
text: "<strong>Data Protection Measures:</strong> Ensure compliance with data protection regulations, safeguarding sensitive information.",
checked: true
},
{
text: "<strong>User Authentication:</strong> Secure access controls for staff, parents, and partners interacting with the system.",
checked: true
}
]
}) }}
{{ govukCheckboxes({
fieldset: {
legend: {
text: "6. Training and Support",
classes: "govuk-fieldset__legend--m"
}
},
items: [
{
text: "<strong>Staff Training Programs:</strong> Educate school staff and administrators on using the new system and understanding data privacy protocols.",
checked: true
},
{
text: "<strong>Parent Support Resources:</strong> Provide guides and assistance to help parents navigate the online forms and communication channels.",
checked: true
}
]
}) }}

By integrating these components, the initiative aims to create a seamless, efficient, and user-friendly system that ensures all eligible children receive their entitled free school meals, while maintaining high standards of data security and user support.

{{ govukButton({
text: "Get access to all of these",
href: "/begin/get-access"
}) }}

### What happens next?

You will get immediate access to try all the above services, with 'synthetic' and the environments will expire after 48 hours.
You can use this to evaluate the products, and develop and understand the operational costs fully.

When you're ready, you can [request access to the live environment](/begin/get-access) which will provision the production services you need and where relevant (usually for data that includes Personally Identifiable Information) walk you through the establishing your legal basis for access, and any other license terms you are required to accept.
5 changes: 5 additions & 0 deletions src/try/aws-connect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
layout: post
title: TODO
includeInBreadcrumbs: false
---
17 changes: 17 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -831,6 +831,15 @@ __metadata:
languageName: node
linkType: hard

"@kevingimbel/eleventy-plugin-mermaid@npm:^2.2.1":
version: 2.2.1
resolution: "@kevingimbel/eleventy-plugin-mermaid@npm:2.2.1"
dependencies:
htmlencode: "npm:^0.0.4"
checksum: 10c0/d9ab14368dd9b6f070f9e6c5884278b902a032d6a860d2a413b26e201fba7870897166a65cf2a665c1b0ac42967768147acff62129df84a418c725fe46dc9f57
languageName: node
linkType: hard

"@nodelib/fs.scandir@npm:2.1.5":
version: 2.1.5
resolution: "@nodelib/fs.scandir@npm:2.1.5"
Expand Down Expand Up @@ -2986,6 +2995,13 @@ __metadata:
languageName: node
linkType: hard

"htmlencode@npm:^0.0.4":
version: 0.0.4
resolution: "htmlencode@npm:0.0.4"
checksum: 10c0/328aff4d168feb67821732071b3e01e9934fdbb84cd1827dcecc558b9f014db8b788af9214349dd83167a417ccdd5e83725e413dfc94cd513002441df541625b
languageName: node
linkType: hard

"htmlparser2@npm:^7.1.1":
version: 7.2.0
resolution: "htmlparser2@npm:7.2.0"
Expand Down Expand Up @@ -4617,6 +4633,7 @@ __metadata:
resolution: "ndx@workspace:."
dependencies:
"@11ty/eleventy": "npm:^2.0.1"
"@kevingimbel/eleventy-plugin-mermaid": "npm:^2.2.1"
"@x-govuk/govuk-eleventy-plugin": "npm:^6.2.1"
husky: "npm:^9.0.11"
jest: "npm:^29.7.0"
Expand Down

0 comments on commit 30324c0

Please sign in to comment.