Skip to content

Functional Product Specification

Progress Credit Union Website

Version: 1.0 Date: 2026-02-28 Authors: Double Shore Development Team Audience: All teams — Technical, Management, Commercial, Client Stakeholders

Disclaimer

This specification is based on the Progress Credit Union (progress.ie) core database migration. Content, users, and permissions vary from site to site. This document should be used as a reference guide, not a single source of truth.

Purpose

This document describes what the Progress Credit Union website does from a functional perspective. It catalogs every page type, every component editors can use, how the grid system works, what user groups exist, and what permissions they have. Use it to verify that every v8 feature exists in v17, to train content editors, and to plan future enhancements.


1. Product Overview

The Progress Credit Union website is a public-facing financial services website built on Umbraco CMS. It serves members and prospective members with:

  • Information pages — loans, savings, membership, services, about, contact
  • Financial calculators — loan repayment, savings projections, budget planning
  • News & events — articles, announcements, press releases
  • Member services — online banking links, FAQ, help center
  • Marketing — hero banners, testimonials, galleries, social feeds
  • Compliance — privacy policy, cookie consent, terms & conditions, data protection

Content editors manage the site through the Umbraco backoffice using a block-based page builder (BlockGrid) that provides drag-and-drop composition of 120+ reusable components.


2. Page Types & Templates

The website uses 46 page templates organized into functional groups. Each template defines the structure and available content areas for a specific type of page.

2.1 Main Content Pages

Template Purpose Grid Type Notes
homeGrid Homepage Homepage Grid (1151) Hero slider, feature sections, news, testimonials
homeFullWidthSection Homepage variant Full Width Grid Full-width breakout sections
standardPage General content Standard Page Grid (1257) Most versatile — 20 layout options
standardPageNew Updated standard Std Page Full Width (1803) 11 layouts, career and cookie variants
standardPageWithImageText Content with header image Standard Page Grid Image + text header above grid
standardPageWow Animated content Animated Grid (1534) WOW.js scroll animations
article News/blog post Article Grid (1683) Date, author, categories, share buttons
articleType2 Alternative article Article Grid Different header layout
gallery Photo gallery Standard Page Grid Image gallery with lightbox
galleryList Gallery index Standard Page Grid Grid of gallery thumbnails

2.2 Special Purpose Pages

Template Purpose Notes
contactus Contact form + map Contact Us Grid (1093), Google Maps integration
cookies Cookie policy Cookie Grid (1709), Cookiebot integration
privacyPolicy Privacy policy Standard content with GDPR compliance sections
termsAndConditions Terms & conditions Standard content page
TermsAndConditionsMobile Mobile T&C Simplified layout for mobile app webview
help Help center Standard content with FAQ-style sections
Faq FAQ page FAQ accordion with categories
FaqWithSchema FAQ with SEO FAQ accordion with schema.org JSON-LD markup
testimonials Testimonials Testimonial carousel and cards
TestimonialsBlock Testimonials variant Block-based testimonial layout
error Error pages 404, 500, custom error messages
search Search results Full-text search with highlighting
sitemap XML sitemap Auto-generated sitemap for search engines
robots Robots.txt Search engine crawl directives

2.3 Authentication Pages

Template Purpose Notes
Login1 Member login Redirects to online banking
MasterLogin Login master layout Stripped-down layout for auth pages
CustomerOnlyPage1 Members-only content Content visible only after login
TokenAuthentication Token-based auth API token authentication page

2.4 Framework Templates

Template Purpose Notes
master Site-wide wrapper Header, footer, navigation, scripts, SEO meta
masterNoHeaderNoFooter Minimal wrapper For embedded/iframe content
StandardPageThirdParty Third-party embed External content integration
SPALoader SPA application loader Loads single-page applications (e.g., loan enquiry form)
popUpForms Popup form launcher Modal forms triggered by user action

2.5 Configuration Pages (Not Public)

These pages are only visible in the backoffice and store site-wide configuration:

Page Purpose Location in Content Tree
Website Configuration Global settings, logos, contact info Root level
SEO Configuration Default meta tags, OG images Under Home
Menu Configuration Navigation structure, mega menu items Under Home
Footer Configuration Footer links, social media, legal links Under Home
Homepage Slider Configuration Hero slider images and CTAs Under Home
Calculators Configuration Calculator parameters, rates, terms Under Home
Loan Boxes Configuration Loan product cards and rates Under Home
Google Map Configuration Map markers, API settings Under Home
Google Tag Manager Configuration GTM container ID, scripts Under Home
Cookie Configuration Cookiebot settings, consent text Under Home
Site Style Configuration Colors, fonts, brand variables Under Home
Privacy Policy Configuration Data controller details, DPO info Under Home
2FA Settings Two-factor authentication config Root level

