This app was mentioned in 8 comments, with an average of 1.00 upvote
Check out TripLog, it can do what you're looking for and has a free 30 day trial. Here's the pricing options after that.
Firstly, it begs a mention to make sure you both understand what you're getting yourself into. This is not a small favour like giving your friend a lift or something. You're doing something that businesses would normally pay thousands of dollars for. And on your friend's part, he's paying an amateur to create something that will require maintenance and likely future change without any way to be sure that this can be done.
If your intent is to simply have your friend's business problem resolved, it'd likely be a better idea to go with an existing app. Eg, here's one for iOS and here's one for Android.
If you still intend to do it yourself, a web application which happens to be mobile friendly is your best bet. You can utilize your existing JavaScript experience on the front end. However, the backend is where the bulk of your learning is going to be. You need to pick a backend option. For example, you can continue with JS by using Node or you can learn a new language/framework (eg, Scala + The Play Framework or Python + Django).
You'd probably want to take advantage of Google maps (or a similar service). Starting point is here. Note that this is not a GPS. You must utilize the phone's geolocation API to get coordinates from the phone's GPS, which you'd use with Google Maps. Google Maps has a directions API you can use to get non-real time directions.
Do be sure to read the Maps ToS carefully. I have not and thus cannot assure you that your app will not violate it or run into issues with max requests, etc. It's up to you to do so.
Anyway, back to your backend, you'll need to implement user accounts, a login system, and the mechanisms to store data such as the driver's location (continuously updated for tracking purposes) and information like when the driver flags a delivery completed. All this needs a database, so you'll likely want to learn SQL to interact with that (although there's other options, depending on backend language, such as LINQ for the .NET languages).
All in all, you're looking at at least a few months of work (although estimating stuff like this is very hard because developer productivity is crazy inconsistent, as is learning periods necessary, the time spent doing debugging, etc). Hope you realize what you'd be getting into.
EDIT: Oh, yeah, and you could do this as a native app, but it'll almost certainly be more difficult. There's the issue of the fact that iOS and Android use different languages and have different APIs (there's frameworks to get around that, but that's yet another thing to learn). There's the fact that you'd probably want the supervisors or whatever to be able to view this tracking info on a desktop PC (easily done for a website, not so easily done for an app). Etc, etc.
According to google there is this one:
https://play.google.com/store/apps/details?id=com.esocialllc.vel&hl=en
Ive never used it but it looks like it has good reviews
A quick search shows this
https://play.google.com/store/apps/details?id=com.esocialllc.vel&hl=en
But I cannot vouch for it.