Note: This project was made for personal use and for a specific use case only. As such there are no testcases or clear documentations.
- 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.
- 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.
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
Force pull if you want to trigger email read yourself
- 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