Title: Indian Recipe Hub (IRH)
Description: Indian Recipe Hub (IRH) is a web application designed to showcase the rich flavors of Indian cuisine, offering a platform to explore, share, and engage with North and South Indian recipes. This project is developed as part of an assignment for a software engineering position, completed within a time limit of less than a week.
Features:
- Browse and explore a variety of North and South Indian recipes.
- Submit requests for new recipes.
- Provide feedback on recipes.
- Admin interface for managing recipes, recipe requests, and user feedback.
Frontend:
- React.js
- Axios (for API requests)
- AWS S3 (for deployment)
Backend:
- Django
- Django REST Framework
- AWS EC2 (for deployment)
Deployment:
- AWS S3 (Frontend)
- AWS EC2 (Backend)
- AWS CloudFront (CDN)
1. Clone the repository:
git clone https://github.com/gagand29/indian-recipe-hub.git
cd indian-recipe-hub
Description: This directory contains the frontend code for the Indian Recipe Hub (IRH) application, built using React.js. The frontend is responsible for the user interface and client-side interactions.
Features:
- Interactive and responsive user interface.
- Component-based architecture for modularity and reusability.
- Integration with the backend API to fetch and display recipes.
Setup Instructions:
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm start
Deployment Instructions:
- Build the project:
npm run build
- Deploy the build files to an AWS S3 bucket configured for static website hosting.
Description: This directory contains the backend code for the Indian Recipe Hub (IRH) application, built using Django. The backend provides API endpoints for managing recipes, recipe requests, and user feedback.
Features:
- RESTful API for managing recipes, recipe requests, and feedback.
- Django Admin interface for efficient data management.
- Deployed on AWS EC2 for scalability and reliability.
Setup Instructions:
- Navigate to the backend directory:
cd backend
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- Windows:
venv\Scripts\activate
- MacOS/Linux:
source venv/bin/activate
- Windows:
- Install dependencies:
pip install -r requirements.txt
- Run database migrations:
python manage.py migrate
- Start the development server:
python manage.py runserver
Deployment Instructions:
- Launch an AWS EC2 instance.
- SSH into the instance and clone the repository.
- Set up the environment and install dependencies.
- Configure Nginx as a reverse proxy.
- Start the Django application.
Frontend Deployment on AWS S3:
- Create an S3 bucket.
- Configure the bucket for static website hosting.
- Upload the build files to the S3 bucket.
- Set permissions for public access.
- Test the website using the S3 bucket website endpoint.
Backend Deployment on AWS EC2:
- Launch an EC2 instance.
- SSH into the instance and set up the environment.
- Install the necessary software (Python, Django, etc.) and project requirements.
- Configure Nginx as a reverse proxy.
- Deploy the Django application.
Using AWS CloudFront:
- Create a CloudFront distribution.
- Use the S3 bucket as the origin.
- Configure the distribution settings.
- Deploy the distribution.
Creating a Custom VPC:
- Create a VPC and subnets (public and private).
- Set up an Internet Gateway and route tables.
- Launch the EC2 instance in the private subnet.
- Ensure proper security groups and network ACLs are in place.
Creating an AMI:
- Navigate to the EC2 Dashboard.
- Select your instance, click on "Actions," and choose "Create Image."
- Launch new instances from this AMI in the private subnet.
This README provides a comprehensive overview of the project, setup instructions, and deployment guidelines. Feel free to customize it further as per your project's specifics and preferences.