
Show HN: I built something I'm proud of recipepoodle, a social recipe site - x86mitch
http://www.recipepoodle.com/about
======
x86mitch
If anyone else out there is like me then they probably constantly have
projects that they start and never finish. I have always loved programming and
have always had side projects that I've built in my free time, but would never
finish them. Typically it was always the same story, get started, run into a
problem, can't find the solution, stop working on the project. Rinse repeat
for the next one.

This time around I made a challenge for myself that the next project I take on
I would put my full ability into building it out, even if it took forever to
get to certain the solutions. The project I built was called recipepoodle
([http://www.recipepoodle.com/about](http://www.recipepoodle.com/about)). I
spend a lot of time cooking and I wanted to build something that would allow
myself, friends, family... whoever, to be able to post and share their
recipes.

I think one of the reasons I stuck with this project was because even before I
started hosting it online I was using it almost daily from my localhost. I
want to give a shoutout to two resources I ended up using pretty heavily for
learning rails. Going through these tutorials I was able to build social
features like sharing, user profiles, following users, saving recipes you
like... etc.

gorails.com [awesome bite-sized videos on a huge spectrum of ruby topics]
thinkster.io [great for learning to build real-world applications]

The application is utilizing ruby 5 for a backend API and for the frontend I
opted to use Angular. I added a better breakdown for tech stack below.

Backend recipepoodle was built with rails 5 and using Postgres for persistent
storage. I use Heroku for server deployment, currently on the hobby plan
(approx $5 month). The app is also using elasticsearch for search and recipe
recommendations. I chose to go with AWS to host my ES cluster purely based on
financials (free for the first year). The final piece I am using is an API for
getting the nutrition breakdown of each recipe. So when a user creates a
recipe I send the ingredients to spoonacular.com/food-api in JSON format and
it returns me the macronutrient breakdown.

Frontend I am far less of a frontend developer so I ended up relying heavily
on tutorials and stack overflow. I used Angular 2 for my frontend framework
(from what I hear of react I wish I had used that). I'm hosting the site using
AWS S3 with Cloudfront sitting in front of it for caching.

There is still a lot of work to do and it's buggy as heck but its really the
first time a project as left my localhost to be hosted online. If anyone has
any questions I would be more than happy to answer them :)

