Navigator

Traceability insights created from incidents by the PagerDuty API and traffic monitoring via a TomTom (https://developer.tomtom.com/) layer. Navigator reports traffic problems with last-mile parcel delivery for consumers using the Tom Tom Traffic Incidents API and Tom Tom Traffic Flow API in conjunction with the PagerDuty REST API.

Customers can add their tracking numbers to a real-time database and visit their dashboards to receive live crowdsourced updates of traffic incidents, wait times and overall flow of a specific region or zip-code. This data is then mapped using the open-source Leaflet maps using heat-map markers for further visual insights.

How I built it

The server and web app was built using Node.js technologies. The front-end is a single-page React.js app, powered by react-router-dom, @material-ui/core for interfaces and undux for state/store management. The back-end uses Fastify.js for routing and database client drivers like rethinkdb and redis.

I communicated with the PagerDuty API using the `@mapbox/pagerduty' library, and added the TomTom Traffic API to Navigator's API after thinking more about how I wanted to use PagerDuty to monitor traffic and create insights from incidents.

Unfortunately, I found out about the DeveloperWeek Hackathon pretty late and was unable to access the webinar from 06/15/20, so I had only a day to come up with a demo for my concept of real-time traffic monitoring through incidents and log entries. Thankfully both PagerDuty and TomTom have well documented APIs, and sacrificing complexity for the ease of a quick Node.js API proved useful in the end for banging out my idea rather rapidly.

The web app is hosted on Vercel, formerly ZEIT. The API instance is deployed to a VPS using PM2 and Nginx reverse proxies. The database(s), rethinkdb and redis, are self-hosted using a quick docker image pulled from DockerHub. Everything is still a work in progress, but the project is definitely promising for a real-world, world-wide use case: traffic.

What I learned

I learned how powerful PagerDuty and TomTom APIs are. Most people are familiar with PD because they're a part of some software SaaS company that needs hosted incident reporting and analytics, and they needed it yesterday. With this in mind, it's easy to dismiss PagerDuty as another blackbox developer tool to be used for an existing system. I wasn't aware of the real-time possibilities you could explore w/ using PagerDuty as a real-time service.

Of course, the monitoring and analytics bunch is still there, but there's something there that reminds me of Zapier/Twilio for end user reach, and I wish to explore it further. After reading the documentation, I knew I had to find a way to incorporate RethinkDB with the TomTom API for the submission suggestion of traffic.

So far, it's turning out good. Image

What's next for Navigator

My work for Navigator, and the DeveloperWeek Hackathon won't stop at this week. I plan to keep the code open source and continue working on the problem, preferably with a team, to continue investigating useful cases for the PagerDuty API. I hope to create something cool, and if I get bored, leave it to the next promising challenger with a vision for niche real-time logistics tools like me.

Also, I admittedly want to change the name. Navigator is cool, but it doesn't really stick that well. I got it from a old Childish Gambino song.

Image

Share this project:

Updates