Skip to content

ruby23719111/thaimeup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍜 ThaimeUp — Thai Food Ordering Web Application

ThaimeUp is a full-stack Thai food ordering web application built with Flask and MySQL.

The application simulates a real-world restaurant ordering system, allowing customers to browse menu items, manage a shopping basket, and place orders, while providing administrators with tools to manage items, categories, and orders.

This project was originally developed as a university coursework project and has been refactored and prepared as a portfolio project, with a focus on usability, system design, and iterative improvement based on academic feedback.


✨ Features

Customer Features

  • Browse menu items by category
  • Add items to a shopping basket
  • Update item quantities and remove items
  • Place orders after authentication
  • Session-based basket management

Admin Features

  • Admin-only access control
  • Manage menu items and categories
  • View customer orders
  • Soft-delete items and categories (data preserved for order history)

System Features

  • Flask Blueprint architecture
  • MySQL database integration
  • Session-based authentication
  • Custom 404 and 500 error pages (intentionally implemented for testing)
  • Soft delete implementation using is_deleted flags

🛠 Tech Stack

  • Backend: Python, Flask
  • Frontend: HTML, CSS, Bootstrap 5
  • Database: MySQL
  • Environment Management: python-dotenv
  • Version Control: Git & GitHub

📦 Installation

Ensure Python 3.10+ and MySQL are installed on your system.

python3 -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt           

🔐 Environment Configuration

This project uses environment variables to manage sensitive configuration. Create a .env file in the project root based on .env.example:

SECRET_KEY=your_secret_key MYSQL_USER=your_mysql_user MYSQL_PASSWORD=your_mysql_password MYSQL_DB=thaimeup MYSQL_HOST=localhost

⚠️ The .env file is ignored by Git and should not be committed.

🗄 Database Setup

Create and seed the database using the provided SQL file: mysql -u -p -e "CREATE DATABASE thaimeup;" mysql -u -p thaimeup < thaimeup.sql

▶️ Running the Application

python3 run.py Open the application in your browser: http://127.0.0.1:8888

👤 Test Users

The database includes pre-populated users for testing purposes: 4 regular users 2 admin users

All test accounts share the same password: 123456

⚠️ Error Pages (Intentional)

The Offers and Contact Us pages are intentionally designed to trigger: 404 – Page Not Found 500 – Internal Server Error

These pages are included for error handling simulation and testing and do not represent real system issues.

🧹 Soft Delete Design

Instead of permanently deleting records, this project uses a soft delete strategy via an is_deleted column in the items and categories tables.

Deleted items remain visible in past orders Deleted items are hidden from the landing page

This approach preserves data integrity and order history

📚 Academic Feedback & Iterative Improvement

Based on academic feedback, the following areas were identified for improvement:

  • Responsive design across medium and large screen sizes
  • Shopping cart usability (avoiding unnecessary page reloads)
  • Product detail page information density
  • Authentication flow and UX consistency

This repository currently represents the original functional version.

Future iterations will focus on:

  • Enhancing responsiveness with additional breakpoints
  • Improving cart interactions (e.g. quantity updates without page reload)
  • Enriching detail pages with clearer information hierarchy
  • Refining UI/UX based on usability principles

These improvements will be tracked through separate commits and branches to clearly demonstrate before / after progression.

📌 Notes

This project is intended for:

  • Academic demonstration
  • Portfolio showcasing
  • Learning and experimentation with Flask-based full-stack applications

About

Thai Food Ordering Web Application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors