Giter VIP home page Giter VIP logo

tomik-z-cech / pp5-ohm-azing-components Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 21.62 MB

View massive selection of electronic components at our online store. Find high-quality resistors, capacitors, tools, kits and more. Shop now for all your electronic needs !

Home Page: https://ohmazing-components-1a5a0fcb9e95.herokuapp.com/

Python 42.90% HTML 45.50% CSS 7.39% Procfile 0.01% JavaScript 4.20%
arduino capacitor components electronic-components microcontrollers raspberry-pi-4 resistors soldering-irons electronic-ideas electronic-kit

pp5-ohm-azing-components's Issues

USER STORY : Opt In/Out for Newsletter

As a Site User I can Opt In/Out for Newsletter or other marketing communtiation to be able to change my preferences.

Acceptance Criteria :

Logged in user :
When I navigate to "My Details" section then I can mark/unmark to receive marketing emails, sms or phone calls.

Not logged in user :
Don't have that option as not logged in.

Tasks :

  • Update views.py in profilemanager to read current marketing preferences
  • Update template
  • Test functionality with valid credentials
  • Test functionality with invalid credentials

Epic :
EPIC 6

USER STORY : Email interface for marketing purposes

As a Site admin, I need to implement Mailing interface to be able to send emails to all users signed up for email communication.

Acceptance Criteria :

Staff/SuperUser :

When I log in with my credentials then I am able to navigate to admin tools section to to create drafts/send emails to all users that are signed up to receive email newsletter.

Users with no staff or Superuser rank :

Not able to access that functinality.

Tasks :

  • Create model "Newsletter" to store all email adresses of users
  • Create signal receiver to automatically add users after registration
  • Create signal receiver from "profilemanager" app that either adds or deletes user from newsletter model based on their settings
  • Adjust owner.html template
  • Create model for email templates
  • Create templates for CRUD of email templates.
  • Install Rich Text Field Editor
  • Create views
  • Adjust owner urls.py
  • Test functionality

Epic :
EPIC 4

USER STORY : Create Working Django App

As a Site Developer, I need to set all dependencies, correctly set settings.py and create working app in local environment.

Acceptance Criteria :

All dependencies are installed, settings.py all set for local view and when project is ran locally, symbol of correctly set app is shown (rocket).

Tasks :

  • Create Virtual Environment
  • Install Django
  • Install Psycopg2
  • Install dj-database
  • Insatll AllAuth
  • Install Crispy Forms
  • Freeze all modules to requirements.txt
  • Set-up settings.py

Epic :
EPIC 1

USER STORY : Delete my account

As a Site User I can Delete My Account to be able to opt out from all services.

Acceptance Criteria :

Logged in user :
When I navigate to "my details" then I have the option of delete my account entirely.

Not logged in user :
Don't have that option as not logged in.

Tasks :

  • Update views.py in profilemanager app
  • Update template (delete button)
  • Create a modal that informs user of the deletition
  • Test functionality with valid credentials

Epic :
EPIC 6

USER STORY : Comments section

As a Business Owner, I have option to approve/delete comments to ensure no inapproproate content on the project page.

Acceptance Criteria :

Staff/SuperUser :

When I log in with my credentials then I am able to navigate to admin tools section approve/delete comments.

Users with no staff or Superuser rank :

Not able to access that functinality.

Tasks :

  • Create comments views
  • Update urls.py in owner app
  • Create templates for vieving, approving and deleting comments
  • Test functionality as Site Admin

Epic :
EPIC 4

USER STORY : Reset password if forgotten

As a Site User I am able to Reset My Password to change my password if forgotten.

Acceptance Criteria :

When I visit login page then I have the option to reset my password via provided link and email with reset link is sent to me.

Tasks :

  • Register with mail client (Gmail)
  • Set up all relevant settings for sending emails in settings.py
  • Test functinality with valid credentails
  • Test functionality with invalid credentials

Epic :
EPIC 3

USER STORY : See Comments of others

As a Site User I can see other comments on Items to read other Users opinions.

Acceptance Criteria :

Logged in user :
When I open item detail then I am able to see other people comments.

Not logged in user :
Doesn't have that option.

Tasks :

  • Adjuts views.py
  • Create "comments section" in item_details.html
  • Iterate through comments to display them in item_details.html
  • Ensure the comments visibility is only for logged in users
  • Paginate the comments
  • Test functionality as logged in user
  • Test functionality as not logged in user

Epic :
EPIC 7

USER STORY : Footer

