Because all of my Summer plans were canceled, I decided to come to Korea and meet my family. These past two weeks have been a new experience for me because I am quarantined at my house: I can't leave the house. Therefore, all the food I have eaten and all the things that I needed were ordered online and delivered to my house. However, I found this system very inefficient, where one person comes to my house with food and the other comes with tools or appliances. I thought that having one person deliver everything was a more efficient solution.

Also, another inspiration of this project was the current state of society during the Coronavirus. With this virus, many businesses and local shops have been decimated. While many companies were destroyed, a few others such as amazon and uber eats thrived. With Uber drivers and many other people unemployed, I think that MDeliver will not have a hard time finding a workforce, a network of delivery drivers. Therefore, MDeliver can potentially lower the unemployment rate. Also, MDeliver will cost less in various cases and will spur interest in various groups of people. Consider this case: a family is building a desk in their house and they are arguing about what they want for lunch. As they work, they figure that a screwdriver may be helpful in building the desk. MDeliver is perfect for cases such as this because MDeliver enables users to request multiple stops: a tools shop, a burger joint, and a Chinese restaurant.

What it does

This project is a submission for the HTNE Hackathon 2020. MDeliver hopes to make buying more convenient and fast. Rather than having delivery drivers deliver from one place at a time, MDeliver provides the option to deliver from places. Unlike other companies that offers the option to deliver from only one restaurant/food place, MDeliver aims to allow customers to order from multiple stores: not only for food, but for groceries, products, and others. More information is in the site linked.

How I built it

I used node.js for backend development and HTML javascript css for frontend development. The backend was created with express.js. For user authentication, I used a tool called bcrypt to create salt and generate passwords and for communication. I created the front end with html and styled it with some css and bootstrap. The app was made interactive with javascript mostly for the map portion of MDeliver. I used Microsoft Azure Maps for the map to place pins and create routes. All POST requests were handled with the help of express middleware and data about credentials (not passwords) was stored as cookies that were cleared after a new login request.

Challenges I ran into

  • I maybe should've used an online builder. I used bootstrap and created all elements by myself and this took a lot of time.
  • Google Maps API was giving me problems because I didn't want to pay money for it and was on the developer version. The directions API for google maps wasn't working because of my lack of subscription so I had to search for other solutions.
  • I luckily found that Microsoft Azure (paid by github student developer pack) had a maps API which was very good. However, I spent an hour trying to figure out why the cdn link wasn't getting the file and it turns out that South Korea(the country I am in right now) is one of two unsupported regions for Microsoft Azure Maps. -Therefore, I had to use a free trial of ghostvpn which was quite slow with every server available with the free version.

Accomplishments that I'm proud of

  • I am proud that I have a working version of my webapp. I didn't think I would finish in time because of all the challenges.
  • I am proud that I decided to finish this project because I was thinking of sleeping early.
  • I am happy that I learned many things along the way.

What I learned

This was my first time using something other than Google Maps API. This was a new experience and I enjoy Azure Maps. I also learned web designing along the way. I looked at courses on making webapps look aesthetically pleasing and I found it helpful and fun. Towards the end of the hackathon, I learned to use others as resources, such as the discord. It was a bit unfortunate knowing about the discord server and the help less than 24 hours before due date.

What's next for MDeliver

  • Creating a better page for POST success, an actual html page. (Same with other pages such as this)
  • Experimenting with it by getting clients locally and testing the process out. (Users and delivery persons)
  • Improving the website (both aesthetics and ease of usage)
  • Getting backers
  • For the map, allowing the navigation mode and creating the shortest route algorithm
  • Better estimations for prices
  • Creating a phone app
Share this project: