global goal icon

global goal icon

Travel app GOAN! is the future of mobility in Twente

The new travel app GOAN! was launched in Twente on Tuesday, September 22. The app will first be used as a try-out, where a specific group of travellers will test the app. GOAN! is one of the seven “Mobility as a Service” (MaaS) apps. A trip from A to B can be easily and sustainably planned, booked and paid for with this app. For all types of transport: from a shared bike, Regiotaxi and AutoMaatje to the bus and train. 

Read the full article below
global goal icon

global goal icon

global goal icon

In short

  • MaaS Twente is one of the seven national MaaS pilots, launched by the Ministry of Infrastructure and Water Management, together with municipalities and the province. 
  • Travel app GOAN! has been launched and will initially be used as a try-out. 
  • Everyone will be able to use this app from January 2021. Sustainability and simplicity are paramount in this initiative. 

MaaS Twente is one of the seven national MaaS pilots, launched by the Ministry of Infrastructure and Water Management, together with various municipalities and the province. The MaaS Twente project uses travel app GOAN!. The app was launched on Tuesday, September 22, with a try-out. Alderman Anja Prins (municipality of Losser) is the chairman of MaaS Twente, and she is delighted that GOAN! can now really get going. “We want to make sure that residents can continue participating in society, especially in this day and age”, says Prins. “Transport can be essential for that.”


Error executing template "Designs/TwenteBranding/Paragraph/ReadAlso.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_a64b1fc56ce04988b77b5e7717ffb075.Execute() in D:\inetpub\wwwroot\\Files\Templates\Designs\TwenteBranding\Paragraph\ReadAlso.cshtml:line 23
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @using Dynamicweb.Core 2 @using TwenteBranding.Repository.Helpers 3 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 4 @{ 5 var pageView = Dynamicweb.Frontend.PageView.Current(); 6 var pageService = new Dynamicweb.Content.PageService(); 7 var itemService = new Dynamicweb.Content.ItemService(); 8 var culture = pageView.GlobalTags.GetTagByName("Global:Area.LongLang").Value; 9 var paragraphId = string.Format("par-{0}", Model.ID); 10 } 11 <div class="readalso"> 12 <a name="@paragraphId" class="jump-to-anchor"></a> 13 <h3 class="readalso-title info">@Model.Header</h3> 14 <div class="readalso-articles"> 15 @for (int i = 1; i < 7; i++) 16 { 17 var baseItem = Model.Item.GetItem("Article_" + i); 18 if (baseItem != null) 19 { 20 // base item properties 21 var pageId = baseItem.PageID; 22 var itemId = baseItem.Id; 23 var image = baseItem.GetFile("Image").Path; 24 image = $"/Admin/Public/GetImage.ashx?Image={image}&Format=webp&Width=100&Height=-1&Quality=100&Crop=0&t=2"; 25 26 var backgroundStyle = !string.IsNullOrWhiteSpace(image) ? string.Format("background: url({0});", image) : ""; 27 var instanceType = baseItem.GetString("SystemName"); 28 29 // get TwenteBrandingItem 30 var item = ItemHelper.GetTwenteBrandingItemForPage(itemId, pageId.ToString(), culture, pageService, itemService); 31 32 if (item != null) 33 { 34 // custom properties 35 var mainHashtag = item.MainHashtag.IsNotNullOrEmpty() ? string.Format("{0}", item.MainHashtag) : string.Format("{0}", item.MainHashtagEnglish); 36 var goalClass = item.GoalGradientCss.Replace("gradient", "filter"); 37 var goalIcon = item.GoalIcon; 38 var title = item.Title; 39 var detailsUrl = item.DetailsUrl; 40 41 <div class="readalso-item item-clickable item-readalso"> 42 <div class="readalso-item-text"> 43 <h4 class="sub-header font-color--gray-3">@mainHashtag</h4> 44 <h4 class="font-weight--bold"> 45 <a class="item-link" href="@detailsUrl">@title</a> 46 </h4> 47 </div> 48 <div class="readalso-item-image" style="@backgroundStyle"> 49 <div class="@goalClass"></div> 50 @if (!string.IsNullOrWhiteSpace(goalIcon)) 51 { 52 <img class="item-icon" alt="global goal icon" src="@goalIcon" /> 53 } 54 </div> 55 </div> 56 } 57 } 58 } 59 </div> 60 </div>
More sustainable and cheaper

Alderman Prins is coordinating the development of the app for all eight participating municipalities in Twente: Twenterand, Oldenzaal, Tubbergen, Dinkelland, Hengelo, Enschede, Losser and Haaksbergen. GOAN! will give travellers customised travel advice. Prins: “All Twente residents and visitors will be able to plan easily, book and pay for their trip from A to B in one useful app. Ultimately, we want more sustainable and cheaper transport for travellers, governments and employers.”


Available for everyone from January

The travel app is starting small; only a group of trial users will travel with the app for the time being. It is precious for the developers to see what the trial users are struggling with and what can be done more efficiently. The app can be tested so well, precisely because of the involvement of future users in the further development of GOAN!. User-friendliness will be improved in this way, so that the full roll-out in January 2021 will go smoothly.


Everyone will be able to use GOAN! from January 2021!


Date: 22 September 2020
Source of tekst: GOAN! / MaaS Twente