As a Site User I want to be able to find useful info on the bottom of the site in order not to scroll and search too much around.

Acceptance Criteria :

When I navigate to the site, I am able to see footer with basic contact details, link to socials and accepted payment options.

Tasks :

  • Create footer.html template
  • Include the template in base.html
  • Include conatct, socails and payment options
  • Test functionality

Epic :
EPIC 5

USER STORY : Log In

As a Site User I am able to Log In to see registered user section.

Acceptance Criteria :

1.Registered user :
When I visit the site then I am able to login via login link.

2.Not registered user :
When I visit the site and trying to log in then I am given error message that user does not exist.

Tasks :

  • Create login link on landing page
  • Test functionality trying to login with not existing credentials
  • Create a test user
  • Create Superuser
  • Test functionality with valid credentials

Epic :
EPIC 3

USER STORY : Log Out

As a Site User, I am able to log out to leave the site functions for registered users.

Acceptance Criteria :

1.Registered user :
When I am logged in then I am able to logout.

2.Not registered user :
Don't have that option.

Tasks :

  • Create a log out link in base.html
  • Create if statement {% if user.is_authenticated %} in base.html
  • Test functionality with valid credentials

Epic :
EPIC 3

USER STORY : Clear the Vault

As a Site User, I can delete all items in Vault in order to manage the items.

Acceptance Criteria :

When I visit the site and navigate to "Vault" section then I can clearly see option to delete all items from the Vault .

Tasks :

  • Create proper view in views.py
  • Provide user with clear option of clearing their Vault
  • Provide User with confirming Modal
  • Provide User with confirmation message
  • Test functionality as Logged In User
  • Test functionality as Not Logged In User

Epic :
EPIC 9

USER STORY : Define Database Schema

As a Developer, I need to create databse schema that fits the purpose of the project and also create all the modular apps that will be used in the project.

Acceptance Criteria :

All Django apps are created and database schema in place to adhere to.

Tasks :

  • Create Landing app + models
  • Create Owner app + models
  • Create Items app + models
  • Create Profilemanager app + models
  • Create Vault app + models
  • Create Checkout app + models
  • Create Wishlist app + models
  • Create Database Schema that shows names of tables, fileds and relationships

Epic :
EPIC 2

USER STORY : Change Details (Phone Number, Email Address, etc.)

As a Site User I can Update My Details to be able to manage my account in case of changes.

Acceptance Criteria :

Logged in user :
When I login then I can clearly navigate to "My Details" section where I can change my details.

Not logged in user :
Don't have that option as not logged in.

Tasks :

  • Create a view in profilemanager app.
  • Read current details from User model
  • Create a template for the view.
  • Create a form in template
  • Create a link to AllAuth email change (as emails are verified)
  • Create a link to AllAuth password change
  • Test functionality with valid credentials
  • Test functionality with invalid credentials

Epic :
EPIC 6

USER STORY : Favicon & Title

As a Site User I woul like to be able to differenciate this site from other sites opened in my browser, in order of easy navigation.

Acceptance Criteria :

When I navogate to the site, then I am clarly served with FavIcon and title of the site .

Tasks :

  • Create a FavIcon from logo
  • Register favicon in base.html template
  • Regsiter site title with {% block nav_name %}{% endblock %}
  • Equip each template that extends base.html with the same {% block nav_name %}{% endblock %} including the title of sub page
  • Test functionality as Site User and Site Admin

Epic :
EPIC 5

USER STORY : Add to Vault

As a Site User, I need to be able to add items to vault in order to see the entire order before payment.

Acceptance Criteria :

When I click "Add to vault" button then the item adds to vault.

Tasks :

  • Provide user with "Add to Vault" button
  • Create view in views.py
  • Ensure the view communicates with context_list.py nested in vault app
  • Add logic to prevent doubling of items that are already in vault
  • Provide user with message that item was added to the Vault
  • Provide user with info how much left for free delivery
  • Test functionality as Site User

Epic :
EPIC 7

USER STORY : Comment on Products

As a Site User I can Comment on Items to share my opinion.

Acceptance Criteria :

Logged in user :
When I navigate to item detail in shop then I am able to add comment on the relevant item.

Not logged in user :
Doesn't have that option.

Tasks :

  • Adjust ItemDetailView view in views.py with def post
  • Create commenting form in item_detail.html template
  • Provide user with "submit comment" button
  • Only add the form visibility to logged in users
  • Test functionality as logged in user
  • Test functionality as not logged in user

Epic :
EPIC 7

USER STORY : Implement user registration

