A dynamic restaurant website built with vanilla JavaScript and bundled with Webpack. This project demonstrates DOM manipulation, modular JavaScript, and modern build tools.
- Dynamic Content Loading: All page content is generated using JavaScript
- Multi-Page Navigation: Home, Menu, and Contact pages without page reloads
- Responsive Design: Clean, modern interface that works across devices
- Modular Architecture: Organized code structure with separate modules for each page
- Webpack Bundle: Optimized assets and code bundling for production
- JavaScript (ES6+): Core functionality and DOM manipulation
- HTML5 & CSS3: Structure and styling
- Webpack: Module bundling and asset management
- Git & GitHub: Version control and deployment
Odin_Project_Restaurant_Page/
├── src/
│ ├── index.js # Entry point and navigation logic
│ ├── home.js # Home page module
│ ├── menu.js # Menu page module
│ ├── contact.js # Contact page module
│ ├── style.css # Styles
│ ├── template.html # HTML template
│ └── images/ # Restaurant and food images
├── dist/ # Compiled/bundled files (generated)
├── webpack.config.js # Webpack configuration
└── package.json # Project dependencies
- Node.js and npm installed on your machine
- Clone the repository:
git clone https://github.com/Sammorad/Odin_Project_Restaurant_Page.git
cd Odin_Project_Restaurant_Page- Install dependencies:
npm install- Run webpack to build the project:
npx webpack- Open
dist/index.htmlin your browser to view the site
For development with automatic rebuilding:
npx webpack --watchVisit the live site: Restaurant Page
This project is deployed to GitHub Pages. To deploy updates:
- Ensure all changes are committed
- Switch to gh-pages branch and merge main:
git checkout gh-pages && git merge main --no-edit- Build the project:
npx webpack- Deploy using git subtree:
git add dist -f && git commit -m "Deployment commit"
git subtree push --prefix dist origin gh-pages
git checkout mainThis project is part of The Odin Project curriculum, focusing on:
- Using JavaScript to dynamically render page content
- Working with ES6 modules
- Setting up and configuring Webpack
- Organizing code into reusable modules
Sammorad
- GitHub: @Sammorad
This project is open source and available for educational purposes.
Built as part of The Odin Project's Full Stack JavaScript curriculum