Skip to content

Project to parse online orders from email periodically and serve them as API after storing in db and displaying using a react frontend

Notifications You must be signed in to change notification settings

kanchansapkota27/central-online-orders

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Online Orders Hub

Note: This project was made for personal use and for a specific use case only. As such there are no testcases or clear documentations.

Background

  • It was made for a restaurant where I worked part time as a cashier and the POS system they used was very old.
  • The online orders would come in fax and email after a while and during busy hours we would miss to put the online orders in the system and we would only know once the customer come to pickup the food.

Approach

  • Read the mail periodically i.e every 2 minutes in this case using background worker i.e django-huey in this approach.
  • Add the orders in the database and server it using an API.
  • Display some basic stats and the online orders in the frontend that was built using react.
  • Also have some confirmation option to confirm that the order was indeed added to the POS system.

Tools and Frameworks Used

Frontend
    - React as base frontend framework
    - TailwindCSS for CSS
    - ReactQuery for API Integration
    - HeadlessUI for Reactivity
Backend
    - Django as base backend framework
    - Django-Ninja for API
    - Django-Huey for background tasks
    - Imap tools for reading emails
Database and Queues
    - Postgresql as Database
    - Redis as queue for django-huey
Deploy
    - Nginx as rerverse proxy
    - Docker for deployment

Screenshots

Sample Order

Order Mail

Login

Login

New Order

New Order Force pull if you want to trigger email read yourself

Check New Order

Check New Orders

Add the Pending Order to POS System

Add To POS

Post Adding of Orders

Post Add

Dashboard

Dash

Possible Future Steps [Not Sure]

  • Add html files that comes in the mail as a file type and store it so one can cross check and verify proper parsing
  • Add a link in the UI under name Invoice that show that html file in a pop-up for new tab

About

Project to parse online orders from email periodically and serve them as API after storing in db and displaying using a react frontend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published