As a Site User I am able to register to create new account and to select username and passsword.

Acceptance Criteria :

Not registered user :
When I visit the site then I am able to register, select free username and create valid password.

Tasks :

  • Set all relevant settings for AllAuth in settings.py
  • Create "register" link on landing page

Epic :
EPIC 3

USER STORY : Adjust amounts of items in Vault

As a Site User, I can adjust amount of each item in Vault in order to manage the items before proceeding to Checkout.

Acceptance Criteria :

When I visit the site and navigate to "Vault" section then I can clearly see amount of each item and I have an option to adjust or remove the item from the Vault .

Tasks :

  • Create a post method of displaying the Vault for adjusting amounts
  • Create a view for deleting items from Vault one by one
  • Provide User with "Remove" button that removes an item from Vault
  • Provide User with number input field for adjusting the amounts
  • Prepopulate each field with the amount selected
  • Create logic so User can't submit different than a valid quantity number
  • Provide user with message that Vault has / hasn't been updated
  • Test functionality as Logged In User
  • Test functionality as Not Logged In User

Epic :
EPIC 9

USER STORY : Set Up GitHub Repository

As a Site Developer, I need to set-up a repository on GitHub platform to be able to have control over versions of project.

**Acceptance Criteria : **

Working GitHub repository.

Tasks :