3. BlockGrid System — Page Builder

The BlockGrid is the core page-building system. It replaces the v8 Grid Layout with a structured 4-level hierarchy that gives editors precise control over page composition.

3.1 How It Works

Editors build pages by:

  1. Adding a Row — choose a row configuration (e.g., "1-column", "2-column", "sidebar")
  2. Selecting a Layout — choose how the row is divided into columns (e.g., 50/50, 33/33/33, 75/25)
  3. Dropping Components — drag components into each column area
  4. Configuring — set properties on each component (text, images, colors, links)

3.2 The 4-Level Hierarchy

Row Config          → Controls which layouts are available in this row
  └─ Layout         → Defines column structure (e.g., 6|6 = two equal columns)
       └─ Area Wrapper  → Carries cell-level styles (background, padding, animation)
            └─ Content   → The actual component (hero, card, calculator, etc.)

Each level has its own settings:

Level Settings Available Example
Row Config Row background, container class, section breakpoint Full-width hero row with no container
Layout Column breakpoint, merge area classes 2-column layout that stacks on mobile
Area Wrapper Cell background, padding, animation, visibility Left column with blue background
Content Component-specific properties Hero with image, title, and CTA button

3.3 Available Grid Types

The system has 14 BlockGrid datatypes, each configured for a specific page type with appropriate layouts and components.

Grid Type Used By Layouts Components Purpose
Standard Page Grid standardPage, gallery 20 108 Most versatile — all general content
Std Page Full Width standardPageNew 11 41 Modern pages with full-width sections
Homepage Grid homeGrid 5 61 Homepage-specific components
Animated Grid standardPageWow 6 50 Pages with scroll animations
Footer Grid footer 7 31 Footer section layout
Article Grid article, articleType2 4 35 News and blog articles
Date Time Picker Grid various 6 34 Pages with date/time selection
Contact Us Grid contactus 5 14 Contact page with map
Cookie Grid cookies 5 8 Cookie consent page
Services Grid services 4 16 Service listing pages
Nav Left Grid SP with nav left 4 12 Pages with left sidebar navigation
Full Width Grid full-width pages 4 8 Simple full-width content
Full Width Bottom bottom sections 4 1 Bottom-of-page full-width area
Test Grid testing only 4 0 Development testing (no content blocks)

3.4 Layout Patterns (Column Combinations)

Editors can choose from 27 unique layout patterns across all grid types. Here are the most commonly used:

Layout Columns Bootstrap Grid Common Use
Full Width 1 col-12 Hero banners, full-width content
Half & Half 2 col-6 + col-6 Text + image, comparison
Thirds 3 col-4 + col-4 + col-4 Card grids, feature highlights
Quarters 4 col-3 + col-3 + col-3 + col-3 Icon grids, stats
Sidebar Left 2 col-4 + col-8 Navigation sidebar + content
Sidebar Right 2 col-8 + col-4 Content + sidebar widgets
Text + Button 2 col-8 + col-4 Content with CTA
Two-Thirds + Third 2 col-8 + col-4 Main content + sidebar
Five + Seven 2 col-5 + col-7 Asymmetric content
Seven + Five 2 col-7 + col-5 Asymmetric content (reversed)
Nine + Three 2 col-9 + col-3 Wide content + narrow sidebar
Icon Calc 3 col-6 + col-4 + col-2 Calculator icon layout
Membership Benefits 3 col-6 + col-6 + col-12 Mixed column layout
Sixths 6 col-2 x6 Footer links, icon rows
Loan Process 5 col-12 + col-3 x4 Step-by-step process

Responsive behavior: All layouts use Bootstrap 5 breakpoints. The column breakpoint varies per grid type:

Grid Type Breakpoint Stacks Below
Homepage, Standard Page New, FAQ xl (1200px) Desktop
Standard Page, Error, Testimonials md (768px) Tablet
Footer, Bottom Grid lg (992px) Small desktop

3.5 Standard Page Grid — Full Layout Reference

The Standard Page Grid (datatype 1257) is the most versatile with 20 layouts and 108 content components. This is the grid editors use most often.

