diff --git a/package.json b/package.json index a66df00..f9d6844 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.27", + "version": "1.0.28", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { diff --git a/src/pages/about-us/our-team.ejs b/src/pages/about-us/our-team.ejs new file mode 100644 index 0000000..98c46c3 --- /dev/null +++ b/src/pages/about-us/our-team.ejs @@ -0,0 +1,65 @@ +

Our Team

+

+ Our team is made up of experienced professionals who are passionate about digital accessibility. + Here are a few of our key team members: +

+ \ No newline at end of file diff --git a/src/pages/about-us/principals.ejs b/src/pages/about-us/principals.ejs new file mode 100644 index 0000000..7433f26 --- /dev/null +++ b/src/pages/about-us/principals.ejs @@ -0,0 +1,118 @@ +%# + principles.ejs + This template should be included within a main base layout. + It requires FontAwesome Pro to be loaded in the main . +%> + +
+
+

Built on Principle: Our Technology & Values

+

+ At Bridgeman Accessible, our commitment to digital inclusion runs deeper than the products you see. For years, we have been meticulously building a digital foundation based on a simple, powerful idea: the best way to serve our community is to build with principle, integrity, and unparalleled expertise. +

+
+
+ +
+
+
+
+

Designed by Experts, For Everyone

+

+ Our work is a direct reflection of who we are. We are proud that our entire technology team is composed of people with disabilities. + This is not a footnote; it is our greatest strategic advantage. +

+

+ Our lived experiences give us an intuitive and profound understanding of accessibility that cannot be learned from a manual. + We build with an unwavering commitment to quality and real-world usability because we are the community we serve. + The result is a platform that is not just compliant, but authentically and fundamentally accessible in its very DNA. +

+
+
+
+
+
+ +
+
+
+

A Single, Secure Digital Key

+

We believe your digital experience should be seamless and secure. That’s why we’ve invested heavily in creating a unified account platform that serves as your single key to our entire digital world.

+
+
+
+ +

Simplicity & Convenience

+

With one secure login, you can access every tool and service we offer. No more juggling multiple passwords or accounts.

+
+
+ +

Uncompromising Security

+

Your trust is our priority. We use the latest industry-standard security protocols to protect your information and ensure your data is safe.

+
+
+
+
+ +
+
+
+

A Foundation of Digital Sovereignty

+

We consciously choose a different path from big tech. To guarantee the highest level of security and privacy, we own and operate our own core infrastructure right here in Canada, on our own hardware.

+
+
+
+
+
    +
  • + +
    +

    You Control Your Data

    +

    By self-hosting, we offer our clients true data sovereignty. Your data stays here, under the protection of Canadian privacy laws.

    +
    +
  • +
  • + +
    +

    Enhanced Security

    +

    We have complete control over our technology stack, reducing external dependencies and strengthening our security posture.

    +
    +
  • +
  • + +
    +

    Value-Driven Choices

    +

    This approach reflects our commitment to our community and country over pure profit, ensuring our technology aligns with our values.

    +
    +
  • +
+
+
+
+
+ +
+
+
+

Excellence You Can Rely On

+

Our commitment to building on principle delivers tangible benefits for our clients and community.

+
+ + +
+
\ No newline at end of file diff --git a/src/pages/about.ejs b/src/pages/about.ejs index 96908e4..57dccb0 100644 --- a/src/pages/about.ejs +++ b/src/pages/about.ejs @@ -49,67 +49,67 @@ -
-

Our Team

-

Our team is made up of experienced professionals who are passionate about digital accessibility. Here are a few of our key team members:

- -
\ No newline at end of file +<%#
%> +<%#

Our Team

%> +<%#

Our team is made up of experienced professionals who are passionate about digital accessibility. Here are a few of our key team members:

