From 120e44ff3cd2695939d45942023f7e1d8d33700a Mon Sep 17 00:00:00 2001 From: Vladimir Jimenez Date: Tue, 3 Oct 2023 23:35:31 -0700 Subject: [PATCH 1/4] feat: start porting 'Get Connected' page to markdown --- src/_data/how_to/get_connected.yml | 72 ----- .../how_to/get_connected_plan_table.html | 30 -- .../how_to/get_connected_pricing_table.html | 90 ------ src/_includes/toc.html | 189 ++++++++++++ src/_layouts/sidebar-toc.html | 34 +++ src/_sass/components/_toc-and-content.scss | 18 ++ src/how-to/get-connected.html | 33 --- src/how-to/get-connected.md | 268 ++++++++++++++++++ 8 files changed, 509 insertions(+), 225 deletions(-) delete mode 100644 src/_data/how_to/get_connected.yml delete mode 100644 src/_includes/how_to/get_connected_plan_table.html delete mode 100644 src/_includes/how_to/get_connected_pricing_table.html create mode 100644 src/_includes/toc.html create mode 100644 src/_layouts/sidebar-toc.html delete mode 100644 src/how-to/get-connected.html create mode 100644 src/how-to/get-connected.md diff --git a/src/_data/how_to/get_connected.yml b/src/_data/how_to/get_connected.yml deleted file mode 100644 index 19191679..00000000 --- a/src/_data/how_to/get_connected.yml +++ /dev/null @@ -1,72 +0,0 @@ -toc: - - title: Getting started - subsection_items: - - title: What is connectivity? - url: "what-is-connectivity" - paragraphs: - - text: From accepting mobile wallets for fare payments to giving the live location of a bus, transit is using more technology to improve the rider experience. Cellular data is the power behind this new technology. Types of devices may include: - - text: - - text: As transit continues to modernize, more devices can be expected to leverage cellular data and connectivity. - - title: How do data plans work? - url: "how-do-data-plans-work" - paragraphs: - - text: Your technology can be connected through multiple SIMs (one per device) or a single SIM (one in a router). - - text:

Multiple SIMs

- - text: Each device could be powered by a SIM that connects to the network. These SIMs would have smaller data plans. - - text:
Devices connect to network.
- - text:

Single SIM

- - text: A single router could provide connectivity to multiple devices. The router’s SIM would need a larger data plan. - - text:
Router connects to network. Devices connect to router.
- - title: How do I get started? - url: "how-do-I-get-started" - paragraphs: - - text: We welcome you to browse this guide to understand the process and your next steps. Data plans can be found on our contracts page. If you are interested in purchasing the FirstNet data plans, self-serve instructions can be found here. - - text: Should you have additional questions or want support in implementing data plans for your fleet, we ask that you complete our contact form for Cal-ITP support. - - text: Contact us - - title: Choosing a data plan - subsection_items: - - title: How much data do I need? - url: "how-much-data-do-I-need" - paragraphs: - - text: How much data you use depends on how many devices are on each vehicle. Typical usage for GTFS software and two fare payment validators is 3 GB/month. - - html: "/how_to/get_connected_plan_table.html" - - title: What carriers are available to purchase data plans from? - url: "what-carriers-are-available-to-purchase-data-plans-from" - paragraphs: - - text: We currently have contracts with: - - text: - - text: Carriers provide different coverage depending on location, so it is important to evaluate which best covers your service area. You can use FCC data to evaluate Verizon, T-Mobile, and AT&T coverage. You can review FirstNet coverage on their website. - - title: What if I need to change carriers? - url: "what-if-I-need-to-change-carriers" - paragraphs: - - text: If you already have a data plan, you can switch by either immediately canceling your current contract or by not renewing upon contract expiration. - - text: If your contract is month-to-month, you can simply switch once your new contract is in place. This process tends to be easier and more seamless. - - text: If your contract is on a fixed time period, you can switch when the old one expires. You will need to sync the start of the new contract with the expiration of the old one to reduce the risk of service lapse. - - title: What are the data plan prices? - url: "what-are-the-data-plan-prices" - paragraphs: - - text: All four major carriers offer data-only plans that agencies can leverage. You can access data plans in the commercial marketplace or at discounted rates on CalNet or on NASPO. - - html: "/how_to/get_connected_pricing_table.html" - - text: In California, transit providers can access the FirstNet plan for their fleets. - - text: Interested in tapping these rates? Contact us to get started today! Our team is happy to answer questions and guide you through the process. - - text: Get in touch - - title: Where can I access the data plan rates? - url: "where-can-i-access-non-firstnet" - paragraphs: - - text: Data plan rates for AT&T, T-Mobile, and Verizon can be found on either CalNet or on NASPO. - - text: FirstNet data plan rates are available through the self-service instructions on the Data Plan Procurement Self-Service Instructions. - - text: CalNet supports a dedicated page with self-service instructions to access these rate plans. View Cellular Data Plans for CA Agencies. - - NASPO rate plans can be found by searching NASPO ValuePoint website for each carrier’s contract. - - title: New data plan options - subsection_items: - - title: Why do the FirstNet plans have tiers? What do these tiers mean? - url: "firstnet-tiers" - paragraphs: - - text: FirstNet created data plans tailored for transit agencies at a competitive price. The tiers incentivize more collective purchases and were designed to enable discounted rates in a way that works for their business case. - - text: The FirstNet tier prices are based on bulk volume purchased on that contract vehicle, (i.e., total number purchased by all agencies combined, not the number of SIMs purchased by an individual agency). Tier II pricing is guaranteed through March 2024. When the Tier III threshold is reached, all agencies will see their plans further discounted. - - title: Can FirstNet be used for any device and use case? - url: "firstnet-devices-use-case" - paragraphs: - - text: FirstNet only works for operations-facing use cases, given it is a first responder network. This means it cannot be used for passenger WiFi. Additionally, devices are required to have an additional security certification to operate on the federal network. This certification is common but not universal. For agencies purchasing hardware devices from the California Mobility Marketplace, the table below summarizes what networks each device is certified to operate on. - - text: A FirstNet representative can verify eligibility for your specific use cases and also confirm network compatibility with your devices. You can contact them at rc628k@att.com and bp1401@att.com. - - text: If your device is not eligible for FirstNet, you may still be able to get the same rates on the commercial AT&T network. Please contact the FirstNet representatives above to learn more. diff --git a/src/_includes/how_to/get_connected_plan_table.html b/src/_includes/how_to/get_connected_plan_table.html deleted file mode 100644 index efae0522..00000000 --- a/src/_includes/how_to/get_connected_plan_table.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - -
1 GB -
    -
  • GTFS-RT or 1 fare payment validator
  • -