Available Layouts:

# Layout Name Columns Column Widths
1 Full Width 1 12
2 1 Column Layout 1 12
3 Half 2 6 + 6
4 Thirds 3 4 + 4 + 4
5 Fours 4 3 + 3 + 3 + 3
6 Sidebar 1 12 (with sidebar styling)
7 Left Nav 2 4 + 8
8 Left Sidebar 2 4 + 8
9 Right Sidebar 2 8 + 4
10 Text + Button Block 2 8 + 4
11 Five + Seven 2 5 + 7
12 Car Draw Text 2 7 + 5
13 Two-Four-Two-Four 4 2 + 3 + 2 + 3 + 2
14 Icon Calc 3 6 + 4 + 2
15 Services 1 12
16 FAQ Home 1 12
17 Full & Thirds Thirds 7 12 + 4 + 4 + 4 + 4 + 4 + 4
18 Loan Application Process 5 12 + 3 + 3 + 3 + 3
19 Membership Benefits 3 6 + 6 + 12
20 Animated Layout varies WOW animation variants

4. Component Catalog — What Editors Can Use

The website provides 120 BlockGrid components and 7 BlockList components organized into 25 functional categories. Each component is a self-contained, reusable content block that editors drag into grid areas.

4.1 Hero & Banner Components (6)

Component Description Key Properties
Hero Element Full-width hero section Heading, subheading, paragraph, background image, CTA buttons
Hero Item Hero variant Similar to Hero Element with different layout
Header Page header block Title, paragraph, background image
Header Element Header variant Alternative header styling
Anchor Jump-link bookmark Anchor ID for in-page navigation
CTA Curves Curved CTA section Decorative curved borders, background color

4.2 Text & Content Components (10)

Component Description Key Properties
Rich Text Editor WYSIWYG content block Full TipTap editor (bold, italic, links, tables, images)
Grid RTE Grid-migrated RTE Rich text from v8 grid cells
Embed Element oEmbed / iframe content URL for YouTube, Vimeo, social embeds
CTA Text Text with call-to-action Content text with highlighted CTA
Heading Element Standalone heading H1-H6, custom styling
Heading Item Heading variant Alternative heading styles
Quote Blockquote Quote text, attribution
Text Slide Text carousel item Text content for slider rotation
Media Element Image with alt text Image picker, alt text, caption
Grid Media Grid-migrated media Image from v8 grid cells

4.3 Call to Action Components (6)

Component Description Key Properties
CTA Element Call-to-action block Background color, text, link, icon
CTA Item Individual CTA Button text, URL, style variant
BlockList CTA CTA in block list Nested CTA within other components
Loan Input CTA Loan calculator CTA Loan amount input + apply button
Button Widget Standalone button Label, URL, style, size
Button Modal Button that opens modal Modal content, trigger button

4.4 Media & Video Components (12)

Component Description Key Properties
Fancy Video Video with poster overlay Video URL, poster image, play button style
Video Full Width Full-width video player Video source, autoplay, background color
Video Popout Lightbox video Thumbnail, popup video player
YouTube Controls YouTube embed YouTube URL, oEmbed integration
YouTube Slide YouTube in carousel YouTube video as carousel item
YouTube Slide Grid YouTube grid Grid of YouTube videos
Vimeo Slide Vimeo in carousel Vimeo video as carousel item
Grid Vimeo Slide Vimeo grid variant Grid layout for Vimeo
Internal Video Slide Self-hosted video MP4/WebM video file, carousel item
Grid Internal Video Self-hosted grid variant Grid layout for internal videos
Audio Tag Element HTML5 audio player Audio file, controls
Parallax Image Parallax scroll image Image, scroll speed, overlay

4.5 Card Components (8)

Component Description Key Properties
Card Grid Controls Grid of cards BlockList of card items, columns
Card Item Individual card Image/icon, title, text, link
Flip Card Controls Flip cards Front content, back content, flip animation
Testimonial Card Testimonial card Avatar, name, quote, rating
Picture Slide Grid Picture cards Image grid with opacity controls
Spotlight Control Featured item Highlighted content card
Spotlight Controls Multiple spotlights Row of featured cards
Spotlight Grid Spotlight grid Grid layout of featured items

4.6 List Components (10)

