Question
Instructions Need script/video regarding how to push your code to Github Need project proposal also in less than 3 pages Need to use Ruby/n 1E-Commerce Project Full Project Explanation Document Goal The goal of this assignment is to create and deploy an E-Commerce website for a fictional client using the technologies you have studied this term. The type of web store you create is up to you. How Your Project Will be Marked This document lists the possible features that can be included in the e-commerce store you are building for your WEBD-2007 final project. Each feature that you implement is worth a percentage of your project mark. Features are categorized into three levels of difficulty, worth 2%, 4%, 6% or 8% per feature. Failing to implement a feature marked with a star will result in a 3% deduction. For example, a student would be awarded a final project mark of 80% if they: Complete twenty-one 2% features Complete eight 4% features Complete two 6% features. (42%) (32%) (12%) (-6%) Fail to implement two starred features. Keep track of your project progress using this google spreadsheet. It's recommended that you make a copy of this spreadsheet to your google account. Downloading the spreadsheet as an Excel spreadsheet is untested and not recommended. You should strive to complete at least one feature every day so that you are not swamped with work by the end of the term. When Projects Will be Marked Projects will be marked during class time starting the week of April 1st, 2024. The final version of your project must be submitted to Learn by Thrusday, April 22th before 11:59pm. Your project mark will be based only on marks you receive during in-class marking. During an in-class marking session you will demonstrate your project's features to your instructor. For each feature demonstrated your instructor will determine if that feature will be marked as completed or not. It is your responsibility to come prepared to a marking session with a list of the features you wished to have marked. This list should include the feature number and the feature text from the list below. In order for a feature to be considered complete, you must have spent sufficient time and effort on its implementation. When in doubt, check with your instructor. IMPORTANT: For features listed with a green number you must read over the extra clarifications listed for that feature at the end of this document before you implement it and again before you ask to have it marked. With this marking process you are accumulating marks throughout the process, or in video game terms you are leveling up your mark. After any of the in-class marking sessions you will know your current project mark. Epic Failure Mistakes are how we learn. So let's make some. In the spirit of encouraging experimentation, I will be awarding marks for well-documented failure on project requirements. If you struggled for 2 or more hours without success while implementing a feature, configuring a gem, or deploying your application, and you have the git commits to prove it, I will award you half of the marks associated with that feature. If you later complete the feature you can end up with marks both for the failure and for the completion. I will award marks for epic failure for up to two features on your project. Epic Failure Documentation Requirements: A commit history that shows a 2+ hour code battle, with enough commits to show that you tried various different solutions and strategies. The commits should be regularly spread out across the 2+ hours, and the commit messages should describe all the assumed problems and solutions you explored during your battle. You will also be asked to show a list of all guides, tutorials, blog posts and stack overflow questions that you followed during your code battle, along with which commits link to which resource used and the outcome of each. In other words, your epic failure needs to involve research and must be well documented. The List of Possible Features Requirements marked in green are subject to extra clarifications found at the end of this document. Be sure to read these clarifications before you begin to implement a feature. Above each group of features the type of user the feature applies to is listed. It is important that you pay attention to these details. A feature implemented for the incorrect type of user will not be considered complete. You can keep track of your marks by way of this marking spreadsheet. 1. Product Administration As an administrator I should be able to: (Worth 2% Each) 1.1 1.2 Gain access to an admin dashboard by providing a username and password. * Add, edit or delete product listings by way of an admin dashboard. 1.3 Add or update images associated with new or existing products. (Or images for another suitable model.) 1.4 Edit the content of the website's contact and about page. 1.5 Create and maintain a list of product categories and assign categories to new or existing products. As the website programmer you should be able to - 1.6, 1.7,1.8 counts towards 1 mark total for this section: (Worth 2%) 1.6 1.7 1.8 Seed your product database with products and associated categories. Scrape your seed data for products and categories from a 3rd party website using a web scraping browser extension or a custom web scraping script. Extract your seed data for products and categories from an existing dataset or API, which isn't Faker and isn't the scraped data from 1.7. Seeding your database from a data source or a web scrape is optional. When seeding from a data source you will need to create a minimum of 100 products and 4 categories. If you choose to invent your own products and categories, you only need 10 products. 2. Product Display As a customer I should be able to: (Worth 2% Each) 2.1 2.2 2.3 2.4 Navigate through the available products by way of a front page. ✯ Navigate through the available products by category. View the details of any of the available products on their own product page. * Two or more of the following. Filter the products to see only the products that are: ● on sale. • new. 2.5 • recently updated. Products listing are paginated. (There's a gem for that.) As a customer I should be able to: (Worth 4%) 2.6 Search through the available products using a keyword search by category. * 3. Product Orders As a customer I should be able to: (Worth 4%) 3.1.1 Add various products to a shopping cart saved in session. ✰ 3.1.2 Edit quantity of items in shopping cart and remove items from cart. Be able to edit quantity on its own after adding to cart. As a customer I should be able to: (Worth 4% or 8%) 3.1.3 Complete a checkout process after filling their shopping cart. 8% 3.1.4 Sign up for an account with a username and password. 8% 3.1.5 Save their address details (including province) during or after sign-up. 4% As a customers who can submit orders I should be able to: (Worth 4% Each) 3.2.1 List all past orders along with the order details. (Can also be implemented for all customers from the admin dashboard.) As an administrator with customers who can submit orders I should be able to: (Worth 2% Each) 3.2.2 Manually and programmatically change the status of outstanding orders (example: pending, paid or shipped) as required. 3.2.3 Change the tax rates associated with the various Canadian provinces and territories. As the website programmer you should be able to: (Worth 6% Each) 3.3.1 Integrate a 3rd party payment processor like Stripe or Paypal such that you can actually receive credit card payments as part of the checkout process. As the website programmer you should be able to: (Worth 2% Each) 3.3.2 Design the database schema and the order system code such that changes to product prices or changes to tax rates will not affect past orders. 4. Layout and Application Design As the website designer you should be able to: (Worth 2% or in two cases 4%) 4.1.1 Create valid markup and CSS for all pages on the website. 4.1.2 Design a consistent look and feel for all pages on the website. 4% 4.1.3 Implement location-based breadcrumbs up to three levels of depth. 4.1.4 Make use of Rails "View Partials" to DRY up your views. ✰ 4.1.5 Use the SASS (SCSS) pre-processor for all styling rules instead of CSS, including the use of nesting, variables, inheritance and operators. 4.1.6 Build your markup & styling with a CSS framework like Bootstrap, Semantic UI, Materialize or Bulma. 4.1.7 Your CSS is screen-size responsive such that your store works equally well on desktop, tablet and mobile devices. 4% As the website programmer you should be able to: (Worth 2% Each) 4.2.1 Use Rails validations in all of your models (except join models) to ensure that data submitted to the site by administrator and customers is present and correctly formatted. 4.2.2 Implement a database schema that involves both one-to-many and many-to-many relationships. 4.2.3 Make use of a custom flash hash message after a redirect and use the session hash in some way. 4.2.4 Implement file uploads in such a way to support the automatic scaling of images into multiple sizes (example: thumbnail images, and large image) for use within your views. As the website programmer you should be able to: (Worth 2% Each) 4.2.5 Implement a many-to-many relationship with a join table/model along with a way to work with this association in the admin dashboard without directly manipulating the/nPK id USER name email is_admin password_digest PK id ORDERITEM order_id [FK] product_id [FK] quantity price PK id CATEGORY name Places PK id ORDER user_id [FK] total_price status created_at Corresponds To Litt -1 PK id Belongs To name Includes PRODUCT description price stock_quantity category_id [FK]
Question image 1Question image 2