Hacker News new | ask | show | jobs
by x86mitch 2953 days ago
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). 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 :)