Component Description Key Properties
Numbered List Ordered list Numbered items with descriptions
Striped List Alternating rows Zebra-striped list items
Styled List Custom styled list Custom bullet icons, colors
Link List List of links URL list with icons
Link List Element Individual link item Single link with description
Image List Image gallery list Images with captions
Image with Link Clickable image Image + hyperlink
Image Gallery Photo gallery Grid of images with lightbox
Icon List / Contact Info Icon + text list Contact details, service features
FAQ Items FAQ list items Question/answer pairs for accordion

4.7 Accordion & Expandable Components (7)

Component Description Key Properties
Accordion Controls Accordion container BlockList of accordion items
Accordion Button Element Accordion item (button) Title, collapsible content
Accordion Button Main Accordion main content Expanded content area
FAQ Controls FAQ accordion FAQ items with flip card effect
FAQ Element FAQ item Question, answer
FAQ with Schema SEO FAQ list Schema.org FAQ markup for Google
Feature Controls Feature accordion Show/hide feature descriptions
Component Description Key Properties
Grid Slider Multi-slide carousel Slick.js carousel, slide count, autoplay
Split Picture Slider Split-screen slider Two-panel image slider
Address Slider Address carousel Branch locations in carousel
News Slider News carousel Latest articles carousel
Testimonial Slider Testimonial carousel Testimonial cards in carousel
Announcement Controls Announcement banner Scrolling announcements
Announcement Scroll Scrolling items Auto-scrolling announcement text

4.9 Chart & Data Components (6)

Component Description Key Properties
Bar Chart Bar/pie chart Chart.js data, colors, labels
Bar Chart Item Chart data point Value, label, color
Donut Chart Donut/ring chart Segments, center text
Donut Chart Item Donut segment Value, color, label
Donut Chart List Multiple donuts Row of donut charts
Comparison Table Data table Rows, columns, highlights

4.10 Form Components (3)

Component Description Key Properties
Umbraco Form Element Umbraco Forms embed Form GUID, theme
Contact Us Widget Contact form Name, email, message fields
Cookies Element Cookie consent Consent categories, accept/reject

4.11 Navigation Components (4)

Component Description Key Properties
Sticky Nav Sticky navigation bar Page section links, scroll behavior
Quick Link Dropdown Dropdown menu Link categories, dropdown trigger
Submenu Sub-navigation Child page links
Coordinate Location pin Coordinate for map navigation

4.12 Finance & Calculator Components (5)

Component Description Key Properties
Main Calculator Controls Calculator container BlockList of calculator tabs
Calculator Controls Calculator element Calculator type, parameters
Calculators Grid Editor Calculator grid Grid layout for calculator widgets
Loan Input CTA Loan calculator input Amount slider, term, rate
Main Loan Box Widget Loan product cards Loan types with rates and CTAs

4.13 Social & Integration Components (7)

Component Description Key Properties
Facebook Controls Facebook feed Page URL, feed type
Instagram Controls Instagram feed Username, grid layout
Twitter Controls Twitter/X timeline Handle, tweet count
YouTube Controls YouTube channel Channel URL, video count
Trustpilot Widget Trustpilot reviews Widget ID, theme
Release Notes Widget Release notes Version, changelog
Sticky Social Floating social buttons Fixed-position social share icons

4.14 Map Components (4)

Component Description Key Properties
Google Map Google Maps embed Markers, zoom, API key
Large Google Map Full-width Google Map Site-wide map from settings
Large Leaflet Map Leaflet.js map Open-source map alternative
Career Locations Career location map Job locations with pins
Component Description Key Properties
Footer Links Footer link group Title, list of links
Footer List Footer list Display styles (inline, stacked)
Social Footer Footer social icons Social media icon links

4.16 Authentication Components (6)

Component Description Key Properties
Login Element Login form Username, password fields
Login Widget Login wrapper Login form with branding
Login Status Element Login state display Logged in/out message
Login Status Widget Login status wrapper Status with action buttons
Register Element Registration form Member registration fields
Data Protection DPO DPO information Data Protection Officer details

4.17 Staff & Career Components (3)

Component Description Key Properties
Staff Members Team member grid Photos, names, titles, bios
Staff Member Individual staff card Photo, name, role, contact
Career Widget Job listings Open positions with details

4.18 Data Protection Components (4)

Component Description Key Properties
Data Protection Name Organization name Legal entity name display
Data Protection Statements Privacy statements Specific data processing statements
Data Protection Summary Summary table Data processing summary table
Data Protection We Are Organization description "We are" section for privacy

