Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ npm-debug.log
static
.env
.DS_Store
_site
12 changes: 12 additions & 0 deletions app/a-z.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: page
title: By topic
---
{% from "macros/service-item.njk" import appServiceItem %}

{# TODO: group into A to Z, then sort by name #}
<ul class="govuk-list govuk-list--spaced">
{%- for id, service in services -%}
{{ appServiceItem(service, id) }}
{%- endfor %}
</ul>
Binary file removed app/assets/images/favicon.ico
Binary file not shown.
3 changes: 0 additions & 3 deletions app/assets/javascripts/application.js

This file was deleted.

4 changes: 2 additions & 2 deletions app/assets/stylesheets/application.scss
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ $_font-family: system-ui, sans-serif;
$govuk-link-visited-colour: #333366
);

// Import GOV.UK Prototype Components
@forward "pkg:@x-govuk/govuk-prototype-components/masthead";
// Use GOV.UK Eleventy Plugin components
@use "pkg:@x-govuk/govuk-eleventy-plugin";

// Application components
@forward "list";
Expand Down
67 changes: 67 additions & 0 deletions app/contribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
layout: page
title: Contribute
---

This is an unofficial community project to catalogue and document the different digital services UK Government departments have developed and are running.

The project aims to make it easier for digital teams to discover other services – which may be related to the one they are working on – and to improve cross-Government collaboration.

You can contribute to this project by:

