Skip to content

Latest commit

 

History

History
executable file
·
276 lines (201 loc) · 11.8 KB

README.md

File metadata and controls

executable file
·
276 lines (201 loc) · 11.8 KB

MAMAMAKI

Code Institute Milestone Project 3: Python and Data Centric Development

Logo

MAMAMAKI is a site for Japanese home cooking recipes and when you are logged in, you can add, edit and delete your own recipes. The focus with this site is to combine knowledge about Japanese home cooking with what was learned this far about HTML, CSS, JavaScript and Python. The site’s goal is to share recipes.

🎬 Demo

By clicking this link a live demo version will be visible.

Mockup 1

Mockup 2

📂 Table of Contents

UX

Features

Technologies

Testing and Bugs

Deployment

Credits


👥 UX

This is meant to be a B2C site which targets visitors who are interested in Japanese home cooking.

User stories

Visitor Goals
  • To be able to see different recipes and search for them using keywords.
  • To create an account and log in on that account.
  • To create, read, update and delete my own recipes.
Site Owners Goals
  • To share the love for Japanese home cooking and promote it.
  • Share nice Japanese home cooking recipes.

Strategy

The design goal is to make a clear, accessible, structured site so that visitors can easily see the recipes, navigate on the site and add, edit and delete their own recipes.

Scope

The site shows a homepage with a small introduction. Second is the about page which tells a bit about the creator of the site and why the site was created. Furthermore, the site contains a recipes page on which you can you choose to go to a specific recipe. It also contains a register page, a log in page, a personal recipe page and a add recipe page. The personal recipe page, add recipe page and the log out option will only be visible when you are logged in.

Sidenav Logged in User Logged out User
Home
About
Recipes
Register
Log in
Personal recipe page
Add recipe
Log out

Also on the homepage there is a difference in what you will see when you are logged in or logged out.

Homepage Logged in User Logged out User
Register button
Log in button

A difference has also been made in user rights:

Recipe options Standard User Account Admin User Account
Add own recipe
Edit own recipe
Delete own recipe
Edit recipes of other users
Delete recipes of other users

Structure

The site will be structured as clear as possible, it should be easy to see what you can do on the page, on all screen sizes it should be clear what you can do on each part of the site.

Skeleton

The skeleton section is a bit more extensive, for that reason please view this separate file.

Fonts and icons

Google Fonts was used to embed the Chicle and Ubuntu font in the code. Chicle was chosen because this reminds of Japanese calligraphy. Ubuntu was chosen because for the main text I felt this has a better readability which gives better UX.

For the icons Font Awesome was used.

🌟 Features

Existing Features

The site contains the following features:

  • See an overview of multiple recipes.
  • Select a specific recipe and see the details of that recipe.
  • Have clear and easy to use page navigation.
  • Register an account.
  • Log in to that account and log out of it.
  • Add, edit and delete your own recipes.

Features for the future

The following items can be added:

  • Comment on other people’s recipes.
  • Being able to share a recipe on social media.
  • Being able to print out a recipe directly from the site with one click on a button.
  • Put the ingredients on a shopping list which one can print out.
  • Share videos of the cooking techniques.

⚙️ Technologies

Languages

  • HTML
  • CSS
  • Python
  • JavaScript

Libraries and Frameworks

  • Materialize 1.0.0
  • jQuery
  • PyMongo
  • Flask
  • Jinja
  • Werkzeug

Wireframes

Tools

🧪 🐛 Testing and Bugs

Testing file

The tests have been done on multiple devices and browsers. In the end everything works as intended. Because this topic contained more content than expected, a separate page was created. For more details about testing and bugs please view this file.

💻 Deployment

Deployment

The deployment section is a bit more extensive for that reason please view this separate file.

©️ Credits

Content

All content has been written by me, but the original recipes come out of two books and two websites which are:

  1. Tori to piman no itame ni - Japans Koken - Harumi Kurihara
  2. Tamago - SUSHITOTAAL.NL
  3. Miso soup - THE SUSHI TIMES
  4. All the other recipes - Culinair genieten - Japans

The recipes added by users admin and daphnehf are all cooked and photographed by me. I have sometimes edited these recipes to my own liking while cooking, the edited versions are on the site. Recipes posted by other users are not pre-tested!

Code:

  1. Code Institute LMS Backend Development Task Manager Miniproject by Tim Nelson this was used as the basis of the code and then modified to make it my own site.
  2. CSS Gradient to create the gradient background with CSS.
  3. Stack Overflow to prevent the gradient background from repeating and without having to use a fixed height value with px.
  4. Sanwebe.com as help to let jQuery add and remove extra fields for the ingredients list and the instruction list.
  5. Stack Overflow to help me figure out how to loop over the ingredients list and the instruction list and get them displayed.
  6. W3schools to help me make a collapsible with HTML and JavaScript.
  7. W3schools to help me make a scroll back to the top button.
  8. Autoprefixer CSS to optimize the use of vendor extensions in the CSS code.
  9. Materialize as a reference work on the framework.
  10. Python Programming as how to use the Login_Required decorator.

Media

Images:

  1. MCICON for the sushi icon in the logo.

  2. Adobe Stock the wave image is a licensed image downloaded with a paid Adobe Stock account, the image was used for the background of the register and log in page.

  3. Photos of the food, for recipes added by users "admin" and "daphnehf", all these photos are my own.

  4. Color-hex was used to get the images of the colors that were used.

  5. favicon.io was used to get an existing favicon for the site.

  6. Rawpixel Japanese torii gate sticker with white border by Tvzsu was used as a background for the error pages.

Other

  1. creately to create the data diagrams.
  2. RandomKeygen to get a value for the secret key.
  3. cdnjs to get the fontawesome cdn from.
  4. jQuery to get the jQuery cdn from.
  5. Am I Responsive? to check the responsiveness and make the mockups.
  6. WebAIM used for checking contrasts on the site.

Acknowledgements

  • My mentor from Code Institute, thank you Narender for your time and guidance.
  • My husband, thank you Django for taking more care of our son so I can work on my education, thank you for trying my cooking skills with these recipes and thank you for your patience.
  • Fellow student, Abi Harrison, for sharing her info about good head elements.
  • Fellow student, Sean McMahon, in who's Readme file I saw the idea to make a collapsible table of contents.
  • Fellow student, Kotaro Tanaka, in who's Readme file I saw the idea to make it possible to go back of the top of a page.
  • Fellow student, Benjamin Kavanagh, for looking into my code and remind me to use also the url_for also my images to prevent them from giving a 404.
{{ url_for('static', filename='images/logo.png') }}
  • Fellow students / slack members, Andrew Dempsey, Mike Avgeros and Peter Baker for extensively testing my project.
  • Special thanks to my colleagues, friends and family for their support, tips and for testing my project.