Introducing the ultimate personal recipe curation app - "Recipeo"! This app allows you to easily add, edit, and organize your favorite recipes, whether it's a recipe passed down from your grandma or something you found on your favorite blog or on social media. With a user-friendly interface, you can easily search through your recipes through their recipe names or tags, edit the recipe to include your own recipe enhancements or delete recipes that you no longer need. You can also organize your recipes by categories like Recently Used, Favorites, or your own custom Category to organize your recipes. Say goodbye to cluttered recipe cards or lost recipe tweaks and hello to a streamlined, organized recipe collection with Recipeo.
- Users can create and save recipes
- Users can optionally assign a category to a recipe when creating one
- Users can edit a recipe to note recipe adjustments
- Users can see top 10 recipes in the Recent category (recently created/updated)
- Users can see all their favorite recipes in the Favorites Category
- Users can see ALL their recipes unfiltered
- Users can create custom Categories
- Users can view all their custom Categories
- Users can delete a recipe when it is no longer needed
- Users can search for recipes via tags or recipe names
Here's the design document that details the technical design and architecture decisions.
The following instructions will guide you on setting up and running the project locally.
- Create or use an existing Amazon AWS account
- Install the latest version of AWS CLI
- Install the latest version of AWS SAM CLI
- Install Docker
- Install NodeJS to be able to run
npm
commands
-
BACKEND: Run the Lambda service
- Build the Java code:
sam build
- Create an S3 bucket:
aws s3 mb s3://YOUR_BUCKET
- Deploy the SAM template:
sam deploy --s3-bucket BUCKET_FROM_ABOVE --parameter-overrides S3Bucket=BUCKET_FROM_ABOVE FrontendDeployment=local
- Run the local API:
sam local start-api --warm-containers LAZY
- Build the Java code:
-
FRONTEND: Run a local web server (aka the frontend):
- CD into the web directory:
cd web
- Install dependencies :
npm install
- Run the local server:
npm run run-local
- CD into the web directory:
-
DATA Create some sample data (if needed):
aws dynamodb batch-write-item --request-items file://data/recipedata.json
aws dynamodb batch-write-item --request-items file://data/categorydata.json
After doing all of this, you will have a server running on port 8000
- you can access it by going to http://localhost:8000 in your browser.
To stop either the local backend (the sam local...
command) or local frontend (the npm run...
) command, simply press Ctrl-C
in the terminal where the process is running.
- Shilpa Nair - shilpa.sathya@gmail.com
- LinkedIn - https://www.linkedin.com/in/shilpasnair/
- Project Link: https://github.com/lafleurss/recipeo