4.19 News Components (7 partials)

These are specialized partials used by the news/article system:

Partial Description Layout
Top Story Featured article + 4 supporting Large card + 4 small cards
Top Story 5 Articles Featured + 5 supporting Large card + 5 small cards
News List Paginated article list Vertical list with thumbnails
4 Across News News grid 4 cards per row
News Slider Basic news carousel Carousel with card items
News Slider Detailed Detailed news carousel Cards with excerpts
News Slider Image Image-focused carousel Large images with overlay text

4.20 Loan Box Display Modes (4 partials)

Loan product information can be displayed in four different modes:

Display Mode Description
Card Grid Card layout with modals for detail
Accordion Expandable accordion items
Flip Cards Interactive flip card animation
Accordion + Contact Accordion with contact information

4.21 Address & Location Components (7)

Component Description
Global Address Widget Main address display
Address List Multiple addresses
Address No Labels Compact address format
Opening Times Business hours display
Footer Address Footer address block
Address Slider Address carousel
Two Column Address Two-column address layout

4.22 Utility Components (4)

Component Description
QR Code QR code generator/display
Counter Animated number counter
Services List Service items with descriptions
Services List Image Service items with images

5. Content Tree Structure

The website's content tree organizes all pages into a logical hierarchy:

Root
├── Home (homeGrid) ─────────────────── Public homepage
│   ├── Membership ────────────────────── How to join, switch account
│   │   ├── How to Switch your Current Account
│   │   ├── How to Join
│   │   └── Open a Credit Union Account
│   ├── Loans ─────────────────────────── Loan products
│   │   ├── Motor Loan
│   │   ├── Holiday Loan
│   │   ├── Home Improvement Loan
│   │   ├── Education Loan
│   │   ├── Green Loan
│   │   ├── Bridging Loan
│   │   ├── Apply Now
│   │   └── (other loan types)
│   ├── Savings ───────────────────────── Savings products
│   ├── Services ──────────────────────── Service offerings
│   ├── About ─────────────────────────── About the credit union
│   ├── Contact ───────────────────────── Contact page with map
│   ├── News & Events ─────────────────── Article listing
│   │   └── News Categories (AGM, Company, Loans, Misc)
│   ├── FAQ ───────────────────────────── FAQ with categories
│   │   ├── Loans FAQ
│   │   ├── Savings FAQ
│   │   ├── Insurance FAQ
│   │   ├── Current Account FAQ
│   │   ├── Online Services FAQ
│   │   └── (more categories)
│   ├── Help ──────────────────────────── Help center
│   ├── Search ────────────────────────── Site search
│   ├── Calculators (config) ──────────── Calculator settings
│   ├── Loan Application Boxes (config) ─ Loan product cards config
│   ├── Menu Configuration ────────────── Navigation settings
│   ├── Footer Configuration ──────────── Footer settings
│   ├── Homepage Slider (config) ──────── Hero slider settings
│   ├── SEO Configuration ─────────────── SEO defaults
│   ├── Site Styles (config) ──────────── Brand settings
│   ├── Google Maps (config) ──────────── Map settings
│   ├── Google Tag Manager (config) ───── Analytics settings
│   ├── Cookie Configuration ──────────── Cookie consent settings
│   ├── Privacy Policy Configuration ──── Privacy settings
│   ├── Popup Forms ───────────────────── Modal form configuration
│   ├── Error ─────────────────────────── Error page
│   ├── SiteMap ───────────────────────── XML sitemap
│   ├── Robots ────────────────────────── Robots.txt
│   ├── Testimonial Categories ────────── Testimonial management
│   │   ├── Loans, General, Bursaries
│   │   ├── Budget, Membership
│   │   └── Current Account
│   ├── Privacy Policy ────────────────── Privacy policy page
│   ├── Terms and Conditions ──────────── T&C page
│   ├── Terms and Conditions Mobile ───── Mobile T&C
│   ├── Cookie Notice ─────────────────── Cookie notice page
│   ├── Register ──────────────────────── Registration page
│   ├── Lost Your PIN ─────────────────── PIN recovery
│   ├── Loan Enquiry (SPA) ────────────── Online loan form
│   └── Form Submitted ────────────────── Form confirmation
├── Website Configuration ─────────────── Global settings (root)
├── 2FA Settings ──────────────────────── Two-factor auth config (root)
└── (test pages) ──────────────────────── Development test pages

Total content nodes: 116 (including test pages)


6. User Groups & Permissions

6.1 User Group Overview

The system has 8 user groups with different access levels. The two primary groups for credit union staff are Credit Union Administrators and Credit Union Editors.

Group Purpose Content Access Media Access Sections
Administrators Full system control All content All media All 8 sections
Credit Union Administrators CU staff with full content access All content All media Content, Forms, Media, Users
Credit Union Editors CU staff with restricted access Home and below only All media Content, Media
Editors Extended editors All content All media Content, Forms, Media, Settings, Translation
Writers Content authors All content All media Content only
Translators Translation staff All content All media Translation only
Sensitive Data Data access flag Permission-only group Permission-only group None (permissions only)
uSync Remote Browser System integration All content All media Content, Media

6.2 Permission Details

Administrators (Full Access)

  • All permissions: Create, Update, Delete, Move, Duplicate, Sort, Rollback, Public Access, Culture & Hostnames, Publish, Permissions, Unpublish, Read, Create Blueprint, Notifications, Property Value Read/Write
  • All sections: Content, Forms, Media, Members, Packages, Settings, Translation, Users
  • Start node: Root (all content)

Credit Union Administrators

  • Permissions: Read, Create, Publish, Unpublish, Update, Duplicate, Move, Sort
  • Cannot: Delete content, Rollback, Manage permissions, Manage public access
  • Sections: Content, Forms, Media, Users
  • Start node: Root (all content, including Website Configuration)

Credit Union Editors

  • Permissions: Read, Publish, Unpublish, Update
  • Cannot: Create new pages, Delete, Move, Duplicate, Sort
  • Sections: Content, Media
  • Start node: Home (node 2122) — cannot see Website Configuration, 2FA Settings

Key Restriction

Credit Union Editors can only see content under the Home node. They cannot access Website Configuration, 2FA Settings, or root-level test pages. This prevents accidental changes to site infrastructure.

6.3 Current Users

User Role Groups
Kevin Owens Staff Admin, Editor, Sensitive Data, Writer
Austin O'Halloran Staff Admin, Editor, Sensitive Data, Writer
Antonio Bianco Staff Admin, Editor, Sensitive Data, Writer
Kevin Kelly Staff Admin, Editor, Sensitive Data, Writer
Ronilto Vargas Staff Admin, Editor, Sensitive Data, Writer
Luis Bras Staff Admin, Editor, Sensitive Data, Writer
Jordan Gray Staff Admin, Editor, Sensitive Data, Writer
Tom O'Connor Staff Admin, Editor, Sensitive Data, Writer
Ciara Ni Bhrolchain Staff Admin, Editor, Sensitive Data, Writer
Mark Sunderland Staff Admin, Editor, Sensitive Data, Writer
Radek Zielinski Staff Admin, Editor, Sensitive Data, Writer
CU Admin Test Test account CU Admin, CU Editor, Sensitive Data
CU Editor Test Test account CU Editor only
Joao Moita Developer Admin, Editor, Sensitive Data, Writer
Marco Teodoro Developer Admin
admin@progresssystems.ie System Admin, Sensitive Data

Total users: 22 (16 real + 4 test accounts + 1 MCP API user + 1 2FA test)

6.4 Two-Factor Authentication (2FA)

  • Enabled for all non-administrator user groups
  • Admin users are exempt from 2FA requirement
  • Configuration stored in the 2FA Settings root node
  • Implementation: ASP.NET Core Identity with INotificationHandler pattern

6.5 User Group Protection

Two notification handlers protect critical user groups from accidental modification:

  1. UserGroupSaveProtectionHandler — prevents non-admin users from modifying the creditUnionAdministrators group
  2. UserGroupDeleteProtectionHandler — prevents deletion of creditUnionAdministrators and creditUnionEditors groups

7. Site Layout & Navigation

7.1 Header Structure

The site header consists of multiple configurable sections:

Section Description Configurable
Top Bar Announcement bar, phone number, quick links Yes (Menu Config)
Logo + Search Brand logo and search bar Yes (Website Config)
Main Navigation Primary menu with mega-dropdown Yes (Menu Config)
Menu 2 Secondary navigation with login buttons Yes (Menu Config)
Menu 3 Tertiary navigation Yes (Menu Config)
Menu 4 Additional navigation variant Yes (Menu Config)
Social Links Header social media icons Yes (Menu Config)

