A decentralized food delivery application built on Ethereum blockchain, allowing users to register restaurants, browse, and place pickup orders. The smart contract ensures business verification, and users can filter registered restaurants by categories and keywords.
- Business verification before restaurant registration
- Categories and keywords for filtering restaurants
- Display menu and business hours
- Location-based restaurant listing
- Pickup orders only (no delivery)
- Solidity (Ethereum Smart Contract)
- Python
- Flask
- Web3.py
- HTML, CSS, and JavaScript
- Ganache (local Ethereum test network)
- Python 3.x
- Node.js and npm
- Ganache (local Ethereum test network)
- MetaMask (Ethereum wallet)
- Clone this repository:
git clone https://github.com/tncy67/Food-Delivery-Decentralized-Application-DApp- cd food-delivery-dapp
- Install required Python packages:
pip install -r requirements.txt
-
Start Ganache and create a new workspace, importing the accounts provided by Ganache into MetaMask.
-
Compile and deploy the smart contract to Ganache:
truffle compile truffle migrate --reset
-
Update the
app.py
file with the correct contract address and ABI. -
Run the Flask application:
python app.py
- Open your browser and navigate to
http://localhost:5000
to use the Food Delivery DApp.
-
Verify a business by entering the business' Ethereum address and clicking "Verify Business."
-
Register a restaurant by filling out the registration form and clicking "Register Restaurant."
-
Browse and filter registered restaurants by categories or keywords.
-
View the menu and business hours of a restaurant by clicking on its name.
-
Place a pickup order by selecting items from the restaurant's menu and submitting the order.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.