- Project Planning.
- Updates Timeline.
- Planned Updates.
- Bugs & Errors.
- Additional Comments.
- External Resources.
- Testing.
- Conclusion.
I wanted to create a recipe database long before I started the Code Institute programme. As a chef there are flaws in keeping things like this on paper or in notes on my phone. So I made a simple and intuitive recipe database for users to store their recipes, either for their own sake or to share it.
Users will be enabled to create accounts to upload, edit, and delete their recipes.
Users that does not log in will still be able to read the recipes but not upload, edit, or delete any recipes on the site.
Wireframe and a user flowchart can be found in /documentation.
0.3 2021-03-16
Styled webpage globally with button colors, card panels, and label texts.
Editing recipes now looks as intended
Editing recipes now works as intended
Fixed nested IF statements messing with displayin allergn icons only if the previous was checked. Made allergen switches occupy 3 spaces each and center align them on 2 rows
Created edit functionality with conditional if statements to declare wether allergens were toggled in the original recipe.
Created delete functionality to use .remove() on the ObjectId in the database.
0.2 2021-03-15
Created edit page using the upload inserts
Created routing for edit_page
Created submit button for upload recipe
tested allergens toggle and viewed output
Created dictionary to retrieve info from the input fields on upload_page.html
Created variables for allergens to utilize toggles (easier to display on the recipes using if toggle on statement to display icon)
Created routing for upload_page and function to use .insertOne into the
database using the input values from the page.
Created placeholder input field on upload_recipe for testing.
Created routing for login with functions to read hashed password and put user in session
Starting development of login page/route
Finished registration page
Registration function works and uses Werkzeug password hashing
Built the function for new registrated users to be stored in the database
finished registration page layout
Updated index to be able to search categories
Added routing for register page
Added register page
Finished working on frontpage
reset the search function resets the current index, returning user to view all recipes
search function works, filtering the index
Created recipe index in MongoDB to use in the search functionality
Added search route
Added search elements
Added comments for base.html
Added comments for JQuerys in scripts.js
Added ellergens icons with tooltip
Formatted Jinja output for recipes.
Configured .dockerfile for GitPod functionality
0.1 2021-03-14
Created app on heroku and configured Config Vars
Added User Flowchart
Added wireframe
Added Static and Templates folder
Set up app.py with dependencies
set up requirements.txt
set up env.py
added template extentions from base.html
extended base.html to front_page.html
frontpage now renders current recipes from MongoDB
Create cancel button on edit recipe page to redirect user to frontpageCreate If statement on edit page to render all the allergens toggles was on or off before editingCreate function to display users recipes on profile pageRevamp how recipes display on frontpage and profilepage(Add steps)Implement Search Function
Move flash messages to modal(focusing on styling instead, if there is time I will try this)Implement User auth
Add more Allergen icons (on frontpage/view all recipes using if x on thenImplement Allergen functions in update/edit recipe to be togglesImplement Creating of RecipesImplement Updating RecipesImplement Deleting RecipesImplement Functional Registration
Update Project Planning
style buttons to all look the sameStyle navStyle text contentStyle brand logoStyle Flash Messages
- 2021-03-14
Expected Result:
Applying a Jinja for loop in front_page.html would render on screen in the preview.
Actual Result:
The Jinja for loop renders the HTML element to store the database data from MongoDB but renders the elements empty, regardless of the database thats injected
Resolved Y/N:
Y 2021-03-14
- 2021-03-15
Expected Result:
using the correct column size would display the search elements and the collapsible element as the same width
Actual Result:
the search and collapsible elements does not align
Resolved Y/N:
Y 2021-03-15
- 2021-03-15
Expected Result:
Using the implemented python function should render a fully functional and rendered login_page.html, that retrieves data from database to match
user credentials.Actual Result:
Page does not load and [TO_MANY_REDIRECTS], and heroku returns a HTTP code of 302.
Resolved Y/N:
Y 2021-03-15 - The 302 code indicates redirecting, but the log does not show an endpoint, leading to a probable error in the routing for the page. resolved by editing the /login function with correct indentation.
- 2021-03-16
Expected Result:
creating CSS code targeting elements in the html should change the appearance of the output
Actual Result:
The CSS code does not change the appearance of the html, it does work with in-line customization however.
Resolved Y/N:
Y 2021-03-16 - Due to not having an online preview that could read jinja I had to push the css changes to main to display them on the live page.(not best practice)
The commits are somewhat inconsistent, the later ones will use the description to specify the changes in the files. I am using GitHub Desktop and it was simply more effective for me to write in the description.
I have not found a way to visualize functional previews of jinja code on VsCode, thus the large ammount of commits to the main branch.
I pushed commits for testing to push changes to heroku and to display the changes made in the code. This did force me to push multiple commits with the same description to declare what I was working on, more like workin on a separate branch, but instead doing testing on main. I appologize for the large ammounts of commits.
MaterializeCSS Documentation
StackOverflow
CI Data Centric Modules (MongoDB / Mini Project)
Accepted state would be if user is redirected to the correct link or if a message is displayed if credentials are not met. If measures are met answer will be "works".
links | registrating | login | upload recipe | profile | log out | search | edit recipe | delete | |
---|---|---|---|---|---|---|---|---|---|
all works | works | works | works | works | works | works | works | works |
Due to some extensive computer issues this project has ben put under intense time restraints, once again I would like to reach out and thank CI Student Counceling for their understanding and very helpful ways.
Even with the time restrictions I actually enjoyed this project very much. This is probobly because I actually had extended ammounts of time instead having to go away and focus on people thats sick (that does need my help), this helped me massively with focus and dedication. I very much enjoy working with Back-End intergration and I have learned massively from this.
Some jinja rendering is basic, and the output for recipes from the database could have been "prettier", but to me it does its job and works.
While this project is heavily influenced by the mini-project, I only reasearched the source code when there were issues I did not know how to fix and I implemented it myself.
While I believe this could have been made much flashier, (as always) I wanted to focus my time where I felt it needed, with the timelimit I had I chose to not do extensive styling or use crazy images, the goal I had was a simple database collection thats intergrated on the page to be displayed and accessed by users.
MS2 was quite horrible for me, as there were too many things pulling me away from my studies, and this time around I had some really bad PC issues with bluescreens and having to run the computer in safemode without network to try to fix it. Eventually I fixed the issue and here we are. This project actually made me prove to myself that this is something I actually enjoy and are capable of completing, and I am so happy I pulled through and completed it.