KitchenSync is a web-based sharable cookbook application that allows users to create cookbooks, share them with others, and manage recipes collaboratively.
Before setting up KitchenSync, ensure you have the following installed:
- Node.js (version 14 or higher)
- MySQL (version 5.7 or higher)
- Git (for cloning the repository)
git clone https://github.com/mayqatwit/WebDevFinalProject.git
cd kitchensyncMake sure your MySQL service is running:
Windows:
net start mysqlLinux:
sudo systemctl start mysql
# or
sudo service mysql startConnect to MySQL as root and run the following commands:
-- Connect to MySQL as root
mysql -u root -p
-- Create the database
CREATE DATABASE IF NOT EXISTS KitchenSync;
-- Create the application user
CREATE USER 'kitchensync_user'@'localhost' IDENTIFIED BY 'kitchensync_password';
-- Grant privileges to the user
GRANT ALL PRIVILEGES ON KitchenSync.* TO 'kitchensync_user'@'localhost';
-- Flush privileges to apply changes
FLUSH PRIVILEGES;
-- Exit MySQL
EXIT;Run the database schema script:
mysql -u kitchensync_user -p KitchenSync < backend/database.sqlWhen prompted, enter the password: kitchensync_password
Navigate to the backend directory and install dependencies:
cd backend
npm installTo create a test user for initial testing:
node setup-test-user.jsThis creates a user with:
- Username:
testuser - Email:
test@example.com - Password:
password123
Ensure MySQL is running (see commands in First Time Setup section 2.1)
cd backend
node app.jsYou should see: Server running at http://localhost:3000
Open your terminal and navigate to:
cd /path/to/your/project/frontend/
http-server -p 8080
In your browser, go to the link
http://localhost:8080/login.html
- Open the application in your browser
- Click "Sign Up" or use the mobile toggle
- Fill in Name, Username, and Password
- Click "Sign Up"
- Switch to "Sign In" and log in with your credentials
If you created the test user, you can log in with:
- Username:
testuser - Password:
password123
This project is for educational purposes. Please add appropriate licensing for production use.