- [Adding missing services which you know about](#add-a-missing-service)
- [Updating information about the services listed](#update-information-about-a-service)
- [Improving the presentation of this website](#improve-the-website)

## Add a missing service

If a service you know of is missing, you can add it by following these steps:

1. Visit the list of services in GitHub.
2. Click on the ‘Create new file’ button
3. In the box labelled ‘Name your file’, type in the name of the service you want to add in lowercase, with spaces replaced by hyphens, followed by ‘.json’. For example, `check-your-state-pension.json`.
4. In the larger empty box below, copy and paste the contents of [the service template file](https://raw.githubusercontent.com/x-govuk/govuk-services/main/data/services/_template.json).
5. Replace all the relevant fields with details about the service you’re adding (for example, name and organisation). Any that you don’t know should be left blank.
6. Click the ‘Propose new file’ button
7. Click the ‘Create pull request’ button.

Leave an optional comment, and then press the ‘Create pull request’ button again.
Thanks for your contribution! This will send a public request to our project team to add your service.

We may not reply straight away as this project is run during people’s spare time. We’ll try and respond as soon as we can, either to accept your request and add it to the website, or to ask for some clarifications.

If you spot multiple missing services, repeat this process for each service.

If any part of this process is confusing or your get stuck, you can [create an issue](https://github.com/x-govuk/govuk-services-list/issues) and we will try and help.

## Update information about a service

If the information listed about a service is incorrect, out-of-date, or missing some metadata, please help us update it.

The simplest way to do this is to [create an issue on GitHub](https://github.com/x-govuk/govuk-services-list/issues). You will need to create a free GitHub account first.

If you are more familiar with GitHub and JSON, you can follow these steps to open a pull request:

1. Visit the list of services in GitHub.
2. Find the service you’d like to update. The name of the file will match the last part of the URL. Click on the file name.
3. You should see file containing the current information about that service. Click on the ‘Edit this file’ button, which is displayed as a pencil icon.
4. Update as much of the content as you can
5. Press the ‘Propose file change’ button at the bottom
6. Click the ‘Create pull request’ button.
7. Leave an optional comment, and then press the ‘Create pull request’ button again.

Thanks for your contribution! This will send a public request to our project team to update your service information.

We may not reply straight away as this project is run within people’s spare time. We’ll try and respond as soon as we can, either to accept your changes and update the website, or to ask for some clarifications.

If you spot updates to make for multiple services, repeat this process for each service.

If any part of this process is confusing or your get stuck, you can [create an issue](https://github.com/x-govuk/govuk-services-list/issues) and we will try and help.

## Improve the website

We welcome ideas to improve the presentation or functionality of this website!

The website is a Node.js application. The [source code](https://github.com/x-govuk/govuk-services-list) is available on GitHub.

Please suggest your changes either as a pull request, or via [opening an issue](https://github.com/x-govuk/govuk-services-list/issues).
13 changes: 13 additions & 0 deletions app/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
homepage: true
layout: product
title: A community-maintained list of digital services from the UK&nbsp;government
description: This list aims to help designers and developers discover and learn from other digital services.
image:
src: /assets/images/homepage-illustration.svg
startButton:
text: Explore the list
href: /a-z
---

TODO
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{%- from "govuk/components/tag/macro.njk" import govukTag %}

{%- macro appServiceItem(service) %}
{%- macro appServiceItem(service, id) %}
<li>
<a class="govuk-link" href="/service/{{ service.slug }}">
<a class="govuk-link" href="/service/{{ id }}">
{{- service.name -}}
</a>
{% for tag in service.tags -%}
Expand Down
File renamed without changes.
6 changes: 6 additions & 0 deletions app/organisation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: page
title: By organisation
---

TODO
6 changes: 6 additions & 0 deletions app/phase.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: page
title: By phase
---

TODO
130 changes: 130 additions & 0 deletions app/service.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
---
layout: page
title: TODO
pagination:
data: services
alias: id
size: 1
resolve: keys
permalink: "service/{{ pagination.items[0] }}/"
---

{% from "govuk/components/summary-list/macro.njk" import govukSummaryList %}
{% from "govuk/components/tag/macro.njk" import govukTag %}

{% set service = services[id] %}

{# TODO: add logic back in for pluralisation #}
{% set organisationKey = "Organisation(s)" %}

{% set organisationHtml %}
{# TODO: iterate these if an array, and add link #}
{{ service.organisation }}
{% endset %}

{% set themeHtml %}
<a class="govuk-link" href="/topic#{{ service.theme | slugify }}">
{{- service.theme -}}
</a>
{% endset %}

{# TODO: get plural filter working #}
{% set startPageKey = "Start page(s)" %}

{% set startPageHtml %}
{# TODO: get working where startPage is an array #}
{% if service.startPage %}
<p class="govuk-body">
<a class="govuk-link" href="{{ service.startPage[0] }}">Start page on GOV.UK</a>
</p>
{% endif %}
{% endset %}

{% set notesHtml %}
{%- for tag in service.tags -%}
{%- if tag == "Top 75" -%}
<p class="govuk-body">
One of the <a href="/top-75" class="govuk-link">top 75 prioritised services</a>
</p>
{%- endif %}

{%- if tag == "Original 25 exemplars" -%}
<p class="govuk-body">
One of the <a href="/original-25-exemplars" class="govuk-link">original 25 exemplar services</a>
</p>
{%- endif %}

{%- if tag == "GOV.UK One Login" -%}
<p class="govuk-body">
Uses <a href="/govuk-one-login" class="govuk-link">GOV.UK One Login</a>
</p>
{% endif %}
{%- endfor %}
{% endset %}

{% set sourceCodeHtml %}
<ul class="govuk-list">
{%- for sourceCode in service.sourceCode -%}
<li>
<a class="govuk-link" href="{{ sourceCode.href }}">
{{- sourceCode.text -}}
</a>
</li>
{%- endfor %}
</ul>
{% endset %}

<h2 class="govuk-heading-m">About this service</h2>

{{ govukSummaryList({
rows: [
{
key: {
text: organisationKey
},
value: {
html: organisationHtml
}
},
{
key: {
text: "Topic"
},
value: {
html: themeHtml
}
} if service.theme,
{
key: {
text: "Phase"
},
value: {
html: govukTag({ text: service.phase })
}
} if service.phase,
{
key: {
text: startPageKey
},
value: {
html: startPageHtml
}
} if service.startPage | length > 0,
{
key: {
text: "Notes"
},
value: {
html: notesHtml
}
} if service.tags,
{
key: {
text: "Source code"
},
value: {
html: sourceCodeHtml
}
} if service.sourceCode
]
}) }}
6 changes: 6 additions & 0 deletions app/topic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: page
title: By topic
---

TODO
91 changes: 91 additions & 0 deletions eleventy.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import { govukEleventyPlugin } from "@x-govuk/govuk-eleventy-plugin";

export default function (eleventyConfig) {
const serviceName = "GOV.UK Services list";

// Register the plugin
eleventyConfig.addPlugin(govukEleventyPlugin, {
templates: {},
header: {},
footer: {
meta: {
items: [
{
text: "Domains",
href: "/domains",
},
{
text: "Screenshots",
href: "/screenshots",
},
{
text: "Verbs",
href: "/verbs",
},
{
text: "Original 25 exemplar services",
href: "/original-25-exemplars",
},
{
text: "Top 75 services",
href: "/top-75",
},
{
text: "GOV.UK One Login",
href: "/govuk-one-login",
},
],
},
},
serviceNavigation: {
serviceName,
serviceUrl: "/",
navigation: [
{
text: "A to Z",
href: "/a-z",
},
{
text: "By topic",
href: "/topic",
},
{
text: "By organisation",
href: "/organisation",
},
{
text: "By phase",
href: "/phase",
},
{
text: "Contribute",
href: "/contribute",
},
],
},
stylesheets: ["/assets/stylesheets/application.css"],
themeColor: "#2288aa",
});

// Enable X-GOVUK brand
eleventyConfig.addNunjucksGlobal("xGovuk", true);

// Collections
// eleventyConfig.addCollection('post', (collection) => {
// return collection.getFilteredByGlob('app/posts/*.md')
// })

// Pass through
eleventyConfig.addPassthroughCopy("./app/assets/images");

return {
dataTemplateEngine: "njk",
htmlTemplateEngine: "njk",
markdownTemplateEngine: "njk",
dir: {
input: "app",
includes: "_includes",
data: "../data",
},
};
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading