DEV Community


Project Design and Implementation: part-2.0

Python programmer!
Updated on ・2 min read

Once I was done with choosing the Django Web Framework, I had to step into the DESIGN part of the website.
It was a basic online food ordering website.
Any customers can easily visit our website from their convenient browsers (through desktops or mobile).
Our website has two web interfaces: the customer web interface and the chef web interface.
In the customer web interface, a customer has to sign in to place some orders online.
Customers can make the online payments through the Razorpay payment gateway API that is integrated.
Customers can also track their order status easily.
As I said earlier, our website also has the admin panel that can be accessed only by the superusers.
The chefs are the superusers in our case.
Since our website is dynamic, the chefs can handle the customer UI from the admin panel by adding, deleting or updating the menu, order status, the events, etc.
All the orders placed by the customers along with the payment details will be reflected in the chef web interface.

Moving on to the IMPLEMENTATION part...
The MVT architecture, ORM, routing, Razorpay payment gateway API, PostgreSQL and psycopg2 were some of the main parts of the implementation.
I also designed the database schema as per the website requirements. The database was logically divided into 2 parts;
ONE- the part which maintained the data about the users (customers) and the superusers (chefs).
TWO- the part which had the hotel related data like the events, the menu, the items, the orders etc.
Since we have this ORM, I didn't have to write SQL queries, instead I handled the database using the Python classes, functions and the objects. (Thanks to DJANGO).

You can read about the implementation of the MVT architecture in the part-2.1 of this series.

Discussion (0)