I have a deep passion for both cars and programming.
Code never lies, comments sometimes do
Book Heaven is an online book shop, built using Python, Django, HTML, CSS, JavaScript, Amazon S3 and Stripe.
As a User I want to be able to complete the checkout process for my shopping cart so that I can purchase the items I've added to my cart
As a user, I want to be able to securely make payments using Stripe so that I can complete my purchases on BookHeaven with confidence.
Bug Description
The bug allows the creation of identical code due to case sensitivity. The code is considered unique and is then added to the database. When the code is applied the application returns 2 results and breaks the application
Steps To Reproduce
Go to Django admin or admin panel on front end. Create a code with the name test. Create another code with the name TEST. Add item into the cart and apply discount test on checkout. The application returns an error.
MultipleObjectsReturned at /cart/add_discount/
Solution
As a user, I want to be able to submit a testimonial about my overall experience with the website so that I can provide feedback and share my positive experiences on BookHeaven.
Describe Task
Complete Documentation
Tasks:
Add the following sections to readme:
As an administrator, I want to be able to remove products from the website so that I can manage the product catalog on BookHeaven.
As a user, I want to be able to add products to my shopping cart so that I can conveniently review and purchase multiple items at once on BookHeaven.
As a User I want to be able to browse through a large list of products in the bookshop so that I can view all books in an organised way
Given I am on the bookshop's homepage or a products page with a large number of products, When I scroll down to the bottom of the page or click a page navigation link, Then I should be able to view the next page of products.
Given I am on a page with multiple pages of products, When I click on a specific page number or use navigation links (e.g., "Next" and "Previous"), Then I should be directed to the corresponding page displaying a different set of products.
As a user, I want to be able to apply discount codes to my orders so that I can enjoy savings and discounts on my purchases at BookHeaven.
As a registered user I want to be able to see my profile page so that I can update my information
As a user, I want to be able to adjust the quantity of products in my shopping cart so that I can control the quantity of items I want to purchase on BookHeaven.
Bug Description
If item has 5 units in stock, the user can add 5 units two times and have 10 in their cart which exceeds to available amount. Solution must be implemented either when adding items to cart or when proceeding to checkout
Steps To Reproduce
Add items to cart multiple times with stock levels within the range until it adds up above the current stock levels
Solution
Bug Description
During testing the checkout functionality, it was noted that if the item in the cart has been updated with new quantity then after submitting the payment form an error occurs 'can't multiply sequence by non-int of type 'decimal.Decimal'
Steps To Reproduce
Add item to cart and follow the checkout steps. After form submission the success page appears. Add another item to cart and update quantity. Follow the checkout steps. After submission error page appears.
Solution
The issue was in the checkout/views.py checkout view. item_quantity was not an integer and that was causing the issue.
As an administrator, I want to be able to add new products to the website so that I can expand the product catalog on BookHeaven.
Bug Description
When products are refined by genre the name of the genre does not display the friendly name on the top of the page
Steps To Reproduce
Open the products page and refine by genre. Observe the genre name at the top of the page
Solution
In the all products template replace the genre name with friendly name
Bug Description
When adding items to cart the total was calculated as integer.
Steps To Reproduce
Add items to cart and observe the cart total
Solution
Fix the calculation of the total price in contexts.py by removing int() before book.product_price
As an administrator, I want to be able to edit existing products on the website so that I can update and manage the product catalog on BookHeaven.
As a User I want to be able to view detailed information about a product's author, including their name, a short biography, and a list of books available for sale on the website so that I can learn more about the author and explore their other works.
Given I am on the bookshop's homepage or a product detail page, When I click on the name of the product's author, Then I should be directed to an "Author Profile" page.
Given I am on the "Author Profile" page, When I view the page, Then I should see the following information about the author:
Given I am on the "Author Profile" page, When I click on the title or image of a book by the author, Then I should be directed to the "Single Product View" page for that book, where I can view more details and potentially make a purchase.
Given I am on the "Author Profile" page, When I click on the "Go Back" button, Then I should be directed back to the previous page (e.g., the product detail page or the homepage).
As a user, I want to sign up for newsletters on the website so that I can keep up with updates and deals.
As a user I can visit the home page so that I can identify the purpose of the website
As a an authenticated user I want to be able to add a review for a book product so that I can share my feedback and experiences with other potential buyers
And I submit my review, Then my review should be added to the list of reviews for that product.
Given I am viewing the product's detail page, When I submit an empty review form, Then I should see an error message indicating that the review cannot be empty, and my review should not be added.
Given I am viewing the product's detail page and have submitted a review, When I view the list of reviews for that product, Then I should see my review in the list along with my username (or a display name) and the date of submission.
As a user I want to be able to sort the list of available products by name and price so that I can easily find books that match my interests
As a User I want to be able to search for products in the bookshop by entering keywords so that I can quickly find specific books or topics of interest
Given I am on the bookshop's homepage or any product listing page, When I enter keywords or phrases into a search input field and click the "Search" button, Then I should be directed to a search results page displaying a list of products that match the search query.
Given I am on the search results page, When I view the page, Then I should see a list of products that match the search query, including:
Given I am on the search results page, When I click on a product from the search results, Then I should be directed to the "Single Product View" page for that book, where I can view more details and potentially make a purchase.
Given I am on the search results page, When I enter a search query that yields no results, Then I should see a message indicating that there are no products matching the search query.
As a registered user I want to be able to reset my password so that I can regain access to my account in case I forget my password
As a user I want to be able to register an account so that I can have access to all functionality of BookHeaven.
As a an authenticated user I want to be able to edit my reviews for a book product so that I can manage and maintain the accuracy and relevance of my feedback
As an administrator, I want to have access to an admin dashboard so that I can monitor and view simple statistics related to the orders made on BookHeaven.
As a developer I can connect database and media storage so that the user's stored data is stored successfully
As a user, I want to be able to remove products from my shopping cart so that I can adjust my order before making a purchase on BookHeaven.
Bug Description
When using the pagination, every time a page number is added to the url.
Steps To Reproduce
Open page with products with pagination. Change pages and observe the url
Solution
Refactor the html code to ensure the link is replaced and not added to when a page is changed
As a user I want to be able to view detailed information about a single product so that I can make an informed decision before purchasing
Given I am on the bookshop's homepage or "All Products" page, When I click on a product's title or image, Then I should be redirected to a "Single Product View" page.
Given I am on the "Single Product View" page, When I view the page, Then I should see detailed information about the selected product, including:
As a user I want to be able to ** refine the list of available products by selecting a specific category** so that I can easily find books that match my interests
Given I am on the bookshop's homepage or "All Products" page, When I navigate to a product category section or dropdown menu, Then I should see a list of available product categories to choose from.
Given I am on the bookshop's homepage or "All Products" page, When I select a specific category from the list, Then the list of displayed products should be filtered to include only products that belong to the selected category.
Given I am on the bookshop's homepage or "All Products" page, When I select a category that has no associated products, Then I should see a message indicating that there are no products in the selected category.
Given I am on the bookshop's homepage or "All Products" page, When I select a category, Then I should have the option to clear the category filter and view all products again.
As a user, I want to be able to view testimonials submitted by other users so that I can read about the experiences and feedback of fellow users on BookHeaven.
As a User I can navigate through the website so that I can access different sections efficiently
As a developer I can setup a new Django project so that I can create the project's structure
As a developer I can deploy the application early so that I can confirm that the initial setup is working and can continue testing the application during development
As a user, I want to be able to log in to my account so that I can access my personalized features and make purchases on BookHeaven.
As a an authenticated user I want to be able to delete my reviews for a book product so that I can manage and maintain the accuracy and relevance of my feedback
As a website owner, I want to improve the website's search engine optimization (SEO) so that the website can rank higher in search engine results and attract more organic traffic.
Bug Description
When a book is on sale, the new price is displayed to the user. However, if the admin changes the on_sale to False then the book still has the on sale price
Steps To Reproduce
Add a book and list it on sale with sale price. Observe the price displayed to the user (the new price). Change the on_sale field to False. Observe the price displayed to the user, result - the new price.
Solution
Add to the save method in the Product model condition if the book is not on sale to change the sale price to 0.
As an administrator, I want to be able to edit the stock levels of products so that I can manage inventory and ensure product availability on BookHeaven.
As a user I want to be able to view a list of all available products in the bookshop so that I can browse and choose books to purchase
Given I am on the bookshop's homepage, When I click on the "Browse All Products" link in the navigation menu, Then I should be directed to a page displaying a paginated list of all available products.
Given I am on the "All Products" page, When I scroll down, Then I should see a list of product cards, each containing:
The book's title
The book's author
The book's cover image
The book's price
An "Add to Cart" button
Given I am on the "All Products" page, When I click on a product card, Then I should be directed to a product detail page where I can view more information about the selected product.
As a authenticated user, I want to be able to save books to my wishlist so that I can revisit and consider purchasing them later on BookHeaven.
Bug Description
This bug is related to calculating the amount of stock in the shopping cart with the quantity the user is trying to add. It throws an error cannot concatenate str and int objects.
Steps To Reproduce
If item has 4 units in stock, add to cart 2. Then attempt to add 3 more items to cart. The error cannot concatenate str and int objects. occurs
Solution
The issue was related to the fact that the cart values coming from the session are a string. Once converted to integer the issue was resolved
Describe Task
Document the testing process of the application to include:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.