MealMate is a full-stack web application designed to connect clients with local vendors and delivery personnel to provide a seamless tiffin (meal) delivery service. The application ensures that clients can easily place orders, vendors can manage their offerings, and delivery personnel can efficiently fulfill orders.
-
Secure Account Registration and Authentication:
- Users can register and create accounts securely.
- Implements authentication mechanisms to ensure secure access to user accounts.
-
Restaurant Browsing and Ordering:
- Enables users to browse a variety of restaurants offering food for delivery.
- Provides a user-friendly interface for selecting menu items and placing orders.
-
Real-Time Menu Updates:
- Displays real-time updates of menu items, including availability and pricing.
- Ensures customers have access to the latest offerings from restaurants.
-
Customized Ordering Experience:
- Allows users to customize their orders based on preferences and dietary requirements.
- Supports special instructions or requests for individual menu items.
-
Order Tracking and Status Updates:
- Provides real-time tracking of orders from placement to delivery.
- Sends notifications and updates regarding order status changes, ensuring transparency and keeping customers informed.
-
Secure Payment Processing:
- Integrates secure payment gateways to facilitate safe and hassle-free transactions.
- Supports multiple payment methods, including credit/debit cards, digital wallets, and cash on delivery.
-
Create a config.php file in project directory and include the following code inside the file with appropriate changes to include your credentials.
<?php $DB_USER = "ora_CWL"; // change "cwl" to your own CWL $DB_PASS = "a99999999"; // change to 'a' + your student number $DB_HOST = "dbhost.students.cs.ubc.ca:1522/stu"; ?>
-
Command for setting permissions of public_html
- General
chmod 711 ~/public_html; chmod 711 ~
- Specific
file.php
chmod 711 ~/public_html/base.php
- Command for permissions
ls -la ~/public_html
- General
-
Command for transfering files to cs servers:
- Replace $CWL with CWL and $file_ext appropriately,
Note:
Each group member may have to change command slightly according to how the directories are setup, this is a good starting point
scp ./project/$file_ext $CWL@remote.students.cs.ubc.ca:/home/a/$CWL/public_html
- Replace $CWL with CWL and $file_ext appropriately,
-
SSH into cs dep servers
-
Go to ~/public_html directory
cd ~/public_html
NOTE:
create the directory if it doesn't exist withmkdir ~/public_html
-
Clone the repo
git clone https://github.com/TeaBreeze00/MealMate.git
-
Set executable permissions for php files in pages folder of project
chmod -R 711 ~/fileLocation/MealMate
-
Create config.php file in project directory for database credentials
touch ~/fileLocation/MealMate/config.php
-
Modify the config.php file using nano
nano ~/public_html/MealMate/project/config.php
-
Copy paste the following code and change CWL, student number to appropriate values
<?php $DB_USER = "ora_CWL"; // change "cwl" to your own CWL $DB_PASS = "a11223344"; // change to 'a' + your student number $DB_HOST = "dbhost.students.cs.ubc.ca:1522/stu"; ?>
-
Exit the editor by the following key presses:
Ctrl + s
Ctrl + x
-
The site should now be public at the link below with your CWL
https://www.students.cs.ubc.ca/~CWL/MealMate/project/pages/login.php
-
For updating the files simply pull the latest files from github
Note
- DO NOT set the executable command for the entire directory at once, it is recursive and WILL be applied to all at once
- The executable command for the photos is chmod 644, nothing else renders the photos
- You have to run the initial setup once before anything else to actually create the tables in your personal Oracle server
- If you see forbidden resource it is likely because of permission issue, resolve permission issue before moving forward
- For each new php page created, add this:
"ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); " for better error handling
-
The backend for the login.php page is still not handled properly (resolved)
-
Give credit to google documentation and Apple documentation for the Google and Apple buttons, implementation still not done, to be followed later