Inspiration

As college students, there is a constant struggle for us to plan meals that fit our busy schedules between attending class, studying for exams, and attempting to have a strong social life. Automating this process will ensure that we eat better and are not stressed about what meal we will be cooking when. This idea came to us when we were sitting in a restaurant because none of us had packed lunch and it was suddenly very apparent to us that we were wasting lots of money by not preparing meals since it was just too much work to plan. reciPlanner creates an environment where the meals are planned around our constraints as students and caters to our everyday needs.

What it does

It will consider one's google calendar and auto-fill open time slots with meals to cook (including recipes and cooking instructions) that fit in the available time in the schedule. The program also differentiates between time slots appropriate for breakfast, lunch, and dinner to suggest the proper meals for those times.

How we built it

We began by pulling Google Calendar API reference code, and modified it so that we could retrieve a user’s Calendar Events depending on a specified time frame. We then split into two groups, one focusing on the front-end while the other on the back-end. The front-end team registered a .tech domain and then set the server up to run on an Ubuntu shell through AWS’ EC2 architecture. They then modified a HTML5 template and added Google Sign-in and Google Calendar API functionality to personalize user results to their google account. The back-end team worked on developing the main script to parse the data passed in through a JSON file and generate the necessary output. Additionally, the back end team worked on incorporating the script, written in Python, into a Django environment so as to be able to run the script on the website.

Challenges we ran into

We ran into some trouble setting up the Google Calendar API to work with the website. While we weren’t able to get it to function properly in the end, we did learn how to utilize the Google Sign-in API to allow users of our website to sign in through Google. In the end, we weren’t able to connect the client-side to the server-side of the website (where our code would run) due to our lack of experience in web development.

Accomplishments that we're proud of

We were successfully able to implement the Google Calendar API into our code. We became more proficient in manipulating JSON and CSV files. Used Amazon’s AWS services to host an EC2 instance of an Ubuntu machine. We also registered a domain with that EC2 instance. Successfully practiced and employed graphic design to create a user-friendly website. Constructed back-end code to be able to run additional scripts on our website in languages outside of JavaScript. Achieved a high level of control with system interactions in our network.

What we learned

  • Learned how to integrate an API into code.
  • Strengthened our knowledge of JavaScript/HTML and Python
  • How to setup an EC2 instance in AWS
  • How to associate a domain with an EC2 instance
  • Learned back-end development with Django
  • Learned how to make and maintain an Apache web server

What's next for reciPlanner

Being able to connect the python script to the EC2 instance would help complete the project. We were close but not quite there with accomplishing this. Increased functionality like creating a shopping list for the week and allowing users to see their google calendar on the website would be great additions. We also want to expand the recipe suggestions by allowing users to ‘like’ certain foods which will make reciPlanner more likely to suggest foods of a similar category in the future and cater to your taste preferences.

Share this project:

Updates

Submission history