DEV Community

Francesco Borrelli
Francesco Borrelli

Posted on

Create your own delivery app - Let's begin

Hello everybody!
Everyone said to me before starting this series to "start low", don't put too much on the plate or take one step at a time.

Not a chance.

So here we are, first step to create a delivery app.

We will try to tackle all the different parts that are needed for our app and use case. At every stage we are going to make assumptions and make some decisions based on those about the tech stack and approach. The process will be outlined like follow:

  1. Basic requirements
  2. Backend (code + infrastructure)
  3. Frontend (web and mobile)
  4. Observability and maintenance
  5. Planning for the future

For simplicity we are going to focus on food delivery app. Of course the different domain specific part can be changed based on different industries but the core is going to be the same.

We are going to divide the project in three main functional areas:

  • Customer facing (mobile app/website)
  • Admin panel (for us to manage all the clients)
  • Backoffice (website to manage the point of sales and the app for local screens to be used with the till)
  • Riders app (mobile app to manage deliveries etc.)

Let's then focus on some use cases that we want to cover.

Customer facing:

  • User account creation and login
  • Restaurant browsing
  • Menu ordering
  • Payment processing
  • Order tracking
  • Push notifications
  • Address and contact information
  • Review and rating
  • Customer service

Backoffice:

  • Manage orders
  • Manage restaurants
  • Manage menu items
  • Order history and statistics
  • Payment and revenue management
  • Review and rating management
  • Customer service management

Rider App:

  • Rider registration and login
  • GPS tracking
  • Order assignment
  • Navigation
  • Communication
  • Payment processing
  • Document upload and storage
  • Earnings and stats
  • Schedule management
  • Manage multiple orders

Admin panel

  • User account management
  • Role-based access control (rider, client, customer)
  • Client management
  • Order management
  • Payment processing management
  • Reporting and Analytics
  • Customer service management
  • Integration management (ehhh maybe)
  • Push notification management

Does it sounds like a lot? you are totally right.
Of course we are going to start small and add a few piece at a time.
Trying to follow as much this picture:

Image description

For the purpose of this project I'm going to create a Trello board to keep all this tracked (otherwise I'm going to bin everything from day 2) and a Github organization with all the relevant code bases and projects (because yay opensource is good, no?).

General Board | Org git

So, what are you waiting for? go on! Let's start from the juicy backend

Top comments (0)