The footer uses a dedicated Footer Grid (datatype 1127) with 7 layouts:

Layout Columns Use Case
Full Width 1 Copyright, legal notice
Thirds 3 Links, address, social
Nine + Three 2 Wide content + logo
Six + Five + One 3 Links + address + small
Five + Four + Three 3 Asymmetric footer
Sixths 6 Footer link columns

The footer can contain 31 different component types including links, address blocks, social icons, and maps.

7.3 Navigation System

  • Dynamic navigation built from content tree structure
  • Mega-dropdown menus with multi-column layouts
  • Login/logout buttons integrated into header
  • Social links in both header and footer
  • Sticky navigation option for long-scroll pages
  • Breadcrumbs auto-generated from content hierarchy

8. Financial Features

8.1 Calculators

The calculator system provides interactive financial tools configured through the Calculators Configuration node:

Calculator Purpose Input Fields
Loan Repayment Monthly payment calculation Amount, term, interest rate
Savings Projection Savings growth over time Initial amount, monthly deposit, term
Budget Planner Income vs expenses Income categories, expense categories
Mortgage Calculator Mortgage payment estimate Property value, deposit, term, rate

Architecture:

  • Calculator parameters (rates, terms, limits) stored in CMS content
  • JavaScript frontend with jQuery for real-time calculation
  • CalculatorService provides server-side data via API
  • CalculatorCacheInvalidationComposer auto-clears cache when parameters change
  • Dictionary items for label localization (31 keys in v8, 25 confirmed in v17)

Dictionary Migration Complete

All 169 v8 dictionary items (including 28 calculator-specific keys) have been migrated 1:1 to v17 with identical keys, GUIDs, and translations. V17 views corrected to use original v8 key names (commit 2ac8a4f).

8.2 Loan Products

Loan products are managed through the Loan Boxes Configuration node and displayed using the Loan Box components:

  • Card Grid — Visual cards with "Apply Now" buttons
  • Accordion — Expandable details for each product
  • Flip Cards — Interactive front/back cards
  • Accordion + Contact — Product details with contact info

Each loan product includes: name, description, representative APR, minimum/maximum amount, term range, and CTA link.

8.3 Common Bond Area

The Common Bond system validates member eligibility based on postal/area codes:

  • ~2,500 postcodes in v8 database
  • Used by membership application and loan enquiry forms

Per-Client Data

The CommonBondRange table exists in both v8 and v17 but has 0 rows in v8 for this client. The table is auto-created by v17's CreateCommonBondTableMigration. Each client populates this with their geographic area postcodes. No migration needed — data population is a per-client setup task.


9. Integrations

Integration Purpose Status
Google Maps Branch locations, contact page DONE — API key in appsettings.json
Leaflet.js Alternative map provider DONE
Mapbox Map styling DONE — token in appsettings.json
Google Tag Manager Analytics, tracking DONE — container ID in CMS
Cookiebot Cookie consent management DONE — configured in CMS
Trustpilot Customer reviews widget DONE — widget ID in CMS
Facebook Social feed embed DONE
Instagram Social feed embed DONE
Twitter/X Social timeline embed DONE
YouTube Video embeds DONE — oEmbed integration
Vimeo Video embeds DONE — oEmbed integration
Umbraco Forms Form builder DONE
Online Banking Member login redirect DONE — external link
SPA Loan Enquiry Single-page loan form DONE — SPALoader template

10. URL Routing & Redirects

10.1 URL Rewrites

URL rewrites (server-side, browser URL unchanged) are managed via the ProgressUrlRewrites database table with a custom backoffice dashboard.

  • Middleware: DynamicUrlRewriteMiddleware processes regex-based rewrite rules
  • Caching: Rules are cached in memory with a 5-minute TTL for performance
  • Management: Custom backoffice dashboard at /api/progress-url-rewrite/rules for CRUD operations
  • Testing: Built-in test endpoint to validate rules before enabling them
  • Import: Legacy IIS rewrite rules from v8 web.config can be bulk-imported via the /import-webconfig API endpoint

10.2 URL Redirects

URL redirects (301/302, browser URL changes) are managed via Skybrud.Umbraco.Redirects:

  • Full backoffice UI for creating and managing 301/302 redirects
  • Supports regex patterns and query string handling
  • No developer intervention needed for day-to-day redirect management

10.3 SEO URL Rules

