OZfoody is a social restaurant review platform for discovering, sharing, and discussing food experiences with friends. Share your reviews, earn badges, follow friends, and get personalized food recommendations!
| Name | Student Number | GitHub Username |
|---|---|---|
| Divyank Sharma | 23810783 | divxsharma |
| Ian Oon | 23722317 | IanO7 |
| Vanilla Tran | 24060828 | cipherbunnie |
| Isabel Newlands | 23803298 | eye4c |
- User Authentication: Sign up, log in, and manage your profile.
- Restaurant Reviews: Post reviews with ratings for spiciness, deliciousness, value, service, and more.
- Photo Uploads: Add images to your reviews.
- Friend System: Follow/unfollow users, approve follow requests, and see friends' posts.
- Personalized Dashboard: View your food stats, achievements, and get food recommendations.
- Badges & Levels: Earn badges and level up as you contribute.
- Trending Dishes: See what's popular in the community.
- Search: Find users and search reviews by keywords.
- Post Sharing: Share your posts with friends directly.
- Responsive UI: Modern, mobile-friendly design using Bootstrap.
app/
__init__.py
auth.py
models.py
views.py
static/
css/
image/
JS/
templates/
base.html
landing.html
my_stats.html
my_friends.html
profile.html
editpost.html
login.html
signup.html
my_friends.html
my_stats.html
settings.html
user_profile.html
inbox.html
newpost.html
others_stats.html
post.html
search_results.html
...
uploads/
instance/
database.db
migrations/
tests/
selenium/
...
__init__.py
test_app.py
unitTests.py
.gitignore
main.py
requirements.txt
README.md
Note for Windows users:
Make sure to open your Ubuntu (WSL) terminal before running the following commands.
All setup andflask runcommands should be executed inside your Ubuntu (WSL) environment, not in Windows CMD or PowerShell.
- Python 3.8+
- pip
🔥 Hot Tip:
For best results and to avoid Python system errors, always use a virtual environment for your project dependencies.
This is now required on modern Ubuntu/WSL.First time only (if not already installed):
sudo apt update sudo apt install python3-venvThen, for every new project or fresh clone:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txtYour
venv/folder is local! After cloning a new repo, always create and activate a new virtual environment, then install dependencies.IDE Tip:
After creating and activating your virtual environment, make sure your code editor (e.g., VS Code, PyCharm) is using the Python interpreter from yourvenvfolder.
In VS Code, open the Command Palette (Ctrl+Shift+P), search forPython: Select Interpreter, and choose the one from your project'svenvdirectory.
This ensures all installed packages are recognized and avoids import errors.
-
Clone the repository:
git clone https://github.com/IanO7/CITS3403-Group-Project.git
-
(Recommended) Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Set up the database:
flask db upgrade
-
(Optional) Load demo users and posts:
python demo/seed_demo_data.py
This will create several demo users and posts. You can log in as any demo user, view their posts, share posts, and make friends with other demo accounts.
-
(Optional) Clean demo data before closing or for a fresh start:
python demo/clean_demo_data.py
This will remove all demo users and their posts.
-
Run the app:
flask run
Automated UI tests are provided using Selenium IDE and Python scripts.
To run Selenium tests:
-
Always clean and reseed demo data before running Selenium tests:
python demo/clean_demo_data.py python demo/seed_demo_data.py
-
Start the Flask app:
flask run
-
Open Selenium IDE (install from selenium.dev).
-
Open the
CITS3403 Group Project.sidetest file provided in the repo. -
Run all tests in Selenium IDE.
-
If you want to repeat the tests, always clean and reseed demo data first, as some tests (like password change) will permanently alter the database.
-
Python-based Selenium test scripts and reports are also included in the repo for reference.
Made for CITS3403 at UWA.