Collections serves the GOV.UK navigation pages and organisation pages.
- Browse page: gov.uk/browse
- Topic page: gov.uk/oil-and-gas
- Subtopic page: gov.uk/oil-and-gas/fields-and-wells
- Services and information page: gov.uk/government/organisations/hm-revenue-customs/services-information
- Taxonomy page: gov.uk/education
- Worldwide taxonomy page: gov.uk/world/japan
- Organisation index page: gov.uk/government/organisations
- Organisation page: gov.uk/government/organisations/cabinet-office
- Step by step page: gov.uk/learn-to-drive-a-car
The endpoints and known consumers of this application's APIs are documented in docs/api
- Curated list: a group of content tagged to a subtopic that has been curated into a named list.
- Topic: a named group of sub-topics. (A deprecated name for this is "specialist sector".)
- Sub-topic: a group of content within a topic. (A deprecated name for this is "specialist sub-sector".)
- Root browse page: gov.uk/browse
- Top level browse page: gov.uk/browse/benefits
- Second level browse page: gov.uk/browse/benefits/entitlement
The taxonomy is surfaced on taxon pages, which group together tagged content for that level of the taxonomy into supergroups on the page, e.g: Guidance and Regulation for Funding and finance for students gov.uk/education/funding-and-finance-for-students. Each taxon page also shows a grid of sub-topics at the next level of the taxonomy.
The worldwide taxonomy is rendered on different types of pages depending on whether the taxon has any children.
For example:
- Taxon with children: a content item of type taxon that has
child_taxons
links. None of those child taxons' links havechild_taxons
, in which case we display an accordion view: gov.uk/world/afghanistan - Taxon without children: a content item of type taxon that doesn't have
child_taxons
links. In this case we display an leaf view: gov.uk/world/living-in-afghanistan - Taxon with associated taxons: a content item of type taxon that has
associated_taxons
links. In this case the tagged content of the taxon will include content that is directly tagged to it and also content that has been tagged to any of the associated taxons.
This is a public facing Ruby on Rails application that retrieves browse content from APIs and presents it. There is no underlying persistence layer and all content is retrieved from external sources.
A special case exists within Collections to allow email links on Taxon pages to be generated
such that they point to the email subscription logic in Whitehall. This is
currently implemented in app/helpers/email_helper.rb
with the branching logic
sitting in app/views/taxons/_email_alerts.html
.
The intention is to migrate rendering of World Location pages from Whitehall to
Collections. Whitehall serves these from /government/world/{world_location}
.
Collections will serve these from /world/{world_location}
.
The helper currently tests for base_path
starting with /world
and provides two methods;
one to create an atom link and one to create an email link.
Once email subscriptions for World Locations have been completely ported to use Email Alert Api, this functionality can be removed.
Content for taxon pages is returned by a search in Rummager based on content_ids for world taxonomy pages and content_ids and supergroups for all other taxonomy pages.
- content-store, provides:
- Mainstream browse pages (Root, Top and Second level browse pages)
- Topics
- Subtopics and their curated lists
- rummager, provides:
- latest changes for Topics
- content tagged to a particular Topic, Mainstream browse page or Organisation
- email-alert-api, provides:
- support for subscribing to notifications from a topic
./startup.sh
The app should start on http://localhost:3070 or http://collections.dev.gov.uk on GOV.UK development machines.
./startup.sh --live
This will run the app and point it at the production GOV.UK content-store
and static
instances.
./startup.sh --dummy
This will run the app and point it at the dummy content store, which serves the content schema examples and random content.
Use bundle exec rake
to run the test suite, excluding JavaScript
Use bundle exec rake spec:javascript
to run Jasmine tests
Alternatively, visit collections.dev.gov.uk/specs
for a live debugger in your browser