Trailing slash removal and lowercase URL enforcement are handled automatically by SeoRedirectMiddleware (built-in, not configurable):

  • Trailing slashes removed via 301 redirect (e.g., /loans//loans)
  • Uppercase URLs lowercased via 301 redirect (e.g., /About-Us/about-us)

10.4 Migration

Legacy IIS rewrite rules from v8 web.config are automatically extracted and imported during migration:

  • Rewrites (type="Rewrite") → imported into the ProgressUrlRewrites table
  • Redirects (type="Redirect") → managed via Skybrud.Umbraco.Redirects
  • IIS capture group syntax ({R:1}) is automatically translated to .NET regex syntax ($1)

11. Summary Statistics

Metric Count
Page templates 46
BlockGrid components 120
BlockList components 7
SiteLayout partials 18
Calculator partials 7
News partials 7
Loan box partials 4
Total views 223
BlockGrid datatypes 14
Unique layout patterns 27
Content element types 455
Non-element document types 111
Content nodes 116
User groups 8
Users 22
Third-party integrations 14
Client CSS files 163
JavaScript files 60

12. Known Limitations & Remaining Items

Feature Impact Status Notes
jQuery UI slider Calculator sliders render as standard number inputs Visual change only Calculator logic and functionality unchanged
Email notifications Template structure available Per-client setup Configured during client onboarding with client's SMTP settings
Instagram feed Feed not available Removed Meta deprecated the API in 2024
Client-side form validation HTML5 native validation Changed approach Server-side validation works. HTML5 validation replaces jQuery Validate.

For detailed technical status, see Technical Specification.


Appendix A: Component Availability Per Grid Type

This matrix shows which component categories are available in each grid type:

Category Standard Std Full Width Home Animated Footer Article Contact Cookie Services
Hero/Banner Yes Yes Yes Yes -- Yes -- -- --
Text/Content Yes Yes Yes Yes Yes Yes Yes Yes Yes
CTA Yes Yes Yes Yes Yes Yes -- -- --
Media/Video Yes Yes Yes Yes -- Yes -- -- --
Cards Yes Yes Yes Yes -- Yes -- -- --
Lists Yes Yes Yes Yes Yes Yes -- -- Yes
Accordions Yes Yes Yes Yes -- Yes -- -- --
Sliders Yes Yes Yes Yes -- -- -- -- --
Charts Yes Yes Yes Yes -- -- -- -- --
Forms Yes Yes Yes -- -- -- Yes Yes --
Navigation Yes Yes -- -- -- -- -- -- --
Calculators Yes Yes Yes Yes -- -- -- -- --
Social Yes Yes Yes Yes Yes -- -- -- --
Maps Yes Yes Yes -- Yes -- Yes -- --
Footer -- -- -- -- Yes -- -- -- --
Auth/Login Yes Yes -- -- -- -- -- -- --
Staff Yes Yes -- -- -- -- -- -- --
Data Protection Yes -- -- -- -- -- -- -- --
Address Yes Yes Yes -- Yes -- Yes -- --

Appendix B: Document Type Reference

Page Types (Allow Children)

Document Type Allowed Children Purpose
homeGrid Most page types Homepage — site root
standardPage None General content page
standardPageNew None Modern content page
standardPageWithImageTextHeader None Content with image header
article None News article
articleList newsCategoryItems News archive
faqs faqQuestionItem FAQ container
gallery None Photo gallery
galleryList gallery Gallery index
help helpDetail Help center
testimonialCategories testimonialCategoryItem Testimonial container
newsCategories newsCategoryItems News category container
careers job Job listings

Configuration Types (No Public URL)

Document Type Properties Purpose
websiteConfiguration Logo, contact info, social URLs Site-wide settings
menuConfiguration Menu items, mega-menu structure Navigation config
footerConfiguration Footer grid content Footer layout
calculatorsConfiguration Rates, terms, limits Calculator parameters
loanBoxesConfiguration Loan products, APR rates Loan product display
sEOConfiguration Default meta, OG image SEO defaults
siteStyleConfiguration Brand colors, fonts Visual theming
googleMapConfiguration Map markers, zoom levels Map settings
googleTagManagerConfiguration GTM container ID Analytics tracking
cookieConfiguration Cookiebot ID, consent text Cookie management
homepageSliderConfiguration Slider images, CTAs Homepage hero
privacyPolicyConfiguration DPO details, statements Privacy settings
twoFASettings 2FA enable/disable Authentication
Migration documentation by Double for Progress Credit Union