%> +<%# %> +<%#
%> \ No newline at end of file diff --git a/src/pages/base.ejs b/src/pages/base.ejs index 3a93b7e..ec93d4b 100644 --- a/src/pages/base.ejs +++ b/src/pages/base.ejs @@ -2,8 +2,8 @@ - - + + <%= title %> - Bridgeman Accessible diff --git a/src/pages/includes/header.ejs b/src/pages/includes/header.ejs index 8587810..3926509 100644 --- a/src/pages/includes/header.ejs +++ b/src/pages/includes/header.ejs @@ -20,11 +20,30 @@ <% } else { %>
  • Products
  • <% } %> - <% if (title === 'About') { %> -
  • About Us
  • + <% if (title === 'Search Terms') { %> +
  • Search Terms
  • <% } else { %> -
  • About Us
  • +
  • Search Terms
  • <% } %> + <% if (title === 'Contact') { %>
  • Contact Us
  • <% } else { %> diff --git a/src/pages/seo-terms/accessible-resources-winnipeg.ejs b/src/pages/seo-terms/accessible-resources-winnipeg.ejs new file mode 100644 index 0000000..c951295 --- /dev/null +++ b/src/pages/seo-terms/accessible-resources-winnipeg.ejs @@ -0,0 +1,21 @@ +

    Accessible Resources Winnipeg

    +

    + At Bridgeman Accessible, we understand that people living with disabilities face unique challenges. + And one of our fundamental goals is to help create and support a more inclusive digital experience for everyone. +

    +

    + To that extent, we are based in Winnipeg and are, to the extent possible, willing and open to working with mostly businesses (but some individuals in very specific circumstances) to create and maintain their digital accessibility. + Including helping them find relevant accessibility related resources that exist in the community. +

    +

    + As examples, we can help with: +

    + +

    + Our team is dedicated to fostering an inclusive environment where all individuals can thrive. + If you or someone you know is looking for resources please don't hesitate to reach out. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/disabled-accommodations-winnipeg.ejs b/src/pages/seo-terms/disabled-accommodations-winnipeg.ejs new file mode 100644 index 0000000..2fea14b --- /dev/null +++ b/src/pages/seo-terms/disabled-accommodations-winnipeg.ejs @@ -0,0 +1,22 @@ +

    Disabled Accommodations Winnipeg

    +

    + At Bridgeman Accessible, we understand that people living with disabilities face unique challenges. + And one of our fundamental goals is to help create and support a more inclusive digital experience for everyone. +

    +

    + To that extent, we are based in Winnipeg and are, to the extent possible, willing and open to working with businesses to create and maintain their digital accessibility. + Including helping them put in place and be comfortable with digital accessibility accommodations. +

    +

    + As examples, we can help with: +

    + +

    + Our team is dedicated to fostering an inclusive environment where all individuals can thrive. + If you or someone you know requires assistance, please don't hesitate to reach out. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/index.ejs b/src/pages/seo-terms/index.ejs new file mode 100644 index 0000000..70be4ae --- /dev/null +++ b/src/pages/seo-terms/index.ejs @@ -0,0 +1,42 @@ +

    Search (SEO) Terms

    +

    + We'll be completely honest in saying this and the other pages in this section exist purely to help us boost our Advertising (and particularly Google Ads) and Search Engine Optimization (SEO) rankings. +

    +

    Here are some of the key terms and phrases we use for advertising on search engines (keep in mind we limit our area based on financial constraints etc...):

    + +

    Additional relevant terms include:

    + +

    + We think these terms can help us connect with individuals and organizations seeking to improve their digital accessibility practices. + Which is what we're all about. +

    +

    + If you have any questions or suggestions regarding these terms, please feel free to contact us. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/sign-language-translators-winnipeg.ejs b/src/pages/seo-terms/sign-language-translators-winnipeg.ejs new file mode 100644 index 0000000..40300b8 --- /dev/null +++ b/src/pages/seo-terms/sign-language-translators-winnipeg.ejs @@ -0,0 +1,17 @@ +

    Translator Services Winnipeg

    +

    + Upfront, we DO NOT provide direct translation services of any kind. + We do work with translators (specifically sign language translators of different kinds) throughout our work to ensure our content is accessible to all. + And we endeavor to make these interactions as easy as possible using digital tools and resources. +

    +

    + But, again, we DO NOT provide direct translation services of any kind. +

    +

    + To be transparent, we go back-and-forth on whether this is something we should include as a search term. + We do not want to mislead anyone into thinking we provide these services. + But we also recognize that people may search for this more than "niche" things like "digital accessibility support" or similar. +

    +

    + If you as a potential customer have any questions or an opinion on this search phrase please feel free to contact us and let us know. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/translator-services-winnipeg.ejs b/src/pages/seo-terms/translator-services-winnipeg.ejs new file mode 100644 index 0000000..40300b8 --- /dev/null +++ b/src/pages/seo-terms/translator-services-winnipeg.ejs @@ -0,0 +1,17 @@ +

    Translator Services Winnipeg

    +

    + Upfront, we DO NOT provide direct translation services of any kind. + We do work with translators (specifically sign language translators of different kinds) throughout our work to ensure our content is accessible to all. + And we endeavor to make these interactions as easy as possible using digital tools and resources. +

    +

    + But, again, we DO NOT provide direct translation services of any kind. +

    +

    + To be transparent, we go back-and-forth on whether this is something we should include as a search term. + We do not want to mislead anyone into thinking we provide these services. + But we also recognize that people may search for this more than "niche" things like "digital accessibility support" or similar. +

    +

    + If you as a potential customer have any questions or an opinion on this search phrase please feel free to contact us and let us know. +

    \ No newline at end of file diff --git a/src/routes/AboutController.ts b/src/routes/AboutController.ts index 0a93083..f141f74 100644 --- a/src/routes/AboutController.ts +++ b/src/routes/AboutController.ts @@ -12,9 +12,17 @@ export class AboutController extends BaseController { * @param req The request object. * @param res The response object. */ - @Page('About', 'about.ejs') + @Page('About Us', 'about.ejs') @GET('/about') - private about(req: Request, res: Response) { + private aboutPage(req: Request, res: Response) {} + + @Page('Our Principals', 'about/principals.ejs') + @GET('/about/principals') + private principalsPage(req: Request, res: Response) {} + + @Page('Our Team', 'about/our-team.ejs') + @GET('/about/our-team') + private ourTeamPage(req: Request, res: Response) { return { people: [ { @@ -37,7 +45,7 @@ export class AboutController extends BaseController { { fname: 'Mohamed', lname: 'Behi', - position: 'Vice President (Training & Education)', + position: 'Education & Training Consultant', bio: '' + 'Mohamed is a passionate advocate for disability rights and accessibility. He has been involved in the disability community for many years, working with various organizations to promote inclusion and accessibility. ', email: 'mohamed@bridgemanaccessible.com', diff --git a/src/routes/SEOController.ts b/src/routes/SEOController.ts new file mode 100644 index 0000000..4f28e9c --- /dev/null +++ b/src/routes/SEOController.ts @@ -0,0 +1,72 @@ +import { Request, Response } from 'express'; + +import { Controller, GET, Page, BaseController } from '@BridgemanAccessible/ba-web-framework'; + +@Controller() +export class SEOController extends BaseController { + @Page('Search Terms', 'seo/index.ejs') + @GET('/seo') + private seoIndex(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'disabled accommodations winnipeg', 'translator services winnipeg', 'sign language translators winnipeg', 'accessible resources winnipeg', 'assistive tech winnipeg'].join(', '), + description: 'Bridgeman Accessible SEO terms and pages for better search engine visibility.' + } + } + + @Page('Disabled Accommodations Winnipeg', 'seo/disabled-accommodations-winnipeg.ejs') + @GET('/seo/disabled-accommodations-winnipeg') + private disabledAccommodationsWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'disabled accommodations winnipeg'].join(', '), + description: 'Disabled accommodations in Winnipeg are essential for ensuring accessibility and inclusivity. Bridgeman Accessible provides insights and resources on this topic.' + } + } + + @Page('Translator Services Winnipeg', 'seo/translator-services-winnipeg.ejs') + @GET('/seo/translator-services-winnipeg') + private translatorServicesWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'translator services winnipeg'].join(', '), + description: 'Translator services in Winnipeg are essential for bridging communication gaps. Bridgeman Accessible provides information on available translation services.' + } + } + + @Page('Sign Language Translators Winnipeg', 'seo/sign-language-translators-winnipeg.ejs') + @GET('/seo/sign-language-translators-winnipeg') + private signLanguageTranslatorsWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'sign language translators winnipeg'].join(', '), + description: 'Sign language translators in Winnipeg play a vital role in communication accessibility. Bridgeman Accessible provides information on what sign language translation services it provides.' + } + } + + @Page('Accessible Resources Winnipeg', 'seo/accessible-resources-winnipeg.ejs') + @GET('/seo/accessible-resources-winnipeg') + private accessibleResourcesWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'accessible resources winnipeg'].join(', '), + description: 'Accessible resources in Winnipeg are essential for promoting inclusivity. Bridgeman Accessible offers a range of resources to support accessibility initiatives.' + } + } + + @Page('Assistive Tech Winnipeg', 'seo/assistive-tech-winnipeg.ejs') + @GET('/seo/assistive-tech-winnipeg') + private assistiveTechWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'assistive tech winnipeg'].join(', '), + description: 'Assistive technology in Winnipeg is crucial for enhancing accessibility. Bridgeman Accessible provides information and resources on assistive tech solutions.' + } + } + + @GET('/site-map.xml') + private siteMap(req: Request, res: Response) { + res.type('xml'); + res.sendFile('src/static/xml/sitemap.xml', { root: __dirname + '/../..' }); + } + + @GET('/robots.txt') + private robotsTxt(req: Request, res: Response) { + res.type('text/plain'); + res.sendFile('src/static/robots.txt', { root: __dirname + '/../..' }); + } +} \ No newline at end of file diff --git a/src/static/robots.txt b/src/static/robots.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/static/xml/sitemap.xml b/src/static/xml/sitemap.xml new file mode 100644 index 0000000..629f291 --- /dev/null +++ b/src/static/xml/sitemap.xml @@ -0,0 +1,27 @@ + + + + https://bridgemanaccessible.ca/ + 2025-07-12 + + + https://bridgemanaccessible.ca/services + 2025-07-12 + + + https://bridgemanaccessible.ca/products + 2025-07-12 + + + https://bridgemanaccessible.ca/seo + 2025-07-12 + + + https://bridgemanaccessible.ca/about + 2025-07-12 + + + https://bridgemanaccessible.ca/contact + 2025-07-12 + + \ No newline at end of file