├── .flake8
├── .github
└── workflows
│ ├── action.yml
│ └── codeql-analysis.yml
├── .gitignore
├── README.md
├── about
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
├── account
├── __init__.py
├── admin.py
├── apps.py
├── forms.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
├── author
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ ├── 0001_initial.py
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
├── blog
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ ├── 0001_initial.py
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
├── cart
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
├── contact
├── __init__.py
├── admin.py
├── apps.py
├── forms.py
├── migrations
│ ├── 0001_initial.py
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
├── django_ecommerce
├── __init__.py
├── settings.py
├── urls.py
├── views.py
└── wsgi.py
├── manage.py
├── requirements.txt
├── shop
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ ├── 0001_initial.py
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
├── static
├── css
│ ├── .DS_Store
│ ├── ajax-loader.gif
│ ├── animate.css
│ ├── aos.css
│ ├── bootstrap-datepicker.css
│ ├── bootstrap.min.css
│ ├── bootstrap
│ │ ├── .DS_Store
│ │ ├── bootstrap-grid.css
│ │ └── bootstrap-reboot.css
│ ├── css
│ │ ├── .DS_Store
│ │ ├── bootstrap-reboot.css
│ │ └── mixins
│ │ │ ├── .DS_Store
│ │ │ └── _text-hide.css
│ ├── flaticon.css
│ ├── icomoon.css
│ ├── ionicons.min.css
│ ├── jquery.timepicker.css
│ ├── magnific-popup.css
│ ├── open-iconic-bootstrap.min.css
│ ├── owl.carousel.min.css
│ ├── owl.theme.default.min.css
│ └── style.css
├── fonts
│ ├── .DS_Store
│ ├── flaticon
│ │ ├── .DS_Store
│ │ ├── backup.txt
│ │ ├── font
│ │ │ ├── .DS_Store
│ │ │ ├── Flaticon.eot
│ │ │ ├── Flaticon.svg
│ │ │ ├── Flaticon.ttf
│ │ │ ├── Flaticon.woff
│ │ │ ├── Flaticon.woff2
│ │ │ ├── _flaticon.scss
│ │ │ ├── flaticon.css
│ │ │ └── flaticon.html
│ │ └── license
│ │ │ └── license.pdf
│ ├── icomoon
│ │ ├── icomoon.eot
│ │ ├── icomoon.svg
│ │ ├── icomoon.ttf
│ │ └── icomoon.woff
│ ├── ionicons
│ │ ├── css
│ │ │ ├── _ionicons.scss
│ │ │ └── ionicons.min.css
│ │ └── fonts
│ │ │ ├── .DS_Store
│ │ │ ├── ionicons.eot
│ │ │ ├── ionicons.svg
│ │ │ ├── ionicons.ttf
│ │ │ ├── ionicons.woff
│ │ │ └── ionicons.woff2
│ └── open-iconic
│ │ ├── open-iconic.eot
│ │ ├── open-iconic.otf
│ │ ├── open-iconic.svg
│ │ ├── open-iconic.ttf
│ │ └── open-iconic.woff
├── images
│ ├── .DS_Store
│ ├── about.jpg
│ ├── bg_1.jpg
│ ├── bg_2.jpg
│ ├── bg_3.jpg
│ ├── category-1.jpg
│ ├── category-2.jpg
│ ├── category-3.jpg
│ ├── category-4.jpg
│ ├── category.jpg
│ ├── image_1.jpg
│ ├── image_2.jpg
│ ├── image_3.jpg
│ ├── image_4.jpg
│ ├── image_5.jpg
│ ├── image_6.jpg
│ ├── partner-1.png
│ ├── partner-2.png
│ ├── partner-3.png
│ ├── partner-4.png
│ ├── partner-5.png
│ ├── person_1.jpg
│ ├── person_2.jpg
│ ├── person_3.jpg
│ ├── person_4.jpg
│ ├── product-1.jpg
│ ├── product-10.jpg
│ ├── product-11.jpg
│ ├── product-12.jpg
│ ├── product-2.jpg
│ ├── product-3.jpg
│ ├── product-4.jpg
│ ├── product-5.jpg
│ ├── product-6.jpg
│ ├── product-7.jpg
│ ├── product-8.jpg
│ └── product-9.jpg
├── js
│ ├── .DS_Store
│ ├── aos.js
│ ├── bootstrap-datepicker.js
│ ├── bootstrap.min.js
│ ├── google-map.js
│ ├── jquery-3.2.1.min.js
│ ├── jquery-migrate-3.0.1.min.js
│ ├── jquery.animateNumber.min.js
│ ├── jquery.easing.1.3.js
│ ├── jquery.magnific-popup.min.js
│ ├── jquery.min.js
│ ├── jquery.stellar.min.js
│ ├── jquery.waypoints.min.js
│ ├── main.js
│ ├── owl.carousel.min.js
│ ├── popper.min.js
│ ├── range.js
│ └── scrollax.min.js
└── scss
│ ├── .DS_Store
│ ├── bootstrap
│ ├── .DS_Store
│ ├── _alert.scss
│ ├── _badge.scss
│ ├── _breadcrumb.scss
│ ├── _button-group.scss
│ ├── _buttons.scss
│ ├── _card.scss
│ ├── _carousel.scss
│ ├── _close.scss
│ ├── _code.scss
│ ├── _custom-forms.scss
│ ├── _dropdown.scss
│ ├── _forms.scss
│ ├── _functions.scss
│ ├── _grid.scss
│ ├── _images.scss
│ ├── _input-group.scss
│ ├── _jumbotron.scss
│ ├── _list-group.scss
│ ├── _media.scss
│ ├── _mixins.scss
│ ├── _modal.scss
│ ├── _nav.scss
│ ├── _navbar.scss
│ ├── _pagination.scss
│ ├── _popover.scss
│ ├── _print.scss
│ ├── _progress.scss
│ ├── _reboot.scss
│ ├── _root.scss
│ ├── _spinners.scss
│ ├── _tables.scss
│ ├── _toasts.scss
│ ├── _tooltip.scss
│ ├── _transitions.scss
│ ├── _type.scss
│ ├── _utilities.scss
│ ├── _variables.scss
│ ├── bootstrap-grid.scss
│ ├── bootstrap-reboot.scss
│ ├── bootstrap.scss
│ ├── mixins
│ │ ├── _alert.scss
│ │ ├── _background-variant.scss
│ │ ├── _badge.scss
│ │ ├── _border-radius.scss
│ │ ├── _box-shadow.scss
│ │ ├── _breakpoints.scss
│ │ ├── _buttons.scss
│ │ ├── _caret.scss
│ │ ├── _clearfix.scss
│ │ ├── _float.scss
│ │ ├── _forms.scss
│ │ ├── _gradients.scss
│ │ ├── _grid-framework.scss
│ │ ├── _grid.scss
│ │ ├── _hover.scss
│ │ ├── _image.scss
│ │ ├── _list-group.scss
│ │ ├── _lists.scss
│ │ ├── _nav-divider.scss
│ │ ├── _pagination.scss
│ │ ├── _reset-text.scss
│ │ ├── _resize.scss
│ │ ├── _screen-reader.scss
│ │ ├── _size.scss
│ │ ├── _table-row.scss
│ │ ├── _text-emphasis.scss
│ │ ├── _text-hide.scss
│ │ ├── _text-truncate.scss
│ │ ├── _transition.scss
│ │ └── _visibility.scss
│ └── utilities
│ │ ├── _align.scss
│ │ ├── _background.scss
│ │ ├── _borders.scss
│ │ ├── _clearfix.scss
│ │ ├── _display.scss
│ │ ├── _embed.scss
│ │ ├── _flex.scss
│ │ ├── _float.scss
│ │ ├── _overflow.scss
│ │ ├── _position.scss
│ │ ├── _screenreaders.scss
│ │ ├── _shadows.scss
│ │ ├── _sizing.scss
│ │ ├── _spacing.scss
│ │ ├── _text.scss
│ │ └── _visibility.scss
│ └── style.scss
└── templates
├── about
└── about.html
├── account
├── signin.html
└── signup.html
├── base
├── base.html
├── footer.html
├── header.html
├── js.html
└── navbar.html
├── blog
├── blog.html
├── post-by-category.html
├── post-details.html
└── sidebar.html
├── cart
├── cart.html
└── checkout.html
├── contact
└── contact.html
├── home.html
└── shop
├── product-details.html
├── shop.html
└── wishlist.html
/.flake8:
--------------------------------------------------------------------------------
1 |
2 | [flake8]
3 | # it's not a bug that we aren't using all of hacking, ignore:
4 | # F812: list comprehension redefines ...
5 | # H101: Use TODO(NAME)
6 | # H202: assertRaises Exception too broad
7 | # H233: Python 3.x incompatible use of print operator
8 | # H301: one import per line
9 | # H306: imports not in alphabetical order (time, os)
10 | # H401: docstring should not start with a space
11 | # H403: multi line docstrings should end on a new line
12 | # H404: multi line docstring should start without a leading new line
13 | # H405: multi line docstring summary not separated with an empty line
14 | # H501: Do not use self.__dict__ for string formatting
15 | ignore = F812,H101,H202,H233,H301,H306,H401,H403,H404,H405,H501
16 | exclude = .git,__pycache__,docs/source/conf.py,old,build,dist,migrations,venv,env
--------------------------------------------------------------------------------
/.github/workflows/action.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow to help you get started with Actions
2 |
3 | name: CI
4 |
5 | # Controls when the action will run.
6 | on:
7 | # Triggers the workflow on push or pull request events but only for the master branch
8 | push:
9 | branches: [ master ]
10 | pull_request:
11 | branches: [ master ]
12 |
13 | # Allows you to run this workflow manually from the Actions tab
14 | workflow_dispatch:
15 |
16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
17 | jobs:
18 | # This workflow contains a single job called "build"
19 | build:
20 | # The type of runner that the job will run on
21 | runs-on: ubuntu-latest
22 |
23 | # Steps represent a sequence of tasks that will be executed as part of the job
24 | steps:
25 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
26 | - uses: actions/checkout@v2
27 |
28 | # Runs a single command using the runners shell
29 | - name: Run a one-line script
30 | run: echo Hello, world!
31 |
32 | # Runs a set of commands using the runners shell
33 | - name: Run a multi-line script
34 | run: |
35 | echo Add other actions to build,
36 | echo test, and deploy your project.
37 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ master ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ master ]
20 | schedule:
21 | - cron: '22 3 * * 0'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: [ 'javascript', 'python' ]
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37 | # Learn more about CodeQL language support at https://git.io/codeql-language-support
38 |
39 | steps:
40 | - name: Checkout repository
41 | uses: actions/checkout@v2
42 |
43 | # Initializes the CodeQL tools for scanning.
44 | - name: Initialize CodeQL
45 | uses: github/codeql-action/init@v1
46 | with:
47 | languages: ${{ matrix.language }}
48 | # If you wish to specify custom queries, you can do so here or in a config file.
49 | # By default, queries listed here will override any specified in a config file.
50 | # Prefix the list here with "+" to use these queries and those in the config file.
51 | # queries: ./path/to/local/query, your-org/your-repo/queries@main
52 |
53 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54 | # If this step fails, then you should remove it and run the build manually (see below)
55 | - name: Autobuild
56 | uses: github/codeql-action/autobuild@v1
57 |
58 | # ℹ️ Command-line programs to run using the OS shell.
59 | # 📚 https://git.io/JvXDl
60 |
61 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
62 | # and modify them (or add more) to build your code if your project
63 | # uses a compiled language
64 |
65 | #- run: |
66 | # make bootstrap
67 | # make release
68 |
69 | - name: Perform CodeQL Analysis
70 | uses: github/codeql-action/analyze@v1
71 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Django E-commerce Website.
2 |
3 | ### Cloning the repository
4 |
5 | --> Clone the repository using the command below :
6 | ```bash
7 | git clone https://github.com/sajib1066/django-ecommerce.git
8 |
9 | ```
10 |
11 | --> Move into the directory where we have the project files :
12 | ```bash
13 | cd django-ecommerce
14 |
15 | ```
16 |
17 | --> Create a virtual environment :
18 | ```bash
19 | # Create our virtual environment
20 | python -m venv venv
21 |
22 | ```
23 |
24 | --> Activate the virtual environment :
25 | windows
26 | ```bash
27 | venv\scripts\activate
28 |
29 | ```
30 | linux
31 | ```bash
32 | source venv/bin/activate
33 |
34 | ```
35 |
36 | --> Install the requirements :
37 | ```bash
38 | pip install -r requirements.txt
39 |
40 | ```
41 |
42 | --> Migrate Database
43 | ```bash
44 | python manage.py migrate
45 |
46 | ```
47 |
48 | --> Create Super User
49 | ```bash
50 | python manage.py createsuperuser
51 |
52 | ```
53 |
54 | #
55 |
56 | ### Running the App
57 |
58 | --> To run the App, we use :
59 | ```bash
60 | python manage.py runserver
61 |
62 | ```
63 |
64 | > ⚠ Then, the development server will be started at http://127.0.0.1:8000/
65 |
66 | #
67 |
68 | ### App Preview :
69 |
70 |
73 |
74 | 75 | 76 | Landing page 77 | 78 | |
80 |
81 | 82 | 83 | More view on landing page 84 | 85 | |
87 |