Tasks :

  • Create new repository - PP5 - Ohm-Azing Components
  • Create project for the same repository
  • Create labels for importance (Must, Should, Could, Won't Have & Bugs)
  • Create labels for Story Points in Fibonacci Sequence (1,2,3,5,8,13,21)
  • Create Epic's
  • Create User Stories

Epic :
EPIC 1

USER STORY : Display content of Vault

As a Site User, I can display items in Vault in order to manage the items.

Acceptance Criteria :

When I visit the site and navigate to "Vault" section then I can clearly see all items in the Vault .

Tasks :

  • Create Vault app urls.py
  • Create view for displaing the Vault in views.py
  • Create vault.html template
  • Provide user with clear list of items including image, name, price and description of each item in Vault
  • Provide User with clear information about free delivery
  • Provide user with clear Total Vault Amount at the bottom of page
  • Test functionality as Logged In User
  • Test functionality as Not Logged In User

Epic :
EPIC 9

USER STORY : Shop by Category

As a Site User, I would like to have the shop items sorted by category so I can browse the items faster.

Acceptance Criteria :

When I visit the shop with all items then I can see all the categories displayed and when category clicked, items belonging to the category will display.

Tasks :

  • Create template shop.html
  • Create a div for all categories
  • Update urls.py in items
  • Load all categories from DB in view
  • Test functionality as Site User

Epic :
EPIC 7

USER STORY : Items section

As a Business Owner, I have option to do full CRUD with items in order to manage products sold in my shop.

Acceptance Criteria :

Staff/SuperUser :

When I log in with my credentials then I am able to navigate to admin tools section to perform CRUD on shop items.

Users with no staff or Superuser rank :

Not able to access that functinality.

Tasks :

  • Create items views
  • Update urls.py in owner app
  • Create forms needded
  • Create templates for reading, creating, editing and deleting items
  • Create and register widget for submitting item images
  • Test functionality as Site Admin

Epic :
EPIC 4

USER STORY : Implement Data Validation in Models

As a Developer, I need implement data validation rules within Ohm-Azing Componenets database models.

Acceptance Criteria :

All values inserted into database are the correct values and types, all applicable fileds are all set to be required or/and to be unique or/and nullable/not nullable.

Tasks :

  • Set correct data type for all fileds
  • Set all required fields to required = True
  • Set all required fileds that can be nullable to null = True
  • Set all required fileds that have to be unique (username) unique = True
  • Create SuperUser
  • Test data type by inserting test data into databse

Epic :
EPIC 2

USER STORY : Profile Picture

As a Site User I can Change my profile picture to add the finishing touch to my profile.

Acceptance Criteria :

Logged in user :
When I navigate to "My Details" section then I change my profile picture.

Not logged in user :
Don't have that option as not logged in.

Tasks :

  • Update views.py in profilemanager to read current profile picture or initials
  • Update template
  • Add JS logic to display selected profile picture
  • Test functionality with valid credentials

Epic :
EPIC 6

USER STORY : Clear Wishlist

As a Site User, I can delete all items in My Wishlist in order to manage the items.

Acceptance Criteria :

Logged In User :

When I log in and navigate to "My Wishlist" section then I can clearly see option to delete all items from the Wishlist .

Not Logged In User :

Doesn't have that option.

Tasks :

  • Create proper view in views.py
  • Provide user with clear option of clearing their Wishlist
  • Provide User with confirming Modal
  • Provide User with confirmation message
  • Test functionality as Logged In User
  • Test functionality as Not Logged In User

Epic :
EPIC 8

USER STORY : Postage Settings section

As a Business Owner, I have option to adjust free postage treshold and posatege fees for standad and express delivery options.

Acceptance Criteria :

Staff/SuperUser :

When I log in with my credentials then I am able to navigate to admin tools section to change postage settings.

Users with no staff or Superuser rank :

Not able to access that functinality.

Tasks :

  • Create postage setting views
  • Update urls.py in owner app
  • Create forms needded
  • Create templates for postage settings
  • Test functionality as Site Admin

Epic :
EPIC 4

USER STORY : Categories section

As a Business Owner, I have option to do full CRUD with item categories in order to manage my shop.

Acceptance Criteria :

Staff/SuperUser :

When I log in with my credentials then I am able to navigate to admin tools section to perform CRUD on shop categories.

Users with no staff or Superuser rank :

Not able to access that functinality.

Tasks :

  • Create categories views
  • Update urls.py in owner app
  • Create forms needded
  • Create templates for reading, creating, editing and deleting categories
  • Create and register widget for submitting category image
  • Test functionality as Site Admin

Epic :
EPIC 4

USER STORY : Product Details

As a Site User, I would like to see the details of each item in separate page so I won't get lost in too much info.

Acceptance Criteria :

When I visit the shop with all items and open details of certain item then I can see all the relevant info per item.

Tasks :

  • Create template item_detail.html
  • Create logic for displaying only relevant info to certain item (has sizes, has values ?)
  • Create form for adding items to vault
  • Create context processor and register in settings.py
  • Create logic so user can't add negative amount of items to vault or more items than in stock
  • Create an option for user to add item to wishlist
  • Create an option for user to add item to vault
  • Update urls.py in items
  • Test functionality as Site User

Epic :
EPIC 7

USER STORY : Display Wishlist Items

As a Site User, I can display items in My Wishlist in order to manage the items.

Acceptance Criteria :

Logged In User :

When I log in and navigate to "My Wishlist" section then I can clearly see all items in the wishlist .

Not Logged In User :

Doesn't have that option.

Tasks :

  • Create Wishlist app urls.py
  • Create view for displaing the Wishlist in views.py
  • Create wishlist.html template
  • Provide user with clear list of items including image, name, price and description of item
  • Test functionality as Logged In User
  • Test functionality as Not Logged In User

Epic :
EPIC 8

USER STORY : Remove Items from Wishlist

As a Site User, I can remove items from My Wishlist one by one in order to manage the items in the Wishlist.

Acceptance Criteria :

Logged In User :

When I log in and navigate to "My Wishlist" section then I can clearly see an option to delete item from Wishlist .

Not Logged In User :

Doesn't have that option.

Tasks :

  • Create view for deleting item in views.py
  • Provide user with clearly located button for deleting item
  • Provide User with message of confirmation
  • Test functionality as Logged In User
  • Test functionality as Not Logged In User

Epic :
EPIC 8

USER STORY : Deploy to Heroku

As a Site Developer I need to create a working Heroku deployement.

Acceptance Criteria :

Working Heroku Deployment, when first deployed site accesed, it gives hint of correctly installed Django App (DEBUG = True). Create if statement in settings.py for DEBUG = False when deployed.

Tasks :

  • Create Heroku App
  • Link with GitHub
  • Set up Vars
  • Create first deployment
  • Fix issues (if any)
  • Set if/else statement for DEBUG = False

Epic :
EPIC 1

USER STORY : Set Up Dependencies

As a Developer, I need to register and obtain links for third party services.

Acceptance Criteria :

All links of third party services (DB, mail provider, AWS) are obtianed and services set

Tasks :

  • Register with Neon DB
  • Obtain Postgres link
  • Refister with Gmail
  • Obtain app password
  • Register with AWS
  • Set AWS
  • Obtain AWS links
  • Create env.py file to keep all secret links and passwords

USER STORY : Invoices section

As a Business Owner, I have option to view or download any invoice that was created by shoppers.

Acceptance Criteria :

Staff/SuperUser :

When I log in with my credentials then I am able to navigate to admin tools section to view and download invoices.

Users with no staff or Superuser rank :

Not able to access that functinality.

Tasks :

  • Create invoices views
  • Update urls.py in owner app
  • Create templates for viewing & downloading invoices
  • Test functionality as Site Admin

Epic :
EPIC 4

USER STORY : Header

As a Site User I want to be able to navigate easily through-out the site.

Acceptance Criteria :

When I navigate to the site, I am able to see header with logo and icons for menu, vault and wishlist (if logged in).

Tasks :

  • Create header.html template
  • Include the template in base.html
  • Include logo and links for menu, vault and wishlist
  • Create logic for not loggedin users / logged in users / supersusers
  • Test functionality as Not Logged in User / Logged in User / Site Admin

Epic :
EPIC 5

USER STORY : Toasts

As a Site User I want to be informed of results of requests performed in the form of toast that appears when complex task is done sucessfully / unsuccessfully.

Acceptance Criteria :

When I navigate throughout the site when complex actions are being submitted (DB) then the toast appears to inform me of the result of action.

Tasks :

  • Include <div> toast in base.html template
  • Style toast within the page style
  • Include JS logic in base.html
  • Import messages to all views.py files when used
  • Include meesages in the actual views
  • Create toasts templates (success, info, warning, error)
  • Test functionality

Epic :
EPIC 5

USER STORY : Add to Wishlist

As a Site User, I need to be able to add items to my Wishlist in order to see keep the items I am interested in separately.

Acceptance Criteria :

Logged in User :

When I click "Add to Wishlist" toggle then the item toggles in Wishlist.

Not Logged in User :

Doesn't have that option.

Tasks :

  • Provide user with "Add to Wishlist" / "Remove from Wishlist" toggle button
  • Create view in views.py
  • Adjust item_detail.html template
  • Ensure the view communicates with context_list.py nested in wishlist app
  • Add logic to toggle item in Wishlist
  • Provide user with message that item was added / removed to / from the Wishlist
  • Protect the view to only logged in users
  • Test functionality as Logged in User
  • Test functionality as Not Logged in User

Epic :
EPIC 7

USER STORY : Proceed to Checkout

As a Site User, I can proceed to Checkout in order to pay for items in my Vault.

Acceptance Criteria :

When I visit the site and navigate to "Vault" and I am happy with the content then I can clearly proceed to Checkout .

Tasks :

  • Create Checkout app urls.py
  • Provide User with "Proceed to Checkout" button
  • Test functionality as Logged In User
  • Test functionality as Not Logged In User

Epic :
EPIC 9

USER STORY : Loader

As a Site User I want to be able to see if page is working in the form of loader that appears when complex task is performed.

Acceptance Criteria :

When I navigate throughout the site when complex actions are being submitted (DB) then the loader appears to ensure me the site didn't freeze.

Tasks :

  • Include <div> loader in base.html template
  • Style loader with moving content
  • Incllude JS logic in forms
  • Test functionality

Epic :
EPIC 5

USER STORY : Shop Highlights

As a Site User, I would like to See Newest and Favourites on the landing page so I can see easily what products are after arriving and what are most popular.

Acceptance Criteria :

When I navigate to the site then on landing page I can see featured products, free delivery treshold.

Tasks :

  • Create app landing
  • Import modules Item and PostageSettings to landing views
  • Create a "Sign Up for Newsletter" section
  • Create template index.html
  • Create field for Favourite Items
  • Create field for Newes Items
  • Test functionality as user

Epic :
EPIC 7

USER STORY : Vouchers section

As a Business Owner, I have option to perform full CRUD on "Vouchers" that could be redeemed via checkout.

Acceptance Criteria :

Staff/SuperUser :

When I log in with my credentials then I am able to navigate to admin tools section to create, read, edit and delete "vouchers" redeemable at the end of checkout process.

Users with no staff or Superuser rank :

Not able to access that functinality.

Tasks :

  • Create voucers views
  • Update urls.py in owner app
  • Create forms needded
  • Create templates for reading, creating, editing and deleting vouchers
  • Test functionality as Site Admin

Epic :
EPIC 4

USER STORY : Create database realtionships

As a Developer, I need to define relatinships between models and import the relationships into working apps models.

Acceptance Criteria :

All models are working with the relationships defined, all models that are related to other app models are linked via import statements.

Tasks :

  • Create models for all apps.
  • Set relationships between them via import statements (if applicable).
  • Create databse instance in Neon DB
  • Connect with Neon DB server via URL given by Neon
  • Create S3 bucket with AWS
  • Connect with AWS server via keys given by AWS
  • Run python manage.py makemigrations
  • Run python manage.py migrate

Epic :
EPIC 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.