MunchMunch is a MERN-stack based culinary web application designed to enhance user engagement by allowing them to discover new dishes and recipes. This application aims to simplify the cooking process through personalized experiences, saving favorite dishes, and accessing detailed recipes with step-by-step instructions.
- User Authentication: Register and log in to access personalized features.
- Recipe Discovery: Browse and search a variety of dishes categorized by ingredients, cuisine, etc.
- Favorites: Save and manage favorite recipes for easy access.
- Interactive Guides: Follow step-by-step cooking instructions.
- MongoDB: For storing user data and recipes.
- Express.js: Backend framework for handling HTTP requests.
- React: Frontend library for building the user interface.
- Node.js: Runtime environment for the backend.
- Docker: For containerizing the application and ensuring consistent environments across development and production.
- AWS EC2: Hosting the application for live public access.
- Node.js
- npm or yarn
- Docker
- MongoDB
-
Clone the repository
git clone https://github.com/yourusername/munchmunch.git cd munchmunch
-
Set up environment variables
Create a .env file in the root directory and update it with your specific settings (e.g., database URL, API keys, secret keys for JWT).
-
Install dependencies
cd src npm install
cd server npm install
cd ../client npm install
Go into the main folder where the folders client and server reside. Then type:
npm run start:dev
The application should now be running on localhost:5173 (frontend) and localhost:5050 (backend), or other ports specified in your environment settings.
docker-compose up --build
This command will set up both the frontend and backend services as specified in the docker-compose.yml file.
cd server npm run jest
Refer to the docker-deploy.yml for CI/CD configurations which automate the deployment process using GitHub Actions to push to your AWS EC2 instance.
Refer to the LICENSE file. This project is licensed under the MIT license.