Recipes for All
A website built for anyone to share recipes with everyone
Project Type
The final project for SI364: Building Data-Driven Applications
​
Challenge
Develop a database-backed website from scratch using Django. It must have:
-
At least six data models
-
At least three Many-to-One relationships between models and at least one Many-to-Many relationship
-
A feature for end-users to log in
-
At least one example of data coming into the site from users
-
A nice graphic design
​
​
Timeframe
1.5 month​s
​
​
Key Takeaways
When designing a user interface, your first or favorite idea might not always be possible to carry out but it is important to go through many different iterations of the design. Additionally, when you are coding a website from scratch, make sure to start early and plan a lot, many unforeseen problems could arise.

Process
Jump to:
​
​
​
Project Description
The first step of this project was to think of an idea for a database-backed website. I thought of a recipes site because I love to cook and many people like to find new recipes that are made by people like them. Below is the original description of my project.
​
​

Project Description Revision
The second step was to revise my project scope. My feedback suggested that adding a discussion board and a comment feature might make the scope of the project too big. Originally, I wanted to have the chat feature instead of the comment section, but I soon realized that I would not be able to make the chat feature with the time allotted. This is why I pivoted and instead implemented just a comment section for the recipes. Below is the revised description for my project.
​
​

UI Design
The third step of this project was to hand draw the design we wanted for each page. I put a lot of thought into this step and ended up with almost the same design in the final product because I felt it was best for the users. Below are some of the views that I drew for this step.
​
​



Data Model Examples
In the next step, I had to think through and demonstrate how the data models would be stored and organized on my website. I had to create an illustration that displayed in a table how all the different models are connected. The table is shown below.
​
​

Project Review
The fifth step was a final check-in to get feedback from peers before the project was due. From this final review to the final product, the main change was that the ability to delete ingredients was added, a search bar was added, and some extra design changes were made.
​
​
Road Blocks
While I was adding to the ability to create an ingredients list with measurements, I ran into the problem that Django would not let me create two different forms embedded within one another on the same page. For this reason, I had to create a new way to add ingredients where users first have to create the recipe, then add ingredients as a later edit.
​
​


Final Design
The last step was creating the final design for the project. This is where last-minute touch-ups were made to the styling and the capabilities of the website were tested. The full final design can be seen at the top of the page when the link to go to the website is clicked.

