Skip to content

Food Delivery Client that uses RESTAPI to communicate with backend server. Written in Golang, styled with HTML & CSS

Notifications You must be signed in to change notification settings

sozoalvin/Food-Delivery-Client

Repository files navigation

Food Delivery Client

Full Client that communicates with the backend Server system through REST API for Food Delivery Applications. Written in go/ golang with search, auto complete and suggestive search as well. The server also utilizes different flags that can be switced on and off, depending on environment settings and testing requirements.

View the Entire Project in Action

It is best to open up both the server as well as the client along with the instructions to see the project in action.

Click Here for the Backend Server

Click Here for the Client Server

Introduction

The client app was an extension of the server application to allow different merchants on board to make their own changes to their menu items with us. As the clients' interfaces uses API keys that can be retrieved from the main server after loggin in, merchants are able to make changes to their menu items easily as long as they have their API key, and have a browser to access https://kvclient.sozoalvin.com

Tech Stacks Employed

Amazon Web Services EC2 - Ubuntu

Amazon Web Services RDS - mySQL - Server only (client does not have a direct access to the database)

Amazon Web Servies HTTP/HTTPS LB - load balancer

Understand How RESTAPI works in the Project

Click Here to learn more about how RESTAPI was deployed on the backend server as well as the client's

Instructions on How to Use

Click on image for a direct link to the instructions in PDF format.

Development Envirnonment

For development purposes in your own environment, use the following command once you've in the working directory

go run .

You can access the server on localhost or localhost:80 if the former doesn't work

If you are running the server the same computer/host, please consider changing the ListenAndServe argument from

http.ListenAndServe(":80", router)

to

http.ListenAndServe(":8080", router)

If you do that change, you'll want to access the server on localhost:8080 instead.

Testing for Production

To check if your program is ready for production, use the following command.

go run . -productionFlg

You can access the server on localhost if the former doesn't work

When production flag is activated, your API calls would be routed via https: instead of http

Launching on an Actual Web Server

go run . -productionFlag -domain www.yourdomainname.com

On an actual web server, your domain name to your server has to be specified. If you server has a valid certificate, your should be able to send your requests through https.

Sample RestAPI query URL if -productionFlag and -domain are not specified

http://localhost/api/v1/apivalidation?api=dummy_api_key_here_pleae_paste_your_own

Sample RestAPI query URL if -productionFlag and -domain are specified

https://www.yourdomainname.com/api/v1/apivalidation?api=dummy_api_key_here_pleae_paste_your_own

API Validating is Easy

Merchant Account Setup

Set up your merchant account with your brand's name, detailed location, postal code and operating hours. Now it even includes a cut off timing!

Adding a Food Menu Item

Sample food item being added

Did you know that items added by merchants are immediately searchable and indexed by the main server?

Editing a Food Menu Item

Editing a food menu item doens't have to be complicated when it's only 2 clicks + 2 forms

Deleting a Food Menu Item

Deleting a food menu item is also very straightforward

View All Menu Records

About

Food Delivery Client that uses RESTAPI to communicate with backend server. Written in Golang, styled with HTML & CSS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published