-
2 GB -
    -
  • GTFS-RT
  • -
  • 2 fare payment validators
  • -
-
Unlimited -
    -
  • GTFS-RT
  • -
  • 2 fare payment validators
  • -
  • Cameras
  • -
  • CAD/AVL
  • -
-
diff --git a/src/_includes/how_to/get_connected_pricing_table.html b/src/_includes/how_to/get_connected_pricing_table.html deleted file mode 100644 index 96c10508..00000000 --- a/src/_includes/how_to/get_connected_pricing_table.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Note: Prices shown are the lowest available between CalNet and NASPO for that size plan -
Carrier - FirstNet
(NASPO) -
- AT&T
(CalNet + NASPO) -
- T-Mobile
(CalNet + NASPO) -
- Verizon
- (CalNet + NASPO) -
- Tiers
-
Tier 1
< 3,000 SIMs
Tier 2
3k - 9,999 SIMs
Tier 3
>9,999 SIMs
---
1 GB$10.00$7.50$4.99$20.00$8.00$15.00
2 GBN/AN/AN/A$23.00$10.00$20.00
3 GB$25.00$20.00$14.99$30.00N/AN/A
5 GBN/AN/AN/A$28.00$21.21$25.00
25 GB$34.00$34.00$29.99N/AN/AN/A
UnlimitedN/AN/AN/A$50.00N/A$34.99
diff --git a/src/_includes/toc.html b/src/_includes/toc.html new file mode 100644 index 00000000..bc90d08a --- /dev/null +++ b/src/_includes/toc.html @@ -0,0 +1,189 @@ +{% capture tocWorkspace %} + {% comment %} + Copyright (c) 2017 Vladimir "allejo" Jimenez + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + {% endcomment %} + {% comment %} + Version 1.2.1 + https://github.com/allejo/jekyll-toc + + "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe + + Usage: + {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %} + + Parameters: + * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll + + Optional Parameters: + * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC + * class (string) : '' - a CSS class assigned to the TOC + * id (string) : '' - an ID to assigned to the TOC + * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored + * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored + * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list + * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level + * submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level + * base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content + * anchor_class (string) : '' - add custom class(es) for each anchor element + * skip_no_ids (bool) : false - skip headers that do not have an `id` attribute + * flat_toc (bool) : false - when set to true, the TOC will be a single level list + + Output: + An ordered or unordered list representing the table of contents of a markdown block. This snippet will only + generate the table of contents and will NOT output the markdown given to it + {% endcomment %} + + {% capture newline %} + {% endcapture %} + {% assign newline = newline | rstrip %} + + {% capture deprecation_warnings %}{% endcapture %} + + {% if include.baseurl %} + {% capture deprecation_warnings %}{{ deprecation_warnings }}{{ newline }}{% endcapture %} + {% endif %} + + {% if include.skipNoIDs %} + {% capture deprecation_warnings %}{{ deprecation_warnings }}{{ newline }}{% endcapture %} + {% endif %} + + {% capture jekyll_toc %}{% endcapture %} + {% assign orderedList = include.ordered | default: false %} + {% assign flatToc = include.flat_toc | default: false %} + {% assign baseURL = include.base_url | default: include.baseurl | default: '' %} + {% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %} + {% assign minHeader = include.h_min | default: 1 %} + {% assign maxHeader = include.h_max | default: 6 %} + {% assign nodes = include.html | strip | split: ' maxHeader %} + {% continue %} + {% endif %} + + {% assign _workspace = node | split: '' | first }}>{% endcapture %} + {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} + + {% if include.item_class and include.item_class != blank %} + {% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %} + {% endif %} + + {% if include.submenu_class and include.submenu_class != blank %} + {% assign subMenuLevel = currLevel | minus: 1 %} + {% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %} + {% endif %} + + {% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %} + + {% if htmlID %} + {% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %} + + {% if include.anchor_class %} + {% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %} + {% endif %} + + {% capture listItem %}{{ anchorBody }}{% endcapture %} + {% elsif skipNoIDs == true %} + {% continue %} + {% else %} + {% capture listItem %}{{ anchorBody }}{% endcapture %} + {% endif %} + + {% if currLevel > lastLevel and flatToc == false %} + {% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %} + {% elsif currLevel < lastLevel and flatToc == false %} + {% assign repeatCount = lastLevel | minus: currLevel %} + + {% for i in (1..repeatCount) %} + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} + {% endfor %} + + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} + {% else %} + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} + {% endif %} + + {% capture jekyll_toc %}{{ jekyll_toc }}{{ listItem }}{% endcapture %} + + {% assign lastLevel = currLevel %} + {% assign firstHeader = false %} + {% endfor %} + + {% if flatToc == true %} + {% assign repeatCount = 1 %} + {% else %} + {% assign repeatCount = minHeader | minus: 1 %} + {% assign repeatCount = lastLevel | minus: repeatCount %} + {% endif %} + + {% for i in (1..repeatCount) %} + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} + {% endfor %} + + {% if jekyll_toc != '' %} + {% assign rootAttributes = '' %} + {% if include.class and include.class != blank %} + {% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %} + {% endif %} + + {% if include.id and include.id != blank %} + {% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %} + {% endif %} + + {% if rootAttributes %} + {% assign nodes = jekyll_toc | split: '>' %} + {% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %} + {% endif %} + {% endif %} +{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}} diff --git a/src/_layouts/sidebar-toc.html b/src/_layouts/sidebar-toc.html new file mode 100644 index 00000000..cda37c65 --- /dev/null +++ b/src/_layouts/sidebar-toc.html @@ -0,0 +1,34 @@ +--- +layout: default +--- + +{% assign _workspace = content | split: '' %} +{% assign preface = _workspace[0] %} +{% assign real_content = _workspace[1] %} + +{{ preface }} + +
+
+
+
+

