Convenience, Security give new Myanmar Ride-Hailing App an Edge

As reported in Channel News Asia, 29 January 2016 by May Wong. 

Ride-hailing apps are spreading throughout Asia and Myanmar is the latest country to jump on this increasingly popular bandwagon, with the planned launch of an Uber-style service.

Mr Saw Myo Chit, a 33-year-old father of two, is a driver for a local company and earns about US$300 a month. However, with a two-week-old newborn and a wife who is taking care of the children full-time, he wanted to boost his income. He recently signed up to be an Oway Ride driver.

“I was working five and a half days a week and had Sundays off, so I joined Oway Ride. This way, I can drive and earn extra money for my family,” said Mr Saw Myo Chit. “I hope to earn more than US$150.”

Please read here to find out more.

/** * helper function to take the form and * get back a js object with field/value mappings * ignoring submit fields and fields whose name we can't ascertain */ function serialize(form){ return Array.prototype.slice.call(form.elements) .filter(isInputElement) .filter(isNotSubmit) .filter(hasFieldName) .reduce(function(data, node, index) { data[getFieldName(node)] = node.value return data; }, {}); } /** * Check if this form element is of type input */ function isInputElement(node) { return node.tagName.toLowerCase() === 'input'; } /** * Check if this is a 'submit' input element */ function isNotSubmit(node) { return node.type !== 'submit'; } /** * Ensure field has a derived name */ function hasFieldName(node) { return getFieldName(node) !== 'unknown'; } /** * Attempt to ascertain "name" of field. * * they don't give inputs real `name` attributes, so * best guess is to hack around the element's label text, * falling back to the placeholder text. (their html is * not semantic and often labels erroneously reference * parent divs instead of sibling input elements) * * strip out the stars they show when validation fails * * if label is misplaced _and_ there's no placeholder, * this function is insufficient */ function getFieldName(input) { if (!input.labels.length) return input.placeholder || 'unknown'; var labelText = input.labels[0].textContent.trim(); return ~labelText.indexOf(' *') ? labelText.slice(0, labelText.indexOf(' *')) : labelText; } /** * Listen for form submissions and send identify * if you'd like an event too, just delete the '//' in the track line */ document.forms[0].addEventListener('submit', function(e) { analytics.identify(serialize(e.target)); // analytics.track('Submitted Form'); });