|
| 1 | +# Section 7: Omnifood Project - Setup and Desktop Version |
| 2 | + |
| 3 | +## Seven Steps of the Development Process |
| 4 | + |
| 5 | +1. Define |
| 6 | +2. Plan |
| 7 | +3. Sketch |
| 8 | +4. Design and Build |
| 9 | +5. Test and Optimize |
| 10 | +6. Launch |
| 11 | +7. Maintain and Update |
| 12 | + |
| 13 | +### Define the Project |
| 14 | +1. Define WHO is the website for |
| 15 | + * Yourself? |
| 16 | + * Client or Agency? |
| 17 | + * Freelancing business? |
| 18 | +2. Define WHAT the website is for |
| 19 | + * Is the purpose to provide information? |
| 20 | + * Is the pusrpose to sell product? |
| 21 | + * Is the purpose to entertain the user? |
| 22 | +3. Goals example |
| 23 | + * Business goal: To sell premium dogfood |
| 24 | + * User goal: Find high-quality dog food at a good price |
| 25 | +4. Define a target audience (be really specific) |
| 26 | + * Example: Women, 20 - 40 years old, making $2000/mo, living in the mid-west |
| 27 | + * The more specific your target audience, the more information you will have to meet your business and user goals |
| 28 | + |
| 29 | +### Plan the Project |
| 30 | +1. Plan and gather website content |
| 31 | + * Text |
| 32 | + * Images |
| 33 | + * Videos |
| 34 | + * Etc. |
| 35 | +2. This content is usually provided by the client |
| 36 | + * You can help them find some free images |
| 37 | + * If they want you to write copy, charge them for it |
| 38 | + * For larger sites, plan the sitemap [content hierarchy] |
| 39 | + + What pages the site needs |
| 40 | + + How they relate to each other |
| 41 | + * Plan what SECTIONS each page needs to convey the content's message and the order of the sections |
| 42 | + * The content should guide the design of the project |
| 43 | +3. Define the website personality |
| 44 | + |
| 45 | +### Sketch Layout and Component Ideas |
| 46 | +1. Think about the components you need and how you can use them in layout patterns |
| 47 | +2. Get ideas out of your head |
| 48 | + * Sketch them with ppen and paper |
| 49 | + * Or use a layout software like Figma |
| 50 | +3. The sketches should be simple, low-fidelity, without details |
| 51 | +4. This is an iterative process |
| 52 | + * Experiment with differnt components and layouts |
| 53 | + * This process will allow you to arrive at a first good solution |
| 54 | +5. Do not take too much time at this point |
| 55 | + * You don't need to try to sketch everything |
| 56 | + * Don't try to make it perfect |
| 57 | + * Just get the design juices flowing |
| 58 | + |
| 59 | +### Design and Build Website |
| 60 | +1. Use the information from the first three steps to design and build the website using HTML and CSS |
| 61 | +2. You have the layouts and components from the previous steps so now you need to design the visual styles |
| 62 | +3. Create the design based on the actual website personality |
| 63 | +4. Use the client's branding if possiblefor design decisions (website should match client's branding) |
| 64 | + * Colors |
| 65 | + * Typography |
| 66 | + * Icons |
| 67 | + |
| 68 | +### Test and Optimize |
| 69 | +1. Make sure website works well in all major browsers |
| 70 | + * Chrome |
| 71 | + * Firefox |
| 72 | + * Safari |
| 73 | + * Edge |
| 74 | +2. Test the website on actual mobile devices not just developer tools |
| 75 | +3. Optimize all images in terms of dimensions and file size |
| 76 | + * Use the correct dimensions in pixels |
| 77 | + * Compress them so they load quicker |
| 78 | +4. Fix simple accessibility issues |
| 79 | + * Color contrast issues |
| 80 | + * Maybe adding gradients where needed |
| 81 | +5. Run the Lighthouse performance test in Chrome Developer Tools and fix reported issues |
| 82 | +6. Think about Search Engine Optimization (SEO) |
| 83 | + |
| 84 | +### Launch |
| 85 | +1. Upload website files to a hosting platform |
| 86 | + * Netlify has a free hosting plan |
| 87 | + * Other platforms have a variety of hosting options at different costs |
| 88 | +2. Choose a great domain name |
| 89 | + * One that represents the brand well |
| 90 | + * One that is memorable |
| 91 | + * One that is easy to write |
| 92 | + |
| 93 | +### Maintain and Update the Website |
| 94 | +1. Keep the website content updated over time |
| 95 | + * If working with a client, create a monthly maintenance contract (recurring income) |
| 96 | +2. Install some type of analytics software |
| 97 | + * Google Analytics |
| 98 | + * Fathom |
| 99 | +3. The analytics gives you information about how the users interact with your website |
| 100 | + * This may lead to changes in site structure and content |
| 101 | + * This can lead to updates that help the users make more action decisions |
| 102 | +4. Each website should have a blog |
| 103 | + * It should be updated regularly |
| 104 | + * It is a good way to keep users coming back |
| 105 | + * It also aids SEO (?) |
| 106 | + |
| 107 | +## Defining and Planning the Omnifood Project |
| 108 | + |
| 109 | +### Define the Project |
| 110 | +1. Define WHO the project is for: A client (Omnifood) |
| 111 | +2. Define WHAT the website is for |
| 112 | + * Business goal: Sell a food subscription |
| 113 | + * User goal: Eat well effortlessly without spending a lot of time or money |
| 114 | +3. Define target audience |
| 115 | + * Busy people who like technology |
| 116 | + * Are interested in eating healthy |
| 117 | + * Have a good-paying job |
| 118 | + |
| 119 | +### Plan and gather website content |
| 120 | +1. Plan the sitemap |
| 121 | + * No sitemap necessary |
| 122 | + * Omnifood will be a one-page marketing website |
| 123 | + * This is basically a landing page |
| 124 | +2. Define the website personality |
| 125 | + * Use the startup/upbeat personality |
| 126 | + + Technology company first |
| 127 | + + Technology-centered target audience |
| 128 | + * Add some elements of the calm/peaceful personality |
| 129 | + + Dealing with user well-being |
| 130 | + + Concerned with user health |
| 131 | + |
| 132 | +### Plan page sections |
| 133 | +1. This should come from the content |
| 134 | +2. Sections |
| 135 | + * Logo + Navigation |
| 136 | + * Hero (Include Summary and Headline) |
| 137 | + * Featured in |
| 138 | + * How it works |
| 139 | + * Meals and list of Diets |
| 140 | + * Testimonials + Gallery (side-by-side) |
| 141 | + * Pricing + Features |
| 142 | + * Call-To-Action (CTA) |
| 143 | + * Footer |
| 144 | + |
| 145 | +## Sketching Initial Layout Ideas |
| 146 | + |
| 147 | +## Responsive Design Principles |
| 148 | + |
| 149 | +### Responsive Design |
| 150 | +1. A design technique to make a webpage adjust its layout and visual style to any possible screen size |
| 151 | +2. Responsive design makes all websites usable on all devices: |
| 152 | + * Desktop computers |
| 153 | + * Tablets |
| 154 | + * Mobile phones |
| 155 | +3. Responsize webdesign is NOT a separate technology; it's just CSS |
| 156 | + |
| 157 | +### Responsive Design Ingredients |
| 158 | +1. Fluid layouts |
| 159 | + * Allows webpage to adapt to current viewport width |
| 160 | + * Use %, not px, for elements that should adapt to the viewport |
| 161 | + * Use max-width instead of width |
| 162 | +2. Responsive Units |
| 163 | + * Use REM instead of PX for most lengths |
| 164 | + * This makes it easy to scale the entire unit up or down automatically |
| 165 | + * Use 1rem = 10px |
| 166 | +3. Flexible Images |
| 167 | + * By default, images do not scale automatically as we change the viewport |
| 168 | + * Always use % for image dimensions together with the MAX-WIDTH property |
| 169 | +4. Media queries |
| 170 | + * Bring responsive sites to life |
| 171 | + * Allow us to change CSS styles on certain viewport widths (called breakpoints) |
| 172 | + |
| 173 | +### Desktop-First VS. Mobile-First Development |
| 174 | +1. Desktop-First |
| 175 | + * Start writing CSS for desktop [large sreen] |
| 176 | + * Then, write media queries to shrink design to smaller screens |
| 177 | + * This method is thought to be the easiest to learn |
| 178 | +2. Mobile-First |
| 179 | + * Start writing CSS for small screens |
| 180 | + * Then, write media queries to expand design for large screens |
| 181 | + * Forces us to reduce websites and apps to the absolute essentials |
| 182 | + |
| 183 | +## How REM and MAX-WIDTH Work |
| 184 | +1. Max-Width |
| 185 | + * Sets the maximum width of an element, but not the minimum |
| 186 | + * Using max-width allows an element to scale smaller, but can never be larger than the max-width set |
| 187 | +2. REM |
| 188 | + * A rem is the size of the font of the root element |
| 189 | + + The root element is the HTML element |
| 190 | + + If no font size is set, it is the default font size of the browser |
| 191 | + + Most browsers default font size is 16 pixels |
| 192 | + + Therefore, unless the font size of the HTML element is set or the browser default font size has been changed, the size of 1rem = 16px. |
| 193 | + + Normally 50rem = 800px. |
| 194 | + * |
0 commit comments