Table of contents

+ +
+ {% include toc.html html=real_content class="list-unstyled.table-of-contents" submenu_class="list-unstyled" h_max=3 %} +
+
+
+
+ {{ real_content }} +
+
+
diff --git a/src/_sass/components/_toc-and-content.scss b/src/_sass/components/_toc-and-content.scss index c6e41748..7fc57a5c 100644 --- a/src/_sass/components/_toc-and-content.scss +++ b/src/_sass/components/_toc-and-content.scss @@ -119,3 +119,21 @@ } } } + +.table-of-contents { + & > li > a { + color: #000; + font-family: var(--bs-body-font-family) !important; + font-weight: 700; + } + + li { + margin: 1.25rem 0; + } + + ul { + a { + font-weight: 500 !important; + } + } +} diff --git a/src/how-to/get-connected.html b/src/how-to/get-connected.html deleted file mode 100644 index 91c778a3..00000000 --- a/src/how-to/get-connected.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: default -title: "How To: Get Connected" -class_name: no-footer how-to-go-contactless -show_newsletter: false ---- - -
-
-
-
-

How to Get Connected

-
-

- Whether enabling passengers to tap to pay with mobile wallets or to see the live location of a bus on their phone map, - transit is leveraging cellular data and connectivity to modernize and improve the rider experience. -

-

- California is making it easier for public transit providers to get the data plans they need through - Master Service Agreements (MSAs) established by the California Department of - General Services (DGS). These data plans are available to agencies with the pre-negotiated rates listed. -

-

Reach out to us for support at any time as your agency explores these resources.

- -
-
-
- -
- {% include toc-and-content.html toc_data=site.data.how_to.get_connected.toc %} -
diff --git a/src/how-to/get-connected.md b/src/how-to/get-connected.md new file mode 100644 index 00000000..69bc9574 --- /dev/null +++ b/src/how-to/get-connected.md @@ -0,0 +1,268 @@ +--- +layout: sidebar-toc +title: "How To: Get Connected" +class_name: no-footer how-to-go-contactless +content_class: go-contactless-section go-contactless--how-to +show_newsletter: false +--- + +
+
+
+
+

How to Get Connected

+
+

+ Whether enabling passengers to tap to pay with mobile wallets or to see the live location of a bus on their phone map, + transit is leveraging cellular data and connectivity to modernize and improve the rider experience. +

+

+ California is making it easier for public transit providers to get the data plans they need through + Master Service Agreements (MSAs) established by the California Department of + General Services (DGS). These data plans are available to agencies with the pre-negotiated rates listed. +

+

Reach out to us for support at any time as your agency explores these resources.

+ +
+
+
+ + + +## Getting Started + +### What is connectivity? + +From accepting mobile wallets for fare payments to giving the live location of a bus, transit is using more technology to improve the rider experience. Cellular data is the power behind this new technology. Types of devices may include: + +- Router +- CAD/AVL (Computer-Aided Dispatch / Automatic Vehicle Location) +- Camera feeds +- Passenger WiFi + +As transit continues to modernize, more devices can be expected to leverage cellular data and connectivity. + +### How do data plans work? + +Your technology can be connected through multiple SIMs (one per device) or a single SIM (one in a router). + +#### Multiple SIMs +{:.underline} + +Each device could be powered by a SIM that connects to the network. These SIMs would have smaller data plans. + +
+ Devices connect to network. +
+ +#### Single SIM +{:.underline} + +A single router could provide connectivity to multiple devices. The router’s SIM would need a larger data plan. + +
+ Router connects to network. Devices connect to router. +
+ +### How do I get started? + +We welcome you to browse this guide to understand the process and your next steps. Data plans can be found on our [contracts](/contracts/view?contracts-filter-product=Data Plans) page. If you are interested in purchasing the FirstNet data plans, self-serve instructions can be found [here](https://resources.calitp.org/mobility-marketplace/FirstNet-Self-Service-Instructions.pdf){:target="_blank"}. + +Should you have additional questions or want support in implementing data plans for your fleet, we ask that you complete our contact form for Cal-ITP support. + +Contact us + +## Choosing a data plan + +### How much data do I need? + +How much data you use depends on how many devices are on each vehicle. Typical usage for GTFS software and two fare payment validators is 3 GB/month. + + + + + + + + + + + + + + +
1 GB +
    +
  • GTFS-RT or 1 fare payment validator
  • +
+
2 GB +
    +
  • GTFS-RT
  • +
  • 2 fare payment validators
  • +
+
Unlimited +
    +
  • GTFS-RT
  • +
  • 2 fare payment validators
  • +
  • Cameras
  • +
  • CAD/AVL
  • +
+
+ +### What carriers are available to purchase data plans from? + +We currently have contracts with: + +- AT&T +- FirstNet +- T-Mobile +- Verizon + +Carriers provide different coverage depending on location, so it is important to evaluate which best covers your service area. You can use [FCC data](https://fcc.maps.arcgis.com/apps/webappviewer/index.html?id=6c1b2e73d9d749cdb7bc88a0d1bdd25b){:target="_blank"} to evaluate Verizon, T-Mobile, and AT&T coverage. You can review [FirstNet coverage on their website](https://www.firstnet.com/coverage.html){:target="_blank"}. + +### What if I need to change carriers? + +If you already have a data plan, you can switch by either immediately canceling your current contract or by not renewing upon contract expiration. + +If your contract is month-to-month, you can simply switch once your new contract is in place. This process tends to be easier and more seamless. + +If your contract is on a fixed time period, you can switch when the old one expires. You will need to sync the start of the new contract with the expiration of the old one to reduce the risk of service lapse. + +### What are the data plan prices? + +All four major carriers offer data-only plans that agencies can leverage. You can access data plans in the commercial marketplace or at discounted rates on CalNet or on NASPO. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Note: Prices shown are the lowest available between CalNet and NASPO for that size plan +
Carrier + FirstNet
(NASPO) +
+ AT&T
(CalNet + NASPO) +
+ T-Mobile
(CalNet + NASPO) +
+ Verizon
+ (CalNet + NASPO) +
+ Tiers
+
Tier 1
< 3,000 SIMs
Tier 2
3k - 9,999 SIMs
Tier 3
>9,999 SIMs
---
1 GB$10.00$7.50$4.99$20.00$8.00$15.00
2 GBN/AN/AN/A$23.00$10.00$20.00
3 GB$25.00$20.00$14.99$30.00N/AN/A
5 GBN/AN/AN/A$28.00$21.21$25.00
25 GB$34.00$34.00$29.99N/AN/AN/A
UnlimitedN/AN/AN/A$50.00N/A$34.99
+ +In California, transit providers can access the FirstNet plan for their fleets. + +Interested in tapping these rates? Contact us to get started today! Our team is happy to answer questions and guide you through the process. + +Get in touch + +### Where can I access the data plan rates? + +Data plan rates for AT&T, T-Mobile, and Verizon can be found on either CalNet or on NASPO. + +FirstNet data plan rates are available through the self-service instructions on the Data Plan Procurement Self-Service Instructions. + +CalNet supports a dedicated page with self-service instructions to access these rate plans. View Cellular Data Plans for CA Agencies. + + + +## New data plan options + +### Why do the FirstNet plans have tiers? What do these tiers mean? +{:#firstnet-tiers} + +FirstNet created data plans tailored for transit agencies at a competitive price. The tiers incentivize more collective purchases and were designed to enable discounted rates in a way that works for their business case. + +The FirstNet tier prices are based on bulk volume purchased on that contract vehicle, (i.e., total number purchased by all agencies combined, not the number of SIMs purchased by an individual agency). Tier II pricing is guaranteed through March 2024. When the Tier III threshold is reached, all agencies will see their plans further discounted. + +### Can FirstNet be used for any device and use case? +{:#firstnet-devices-use-case} + +FirstNet only works for operations-facing use cases, given it is a first responder network. This means it cannot be used for passenger WiFi. Additionally, devices are required to have an additional security certification to operate on the federal network. This certification is common but not universal. For agencies purchasing hardware devices from the California Mobility Marketplace, the table below summarizes what networks each device is certified to operate on. + +A FirstNet representative can verify eligibility for your specific use cases and also confirm network compatibility with your devices. You can contact them at rc628k@att.com and bp1401@att.com. + +If your device is not eligible for FirstNet, you may still be able to get the same rates on the commercial AT&T network. Please contact the FirstNet representatives above to learn more. From e9c65140f013db705c858558f4f890eff9b7e276 Mon Sep 17 00:00:00 2001 From: Vladimir Jimenez Date: Mon, 12 Feb 2024 22:45:20 -0800 Subject: [PATCH 2/4] Migrate go-contactless to markdown --- src/_data/how_to/go_contactless.yml | 67 ----------- src/_sass/components/_toc-and-content.scss | 122 --------------------- src/how-to/go-contactless.html | 30 ----- src/how-to/go-contactless.md | 105 ++++++++++++++++++ 4 files changed, 105 insertions(+), 219 deletions(-) delete mode 100644 src/_data/how_to/go_contactless.yml delete mode 100644 src/how-to/go-contactless.html create mode 100644 src/how-to/go-contactless.md diff --git a/src/_data/how_to/go_contactless.yml b/src/_data/how_to/go_contactless.yml deleted file mode 100644 index 8c607073..00000000 --- a/src/_data/how_to/go_contactless.yml +++ /dev/null @@ -1,67 +0,0 @@ -toc: - - title: Prepare - subsection_items: - - title: Getting started - url: "getting-started" - paragraphs: - - title: How do I get started? - - text: Cal-ITP will provide the resource materials and technical support you need to navigate modernizing your fleet to accept contactless payments. To help us better assist you, we ask that you complete an interest form to request Cal-ITP support. With this information, we can determine how best to support you with developing a project scope, getting buy-in from internal stakeholders, engaging with vendors, and implementing your new fare payments system. - - text: After you complete the form, we welcome you to browse the Contactless Payments MSA Information Packet (PDF) to understand the overall process and your next steps. - - title: What else do I need to know about contactless payments? - - text: If you’d like to learn more about contactless payments or need an informational presentation to share with your staff or board of directors, please review this Contactless Payments Introduction (PDF). - - title: What to know about MSAs? - url: "what-to-know-about-msas" - paragraphs: - - title: What are MSAs? - - text: The California Department of General Services (DGS), in collaboration with Cal-ITP, conducted a Request for Proposals (RFP) that established six competitively awarded Master Service Agreements (MSAs), contracts that allow U.S. public transportation providers to purchase directly from California’s DGS without further competitive bidding. - - text: The MSAs allow any local government entity that operates public transportation services (“transit providers”) to purchase goods and services off of California’s MSAs. Out-of-state transit providers—including but not limited to members of the Oregon Cooperative Procurement Program (ORCPP) and the Washington State Purchasing Cooperative (WSPC)—can also participate. Each transit provider should determine whether use of the MSAs is consistent with its procurement policies and regulations. California’s MSAs are generally known as State Purchasing Schedules in other states. - - text: Projects resulting from these MSAs may be funded through grants from the Federal Transit Administration (FTA), and/or the State of California, California Department of Transportation (Caltrans), and other sources of local and state public funding. Check with your funding agencies. - - title: GTFS Compliance - url: "gtfs-compliance" - paragraphs: - - text: General Transit Feed Specification (GTFS) is the global standard for providing up-to-date transit information. We recommend creating an action plan for becoming GTFS-ready before going contactless, as the contactless payment hardware and software services vendors you select can help you use this data for reporting purposes plus help your customers see your real-time vehicle location and fare information on journey-planning smartphone maps and apps. - - title: Connectivity - url: "connectivity" - paragraphs: - - text: You’ll need to ensure internet connectivity on your fleet to properly enable contactless fare collection. You can view details on Data Plans here. Your transit agency may be eligible to upgrade your cellular data plan and save on your monthly connectivity costs. - - title: How much will this cost? - url: "how-much-will-this-cost" - paragraphs: - - text: When you’re ready to start creating cost estimates for purchasing contactless payment hardware and software services, this MSA Cost Estimation Tool (an Excel Workbook) will help transit agency staff to a) compare MSA-awarded vendors’ maximum prices and develop ballpark estimates for budgeting purposes (and board presentations), and b) make scoping decisions as you prepare to email vendors during the vendor engagement phase. - - title: Purchase - subsection_items: - - title: Assess vendors - url: "assess-vendors" - paragraphs: - - text: You can review available MSAs here. Click through to each contract number for complete terms and conditions and to read MSA User Instructions. - - title: Draft a Scope of Work (SOW) - url: "draft-a-scope-of-work-sow" - paragraphs: - - text: After you’ve read through the Contactless Payments MSA Information Packet and Contactless Payments Introduction, move on to this MSA SOW Template and Guidance (PDF). - - text: This PDF provides detailed guidance for transit agency staff on how to complete a User Agreement Scope of Work (SOW) as required to participate in the MSAs for Payment Acceptance Devices (PADs) and Transit Processor Services. Completing an SOW will assist your agency with key scoping decisions as you work toward purchasing hardware and software services. - - text: Cal-ITP can assist California transit agencies in drafting and/or reviewing their SOW, making sure it includes your desired operating objectives, intended operating environment, and any desired value-added services. Just send the SOW to hello@calitp.org when it’s ready if you haven’t already connected with Cal-ITP. - - - title: Send the SOW to vendors - url: "send-the-sow-to-vendors" - paragraphs: - - text: When your SOW is ready to send to hardware and software services vendors, you can find their contact information in the MSA User Instructions document (which is linked from each vendor’s contract number). We recommend sending the SOW to all MSA-awarded hardware and software services vendors. - - text: You can use this email template when sending out your SOW. Be sure to CC hello@calitp.org. Unless otherwise specified by the transit agency, each vendor will respond within five business days of receiving the SOW. - - title: Review vendor proposals - url: "review-vendor-proposals" - paragraphs: - - text: Look over the proposals you receive from each hardware and software services vendor. Decide which vendors you want to negotiate with. When you reach an agreement, including any necessary value-added services, you’re ready to place your order for hardware and software services by signing a contract for your purchases. - - title: What contract do I sign with the selected vendors? - url: "what-contract-do-I-sign-with-selected-vendors" - paragraphs: - - text: After you’ve finalized the details of your project with the vendor “contractors” you’ve selected, you’ll execute a User Agreement contract and sign it as the “contracting agency.” The User Agreement contract can be the Standard Agreement (STD 213; note that you’ll need Adobe Acrobat or Reader to complete this PDF form) from the California Department of General Services (DGS) or an equivalent contract form, such as this Sample User Agreement, which can be used by transit providers across the U.S. The User Agreement will incorporate by reference the terms of the MSA and contain the Scope of Work and Payment Provisions. - - title: Implement - subsection_items: - - title: Get ready to launch - url: "get-ready-to-launch" - paragraphs: - - text: Cal-ITP can work with you to develop an operational launch plan for your agency, including staff training guides, customer-facing communications, and marketing materials. - - title: Maintenance and support - url: "maintenance-and-support" - paragraphs: - - text: Cal-ITP is here to help! Please download and review our Support Framework - a document you can fill in and use to provide information to your internal team(s) about roles and responsibilities, common troubleshooting steps, how to manage your vendor relationships and how to monitor key performance outcomes. - - text: For additional help, you can contact us for assistance or send an email to hello@calitp.org. diff --git a/src/_sass/components/_toc-and-content.scss b/src/_sass/components/_toc-and-content.scss index 7fc57a5c..72d9949d 100644 --- a/src/_sass/components/_toc-and-content.scss +++ b/src/_sass/components/_toc-and-content.scss @@ -1,125 +1,3 @@ -.toc { - .toc-container { - ul { - list-style: none; - margin: 0; - padding: 0; - li { - padding: 12px 0; - margin: 0; - } - } - a { - text-decoration: none !important; - border: none; - font-weight: 500; - } - } -} - -.content-container { - h2:first-child { - margin-top: calc(8rem / 16); - } - h2 { - margin-top: calc(56rem / 16); - margin-bottom: calc(48rem / 16); - } - h3 { - margin-top: calc(56rem / 16); - margin-bottom: calc(24rem / 16); - } -} - -@include media-breakpoint-up(md) { - #toc-and-content { - div :target::before { - // see: https://stackoverflow.com/questions/4086107/fixed-page-header-overlaps-in-page-anchors - display: block; - content: ""; - height: 1px !important; - margin: -1px 0 0 !important; - } - } - - .toc { - .toc-container { - position: sticky; - position: -webkit-sticky; - top: 0; - .h4 { - font-family: var(--bs-body-font-family) !important; - padding: 12px 0; - margin: 0; - } - } - } -} - -@include media-breakpoint-down(md) { - #toc-and-content { - div :target::before { - // this ensures clicking an anchor tag takes you to the right spot - display: block; // without this code, the fixed header blocks the anchor tag from showing up - content: ""; // see: https://stackoverflow.com/questions/4086107/fixed-page-header-overlaps-in-page-anchors - height: 68px !important; - margin: -68px 0 0 !important; - } - } - - .toc { - padding: 0; - position: -webkit-sticky; - position: sticky; - z-index: 1020; - top: 0; - .toc-container { - .toggle-menu { - width: 100%; - background: white; - color: $primary; - border-top: 1px solid #d7d7d7; - border-left: none; - border-right: none; - border-bottom: 1px solid #d7d7d7; - text-align: left; - height: 64px; - padding-left: 16px; - &.show { - border-bottom: 1px solid #ffffff; - } - &::after { - position: absolute; - content: ""; - border: solid $primary; - border-width: 0 3px 3px 0; - display: inline-block; - padding: 3px; - top: calc(50% - 6px); - right: 20px; - transform: rotate(45deg); - transition: transform 0.3s ease-in-out; - } - &.show::after { - transform: rotate(225deg); - } - } - ul { - border-top-color: #ffffff; - .dropdown-item-text { - margin: 0; - padding: 0 16px; - } - .h5 a { - color: $primary; - white-space: break-spaces; - padding: 0 16px; - } - } - } - } -} - .table-of-contents { & > li > a { color: #000; diff --git a/src/how-to/go-contactless.html b/src/how-to/go-contactless.html deleted file mode 100644 index 91a3adc1..00000000 --- a/src/how-to/go-contactless.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: default -title: "How To: Go Contactless" -class_name: no-footer how-to-go-contactless -show_newsletter: false ---- - -
-
-
-
-

How to Go Contactless

-
-

- California is making it easier for public transit providers to accept contactless credit/debit/prepaid cards or mobile - wallets on a smart device through Master Service Agreements (MSAs) established by the California Department of General - Services (DGS). Transit providers can take advantage of the MSAs to purchase the key hardware and software needed to - accept contactless payments. -

-

Reach out to us for support at any time as your agency explores these resources.

- -
-
-
- -
- {% include toc-and-content.html toc_data=site.data.how_to.go_contactless.toc %} -
diff --git a/src/how-to/go-contactless.md b/src/how-to/go-contactless.md new file mode 100644 index 00000000..3bbad768 --- /dev/null +++ b/src/how-to/go-contactless.md @@ -0,0 +1,105 @@ +--- +layout: sidebar-toc +title: "How To: Go Contactless" +class_name: no-footer how-to-go-contactless +content_class: go-contactless-section go-contactless--how-to +show_newsletter: false +--- + +
+
+
+
+

How to Go Contactless

+
+

+ California is making it easier for public transit providers to accept contactless credit/debit/prepaid cards or mobile + wallets on a smart device through Master Service Agreements (MSAs) established by the California Department of General + Services (DGS). Transit providers can take advantage of the MSAs to purchase the key hardware and software needed to + accept contactless payments. +

+

Reach out to us for support at any time as your agency explores these resources.

+ +
+
+
+ + + +## Prepare + +### Getting started + +#### How do I get started? + +Cal-ITP will provide the resource materials and technical support you need to navigate modernizing your fleet to accept contactless payments. To help us better assist you, we ask that you complete an [interest form](/contact) to request Cal-ITP support. With this information, we can determine how best to support you with developing a project scope, getting buy-in from internal stakeholders, engaging with vendors, and implementing your new fare payments system. + +After you complete the form, we welcome you to browse the [Contactless Payments MSA Information Packet (PDF)](https://resources.calitp.org/mobility-marketplace/Contactless-Payments-MSA-Information-Packet.pdf){:target="_blank"} to understand the overall process and your next steps. + +#### What else do I need to know about contactless payments? + +If you’d like to learn more about contactless payments or need an informational presentation to share with your staff or board of directors, please review this [Contactless Payments Introduction (PDF)](https://resources.calitp.org/mobility-marketplace/Contactless-Payments-Introduction.pdf){:target="_blank"}. + +### What to know about MSAs? + +#### What are MSAs? + +The California Department of General Services (DGS), in collaboration with Cal-ITP, conducted a Request for Proposals (RFP) that established six competitively awarded Master Service Agreements (MSAs), contracts that allow U.S. public transportation providers to purchase directly from California’s DGS without further competitive bidding. + +The MSAs allow any local government entity that operates public transportation services (“transit providers”) to purchase goods and services off of California’s MSAs. Out-of-state transit providers—including but not limited to members of the Oregon Cooperative Procurement Program (ORCPP) and the Washington State Purchasing Cooperative (WSPC)—can also participate. Each transit provider should determine whether use of the MSAs is consistent with its procurement policies and regulations. California’s MSAs are generally known as State Purchasing Schedules in other states. + +Projects resulting from these MSAs may be funded through grants from the Federal Transit Administration (FTA), and/or the State of California, California Department of Transportation (Caltrans), and other sources of local and state public funding. Check with your funding agencies. + +### GTFS Compliance + +[General Transit Feed Specification (GTFS)](https://dot.ca.gov/cal-itp/california-minimum-general-transit-feed-specification-gtfs-guidelines){:target="_blank"} is the global standard for providing up-to-date transit information. We recommend creating an action plan for becoming GTFS-ready before going contactless, as the contactless payment hardware and software services vendors you select can help you use this data for reporting purposes plus help your customers see your real-time vehicle location and fare information on journey-planning smartphone maps and apps. + +### Connectivity + +You’ll need to ensure internet connectivity on your fleet to properly enable contactless fare collection. You can view [details on Data Plans](/contracts/view?contracts-filter-product=Data%20Plans). Your transit agency may be eligible to upgrade your cellular data plan and save on your monthly connectivity costs. + +### How much will this cost? + +When you’re ready to start creating cost estimates for purchasing contactless payment hardware and software services, this [MSA Cost Estimation Tool (an Excel Workbook)](https://resources.calitp.org/mobility-marketplace/MSA-Cost-Estimation-Tool.xlsx){:target="_blank"} will help transit agency staff to a) compare MSA-awarded vendors’ maximum prices and develop ballpark estimates for budgeting purposes (and board presentations), and b) make scoping decisions as you prepare to email vendors during the vendor engagement phase. + +## Purchase + +### Assess vendors + +You can review [available MSAs](/contracts/). Click through to each contract number for complete terms and conditions and to read MSA User Instructions. + +### Draft a Scope of Work (SOW) + +After you’ve read through the Contactless Payments MSA Information Packet and Contactless Payments Introduction, move on to this [MSA SOW Template and Guidance (PDF)](https://resources.calitp.org/mobility-marketplace/MSA-SOW-Template-and-Guidance.pdf){:target="_blank"}. + +This PDF provides detailed guidance for transit agency staff on how to complete a User Agreement Scope of Work (SOW) as required to participate in the MSAs for Payment Acceptance Devices (PADs) and Transit Processor Services. Completing an SOW will assist your agency with key scoping decisions as you work toward purchasing hardware and software services. + +Cal-ITP can assist California transit agencies in drafting and/or reviewing their SOW, making sure it includes your desired operating objectives, intended operating environment, and any desired value-added services. Just send the SOW to [hello@calitp.org](mailto:hello@calitp.org) when it’s ready if you haven’t already connected with Cal-ITP. + +### Send the SOW to vendors + +When your SOW is ready to send to hardware and software services vendors, you can find their contact information in the MSA User Instructions document (which is linked from each vendor’s contract number). We recommend sending the SOW to all MSA-awarded hardware and software services vendors. + +You can use [this email template](https://resources.calitp.org/mobility-marketplace/MSA_VendorContact_EmailTemplate.docx){:target="_blank"} when sending out your SOW. Be sure to CC [hello@calitp.org](mailto:hello@calitp.org). Unless otherwise specified by the transit agency, each vendor will respond within five business days of receiving the SOW. + +### Review vendor proposals + +Look over the proposals you receive from each hardware and software services vendor. Decide which vendors you want to negotiate with. When you reach an agreement, including any necessary value-added services, you’re ready to place your order for hardware and software services by signing a contract for your purchases. + +### What contract do I sign with the selected vendors? + +After you’ve finalized the details of your project with the vendor “contractors” you’ve selected, you’ll execute a User Agreement contract and sign it as the “contracting agency.” The User Agreement contract can be the Standard Agreement ([STD 213](https://www.documents.dgs.ca.gov/dgs/fmc/pdf/std213.pdf){:target="_blank"}; note that you’ll need Adobe Acrobat or Reader to complete this PDF form) from the California Department of General Services (DGS) or an equivalent contract form, such as this [Sample User Agreement](https://resources.calitp.org/mobility-marketplace/User-Agreement-Contract-Form_MSA%205-21-70-28.docx){:target="_blank"}, which can be used by transit providers across the U.S. The User Agreement will incorporate by reference the terms of the MSA and contain the Scope of Work and Payment Provisions. + +## Implement + +### Get ready to launch + +Cal-ITP can work with you to develop an operational launch plan for your agency, including staff training guides, customer-facing communications, and marketing materials. + +### Maintenance and support + +Cal-ITP is here to help! Please download and review our [Support Framework](https://docs.google.com/presentation/d/1J_4TvF5fhI73fE4xcGPQ6e6atehFyEIx/edit#slide=id.p1){:target="_blank"} - a document you can fill in and use to provide information to your internal team(s) about roles and responsibilities, common troubleshooting steps, how to manage your vendor relationships and how to monitor key performance outcomes. + +For additional help, you can [contact us](/contact) for assistance or send an email to [hello@calitp.org](mailto:hello@calitp.org). From 9dd22300b4eb9ffa12afd40aa7ad14b082ab2115 Mon Sep 17 00:00:00 2001 From: Vladimir Jimenez Date: Tue, 13 Feb 2024 00:57:48 -0800 Subject: [PATCH 3/4] reach style parity for toc --- src/_includes/toc-and-content.html | 50 ------- src/_layouts/sidebar-toc.html | 13 +- src/_sass/components/_toc-and-content.scss | 164 ++++++++++++++++++++- 3 files changed, 167 insertions(+), 60 deletions(-) delete mode 100644 src/_includes/toc-and-content.html diff --git a/src/_includes/toc-and-content.html b/src/_includes/toc-and-content.html deleted file mode 100644 index d753d6a6..00000000 --- a/src/_includes/toc-and-content.html +++ /dev/null @@ -1,50 +0,0 @@ -
-
-
-

Table of contents

- -
- {% for item in include.toc_data %} -

{{ item.title }}

- - {% endfor %} -
-
- -
-
-
-
- {% for item in include.toc_data %} -

{{ item.title }}

- {% for subsection_item in item.subsection_items %} -

{{ subsection_item.title }}

- {% for paragraph in subsection_item.paragraphs %} {% if paragraph.title %} -

{{ paragraph.title }}

- {% endif %} -

{{ paragraph.text }}

- {% if paragraph.html %} {% include {{paragraph.html}} %}{% endif %} {% endfor %} {% endfor %} {% endfor %} -
-
diff --git a/src/_layouts/sidebar-toc.html b/src/_layouts/sidebar-toc.html index cda37c65..dc182823 100644 --- a/src/_layouts/sidebar-toc.html +++ b/src/_layouts/sidebar-toc.html @@ -9,9 +9,9 @@ {{ preface }}
-
-
-
+
+
+

Table of contents

-
- {% include toc.html html=real_content class="list-unstyled.table-of-contents" submenu_class="list-unstyled" h_max=3 %} +
+ {% include toc.html html=real_content class="table-of-contents" h_max=3 %} +
+
+ {% include toc.html html=real_content class="dropdown-menu table-of-contents w-100" anchor_class="dropdown-item" h_max=3 %}
diff --git a/src/_sass/components/_toc-and-content.scss b/src/_sass/components/_toc-and-content.scss index 72d9949d..8a64ef40 100644 --- a/src/_sass/components/_toc-and-content.scss +++ b/src/_sass/components/_toc-and-content.scss @@ -1,12 +1,154 @@ +.toc { + .toc-container { + ul { + list-style: none; + margin: 0; + padding: 0; + + li { + padding: 12px 0; + margin: 0; + } + } + + a { + text-decoration: none !important; + border: none; + font-weight: 500; + } + } +} + +.content-container { + h2:first-child { + margin-top: calc(8rem / 16); + } + h2 { + margin-top: calc(56rem / 16); + margin-bottom: calc(48rem / 16); + } + h3 { + margin-top: calc(56rem / 16); + margin-bottom: calc(24rem / 16); + } +} + +@include media-breakpoint-up(md) { + #toc-and-content { + div :target::before { + // see: https://stackoverflow.com/questions/4086107/fixed-page-header-overlaps-in-page-anchors + display: block; + content: ""; + height: 1px !important; + margin: -1px 0 0 !important; + } + } + + .toc { + .toc-container { + position: sticky; + position: -webkit-sticky; + top: 0; + + .h4 { + font-family: var(--bs-body-font-family) !important; + padding: 12px 0; + margin: 0; + } + } + } +} + +@include media-breakpoint-down(md) { + #toc-and-content { + div :target::before { + // this ensures clicking an anchor tag takes you to the right spot + display: block; // without this code, the fixed header blocks the anchor tag from showing up + content: ""; // see: https://stackoverflow.com/questions/4086107/fixed-page-header-overlaps-in-page-anchors + height: 68px !important; + margin: -68px 0 0 !important; + } + } + + .toc { + padding: 0; + position: -webkit-sticky; + position: sticky; + z-index: 1020; + top: 0; + + .toc-container { + .toggle-menu { + width: 100%; + background: white; + color: $primary; + border-top: 1px solid #d7d7d7; + border-left: none; + border-right: none; + border-bottom: 1px solid #d7d7d7; + text-align: left; + height: 64px; + padding-left: 16px; + + &.show { + border-bottom: 1px solid #ffffff; + } + + &::after { + position: absolute; + content: ""; + border: solid $primary; + border-width: 0 3px 3px 0; + display: inline-block; + padding: 3px; + top: calc(50% - 6px); + right: 20px; + transform: rotate(45deg); + transition: transform 0.3s ease-in-out; + } + + &.show::after { + transform: rotate(225deg); + } + } + } + } + + .table-of-contents { + border-bottom: 1px solid #d7d7d7; + border-top: 1px solid #ffffff; + + & > li > a { + padding-bottom: 0; + padding-top: 0; + } + } +} + .table-of-contents { - & > li > a { - color: #000; - font-family: var(--bs-body-font-family) !important; - font-weight: 700; + line-height: 1.2; + margin: 0; + padding: 0; + + & > li { + padding: 0 !important; + + & > a { + color: #000; + font-family: var(--bs-body-font-family) !important; + font-weight: 700 !important; + } + } + + & > li > ul { + li a { + color: $primary; + white-space: break-spaces; + } } li { - margin: 1.25rem 0; + margin: 1.25rem; } ul { @@ -14,4 +156,16 @@ font-weight: 500 !important; } } + + & > li > a { + display: inline-block; + padding-bottom: 12px; + padding-top: 12px; + width: 100% + } + + ul .dropdown-item { + padding-bottom: 0; + padding-top: 0; + } } From d156ab44973f6e249aaa4361c74c20dd359770d9 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 08:59:06 +0000 Subject: [PATCH 4/4] chore(pre-commit): autofix run --- src/how-to/get-connected.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/how-to/get-connected.md b/src/how-to/get-connected.md index 69bc9574..be5a91f3 100644 --- a/src/how-to/get-connected.md +++ b/src/how-to/get-connected.md @@ -255,7 +255,7 @@ CalNet supports a dedicated page with self-service instructions to access these {:#firstnet-tiers} FirstNet created data plans tailored for transit agencies at a competitive price. The tiers incentivize more collective purchases and were designed to enable discounted rates in a way that works for their business case. - + The FirstNet tier prices are based on bulk volume purchased on that contract vehicle, (i.e., total number purchased by all agencies combined, not the number of SIMs purchased by an individual agency). Tier II pricing is guaranteed through March 2024. When the Tier III threshold is reached, all agencies will see their plans further discounted. ### Can FirstNet be used for any device and use case?