From a0c67cedc53215a8aac60e1e19f277e4e668b309 Mon Sep 17 00:00:00 2001 From: Hayden Hargreaves Date: Tue, 3 Jun 2025 21:36:17 -0700 Subject: [PATCH] (UI/STYLE): Began working on the spec and UI for the create page. Nearly completed the UI spec, but did not start the API spec. Started on the UI implementation using an example from my Potion Gem. --- .../controllers/page_html/create.html.heex | 73 ++++++++++++++++++- .../controllers/page_html/home.html.heex | 8 -- spec/TechnicalSpecification.md | 61 +++++++++++++++- 3 files changed, 129 insertions(+), 13 deletions(-) diff --git a/lib/potion_web/controllers/page_html/create.html.heex b/lib/potion_web/controllers/page_html/create.html.heex index f52f1ea..d186812 100644 --- a/lib/potion_web/controllers/page_html/create.html.heex +++ b/lib/potion_web/controllers/page_html/create.html.heex @@ -1,5 +1,70 @@ -
-

- Page: {@current_page} -

+
+ + +
+ + +
+ + +
+

+ Create Your Recipe +

+

+ Share your culinary masterpieces with the world! Fill out the details below + to get started. +

+
+ + +
+
+

+ Recipe Details +

+

*Required

+
+ + + +
+
+ + + + + + + + +
+ + + + +
+ +
+ +
+ +
diff --git a/lib/potion_web/controllers/page_html/home.html.heex b/lib/potion_web/controllers/page_html/home.html.heex index 49a7f46..8c6fa50 100644 --- a/lib/potion_web/controllers/page_html/home.html.heex +++ b/lib/potion_web/controllers/page_html/home.html.heex @@ -1,11 +1,3 @@ - -
diff --git a/spec/TechnicalSpecification.md b/spec/TechnicalSpecification.md index 56a4a18..517ea5c 100644 --- a/spec/TechnicalSpecification.md +++ b/spec/TechnicalSpecification.md @@ -33,7 +33,7 @@ by page. #### Home -Home page will server as the landing page where users can search recipes, filter their search, as +The home page will server as the landing page where users can search recipes, filter their search, as well as view lists of recently made recipes, recently viewed and trending recipes lists. ##### UI Requirements @@ -128,6 +128,65 @@ well as view lists of recently made recipes, recently viewed and trending recipe #### Create +The create page will contain a page to create a new recipe. It will include +all of the required details without any need to move to other pages. The entire +creation process will take place here + + +##### UI Requirements + +- [ ] Create Recipe Heading Banner + - [ ] Large, simple text banner that displays a header + - [ ] Smaller text section that contains some useful information for using the wizard + +- [ ] Recipe Creation Wizard + - [ ] **Recipe Details:** required + - [ ] **Recipe title:** small text input (1 to 128) + - [ ] **Recipe description:** large text input + - [ ] **Meal category:** pill radio buttons or drop down* + - [ ] **Service size:** numeric input (1 to 16) + - [ ] **Difficulty rating:** star buttons that can be selected (up to 5) + - [ ] **Duration:** prep and cook time, individual numeric inputs + - [ ] **Ingredients:** required + - [ ] **Dynamic ingredient list:** List of each ingredient + - [ ] **Content:** name and quantity (both text inputs) + - [ ] **Actions:** delete button and **reorder element*** + - [ ] **Add ingredient button:** Simple button to add a blank ingredient row + - [ ] **Instructions:** required + - [ ] **Dynamic instructions list:** Numbered list of each instruction + - [ ] **Content:** number and large text instruction + - [ ] **Rich text editor?*** + - [ ] **Actions:** delete button and **reorder element*** + - [ ] **Add step button:** Simple button to add a blank instruction element + - [ ] **Media & Tags:** optional + - [ ] **Image Upload** + - [ ] Single image selector for the thumbnail image + - [ ] Small image display once one has been upload + - [ ] Remove button to remove the image + - [ ] Replace button to replace the image + - [ ] **Tags** + - [ ] Text input to add tags + - [ ] Using list of existing tags, use a prefill while typing + - [ ] Tags that don't exist will be added + - [ ] Display a small list of added tags + - [ ] Clicking a tag will remove it from the list + - [ ] **Footer & Submit** + - [ ] Save recipe button to complete the form + - [ ] Button is disabled until the minimum required fields are complete* + +- [ ] Input Validation + - [ ] Required elements should have a **required indicator** + - [ ] Required elements will be validated input + - [ ] **Valid:** Green outline or indicator* maybe a small, green check mark + - [ ] **Invalid:** Red outline or indicator* maybe a red border with error text + + +'*': Not sure yet, still under consideration + + +##### API Requirements + +