├── .gitignore ├── Procfile ├── README.md ├── backend ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-39.pyc │ ├── settings.cpython-39.pyc │ ├── urls.cpython-39.pyc │ └── wsgi.cpython-39.pyc ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py ├── base ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-39.pyc │ ├── admin.cpython-39.pyc │ ├── apps.cpython-39.pyc │ ├── models.cpython-39.pyc │ ├── products.cpython-39.pyc │ ├── serializers.cpython-39.pyc │ ├── signals.cpython-39.pyc │ ├── urls.cpython-39.pyc │ └── views.cpython-39.pyc ├── admin.py ├── apps.py ├── migrations │ ├── 0001_initial.py │ ├── 0002_order_orderitem_review_shippingaddress.py │ ├── 0003_product_image.py │ ├── 0004_auto_20210820_1717.py │ ├── 0005_alter_order_createdat.py │ ├── 0006_alter_product_image.py │ ├── 0007_review_createdat.py │ ├── 0008_alter_review_createdat.py │ ├── 0009_alter_product_image.py │ ├── 0010_alter_product_image.py │ ├── __init__.py │ └── __pycache__ │ │ ├── 0001_initial.cpython-39.pyc │ │ ├── 0002_order_orderitem_review_shippingaddress.cpython-39.pyc │ │ ├── 0003_product_image.cpython-39.pyc │ │ ├── 0004_auto_20210820_1717.cpython-39.pyc │ │ ├── 0005_alter_order_createdat.cpython-39.pyc │ │ ├── 0006_alter_product_image.cpython-39.pyc │ │ ├── 0007_review_createdat.cpython-39.pyc │ │ ├── 0008_alter_review_createdat.cpython-39.pyc │ │ ├── 0009_alter_product_image.cpython-39.pyc │ │ ├── 0010_alter_product_image.cpython-39.pyc │ │ └── __init__.cpython-39.pyc ├── models.py ├── products.py ├── serializers.py ├── signals.py ├── tests.py ├── urls │ ├── __pycache__ │ │ ├── order_urls.cpython-39.pyc │ │ ├── product_urls.cpython-39.pyc │ │ └── user_urls.cpython-39.pyc │ ├── order_urls.py │ ├── product_urls.py │ └── user_urls.py └── views │ ├── __pycache__ │ ├── order_views.cpython-39.pyc │ ├── product_views.cpython-39.pyc │ └── user_views.cpython-39.pyc │ ├── order_views.py │ ├── product_views.py │ └── user_views.py ├── db.sqlite3 ├── frontend ├── .gitignore ├── README.md ├── build │ ├── asset-manifest.json │ ├── favicon.ico │ ├── images │ │ ├── airpods.jpg │ │ ├── alexa.jpg │ │ ├── camera.jpg │ │ ├── mouse.jpg │ │ ├── phone.jpg │ │ ├── playstation.jpg │ │ └── sample.jpg │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ ├── robots.txt │ └── static │ │ ├── css │ │ ├── main.9cd215a4.chunk.css │ │ └── main.9cd215a4.chunk.css.map │ │ ├── js │ │ ├── 2.548bc473.chunk.js │ │ ├── 2.548bc473.chunk.js.LICENSE.txt │ │ ├── 2.548bc473.chunk.js.map │ │ ├── 3.3989fcd6.chunk.js │ │ ├── 3.3989fcd6.chunk.js.map │ │ ├── main.bf0f7af9.chunk.js │ │ ├── main.bf0f7af9.chunk.js.map │ │ ├── runtime-main.b3325d9b.js │ │ └── runtime-main.b3325d9b.js.map │ │ └── media │ │ └── logo.462f53c2.png ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── images │ │ ├── airpods.jpg │ │ ├── alexa.jpg │ │ ├── camera.jpg │ │ ├── mouse.jpg │ │ ├── phone.jpg │ │ ├── playstation.jpg │ │ └── sample.jpg │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt └── src │ ├── App.js │ ├── actions │ ├── cartActions.js │ ├── orderActions.js │ ├── productActions.js │ └── userActions.js │ ├── bootstrap.min.css │ ├── components │ ├── CheckoutSteps.js │ ├── Footer.js │ ├── FormContainer.js │ ├── Header.js │ ├── Loader.js │ ├── Message.js │ ├── Paginate.js │ ├── Product.js │ ├── ProductCarousel.js │ ├── Rating.js │ └── SearchBox.js │ ├── constants │ ├── cartConstants.js │ ├── orderConstants.js │ ├── productConstants.js │ └── userConstants.js │ ├── index.css │ ├── index.js │ ├── logo.png │ ├── products.js │ ├── reducers │ ├── cartReducers.js │ ├── orderReducers.js │ ├── productReducers.js │ └── userReducers.js │ ├── reportWebVitals.js │ ├── screens │ ├── CartScreen.js │ ├── HomeScreen.js │ ├── LoginScreen.js │ ├── OrderListScreen.js │ ├── OrderScreen.js │ ├── PaymentScreen.js │ ├── PlaceOrderScreen.js │ ├── ProductEditScreen.js │ ├── ProductListScreen.js │ ├── ProductScreen.js │ ├── ProfileScreen.js │ ├── RegisterScreen.js │ ├── ShippingScreen.js │ ├── UserEditScreen.js │ └── UserListScreen.js │ └── store.js ├── manage.py ├── media └── images │ ├── demon_bluray.jpg │ ├── eren_figure.jpg │ ├── fma.jpg │ ├── goku_veg_figure.jpg │ ├── ichigo_shirt.jpg │ ├── itachi.jpg │ ├── juju.jpg │ ├── levi_figure.jpg │ ├── mat.jpg │ ├── mikasajacket.jpg │ ├── naruto_figure.jpg │ ├── nezu.jpg │ ├── placeholder.png │ ├── puzzle.jpg │ ├── shinobu_figure.jpg │ ├── stone.jpg │ └── vegito.jpg ├── requirements.txt ├── runtime.txt ├── ss ├── ss1.png ├── ss2.png ├── ss3.png ├── ss4.png ├── ss5.png └── ss6.png ├── static └── images │ ├── demon_bluray.jpg │ ├── eren_figure.jpg │ ├── fma.jpg │ ├── goku_veg_figure.jpg │ ├── ichigo_shirt.jpg │ ├── itachi.jpg │ ├── juju.jpg │ ├── levi_figure.jpg │ ├── mat.jpg │ ├── mikasajacket.jpg │ ├── naruto_figure.jpg │ ├── nezu.jpg │ ├── puzzle.jpg │ ├── shinobu_figure.jpg │ ├── stone.jpg │ └── vegito.jpg └── staticfiles ├── admin ├── css │ ├── autocomplete.css │ ├── base.css │ ├── changelists.css │ ├── dashboard.css │ ├── fonts.css │ ├── forms.css │ ├── login.css │ ├── nav_sidebar.css │ ├── responsive.css │ ├── responsive_rtl.css │ ├── rtl.css │ ├── vendor │ │ └── select2 │ │ │ ├── LICENSE-SELECT2.md │ │ │ ├── select2.css │ │ │ └── select2.min.css │ └── widgets.css ├── fonts │ ├── LICENSE.txt │ ├── README.txt │ ├── Roboto-Bold-webfont.woff │ ├── Roboto-Light-webfont.woff │ └── Roboto-Regular-webfont.woff ├── img │ ├── LICENSE │ ├── README.txt │ ├── calendar-icons.svg │ ├── gis │ │ ├── move_vertex_off.svg │ │ └── move_vertex_on.svg │ ├── icon-addlink.svg │ ├── icon-alert.svg │ ├── icon-calendar.svg │ ├── icon-changelink.svg │ ├── icon-clock.svg │ ├── icon-deletelink.svg │ ├── icon-no.svg │ ├── icon-unknown-alt.svg │ ├── icon-unknown.svg │ ├── icon-viewlink.svg │ ├── icon-yes.svg │ ├── inline-delete.svg │ ├── search.svg │ ├── selector-icons.svg │ ├── sorting-icons.svg │ ├── tooltag-add.svg │ └── tooltag-arrowright.svg └── js │ ├── SelectBox.js │ ├── SelectFilter2.js │ ├── actions.js │ ├── admin │ ├── DateTimeShortcuts.js │ └── RelatedObjectLookups.js │ ├── autocomplete.js │ ├── calendar.js │ ├── cancel.js │ ├── change_form.js │ ├── collapse.js │ ├── core.js │ ├── inlines.js │ ├── jquery.init.js │ ├── nav_sidebar.js │ ├── popup_response.js │ ├── prepopulate.js │ ├── prepopulate_init.js │ ├── urlify.js │ └── vendor │ ├── jquery │ ├── LICENSE.txt │ ├── jquery.js │ └── jquery.min.js │ ├── select2 │ ├── LICENSE.md │ ├── i18n │ │ ├── af.js │ │ ├── ar.js │ │ ├── az.js │ │ ├── bg.js │ │ ├── bn.js │ │ ├── bs.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── da.js │ │ ├── de.js │ │ ├── dsb.js │ │ ├── el.js │ │ ├── en.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fr.js │ │ ├── gl.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hsb.js │ │ ├── hu.js │ │ ├── hy.js │ │ ├── id.js │ │ ├── is.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── ka.js │ │ ├── km.js │ │ ├── ko.js │ │ ├── lt.js │ │ ├── lv.js │ │ ├── mk.js │ │ ├── ms.js │ │ ├── nb.js │ │ ├── ne.js │ │ ├── nl.js │ │ ├── pl.js │ │ ├── ps.js │ │ ├── pt-BR.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sq.js │ │ ├── sr-Cyrl.js │ │ ├── sr.js │ │ ├── sv.js │ │ ├── th.js │ │ ├── tk.js │ │ ├── tr.js │ │ ├── uk.js │ │ ├── vi.js │ │ ├── zh-CN.js │ │ └── zh-TW.js │ ├── select2.full.js │ └── select2.full.min.js │ └── xregexp │ ├── LICENSE.txt │ ├── xregexp.js │ └── xregexp.min.js ├── css ├── main.9cd215a4.chunk.css └── main.9cd215a4.chunk.css.map ├── js ├── 2.548bc473.chunk.js ├── 2.548bc473.chunk.js.LICENSE.txt ├── 2.548bc473.chunk.js.map ├── 3.3989fcd6.chunk.js ├── 3.3989fcd6.chunk.js.map ├── main.bf0f7af9.chunk.js ├── main.bf0f7af9.chunk.js.map ├── runtime-main.b3325d9b.js └── runtime-main.b3325d9b.js.map ├── media └── logo.462f53c2.png └── rest_framework ├── css ├── bootstrap-theme.min.css ├── bootstrap-tweaks.css ├── bootstrap.min.css ├── default.css ├── font-awesome-4.0.3.css └── prettify.css ├── docs ├── css │ ├── base.css │ ├── highlight.css │ └── jquery.json-view.min.css ├── img │ ├── favicon.ico │ └── grid.png └── js │ ├── api.js │ ├── highlight.pack.js │ └── jquery.json-view.min.js ├── fonts ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── img ├── glyphicons-halflings-white.png ├── glyphicons-halflings.png └── grid.png └── js ├── ajax-form.js ├── bootstrap.min.js ├── coreapi-0.1.1.js ├── csrf.js ├── default.js ├── jquery-3.5.1.min.js └── prettify-min.js /.gitignore: -------------------------------------------------------------------------------- 1 | /**/env -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn backend.wsgi --log-file - -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

E-Commerce Website with Django + React & Redux

2 |

Otaku House - Anime Merchandise and Cosplay Shop

3 | 4 | ## ✨ [Live Link - Otaku House](https://otakuhouse.herokuapp.com/) 5 | 6 | ### How to Run 🏃‍♀️ 7 | 8 | ```shell 9 | 1 Clone This Repo by `git clone https://github.com/kritebh/ecommerce-django-react.git` 10 | 2 python -m venv env 11 | 3 .\env\Scripts\activate 12 | 4 pip install -r requirements.txt 13 | 5 python manage.py runserver 14 | 15 | ``` 16 | 17 | ### 📷 Project Screenshots 18 | 19 | ![ss](./ss/ss1.png) 20 | ![ss](./ss/ss2.png) 21 | ![ss](./ss/ss3.png) 22 | ![ss](./ss/ss4.png) 23 | ![ss](./ss/ss5.png) 24 | ![ss](./ss/ss6.png) 25 | 26 | ### 🚀 Project Features 27 | 28 | A completely customized eCommerce / shopping cart application using Django, REACT and REDUX with the following functionality: 29 | 30 | - Full featured shopping cart 31 | - Product reviews and Ratings 32 | - Top products carousel 33 | - Product pagination 34 | - Product search feature 35 | - User profile with orders 36 | - Admin product management 37 | - Admin user management 38 | - Admin Order details page 39 | - Mark orders as a delivered option 40 | - Checkout process (shipping, payment method, etc) 41 | - PayPal / credit card integration 42 | -------------------------------------------------------------------------------- /backend/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/backend/__init__.py -------------------------------------------------------------------------------- /backend/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/backend/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /backend/__pycache__/settings.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/backend/__pycache__/settings.cpython-39.pyc -------------------------------------------------------------------------------- /backend/__pycache__/urls.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/backend/__pycache__/urls.cpython-39.pyc -------------------------------------------------------------------------------- /backend/__pycache__/wsgi.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/backend/__pycache__/wsgi.cpython-39.pyc -------------------------------------------------------------------------------- /backend/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for backend project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /backend/urls.py: -------------------------------------------------------------------------------- 1 | """backend URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/3.2/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from os import stat 17 | from django.contrib import admin 18 | from django.urls import path,include 19 | from django.conf import settings 20 | from django.conf.urls.static import static 21 | 22 | from django.views.generic import TemplateView 23 | 24 | urlpatterns = [ 25 | path('admin/', admin.site.urls), 26 | # path('api/',include('base.urls')), 27 | path('',TemplateView.as_view(template_name='index.html')), 28 | path('api/products/',include('base.urls.product_urls')), 29 | path('api/users/',include('base.urls.user_urls')), 30 | path('api/orders/',include('base.urls.order_urls')), 31 | 32 | 33 | ] 34 | 35 | urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) 36 | urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT) 37 | 38 | -------------------------------------------------------------------------------- /backend/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for backend project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__init__.py -------------------------------------------------------------------------------- /base/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/admin.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/admin.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/apps.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/apps.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/models.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/models.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/products.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/products.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/serializers.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/serializers.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/signals.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/signals.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/urls.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/urls.cpython-39.pyc -------------------------------------------------------------------------------- /base/__pycache__/views.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/__pycache__/views.cpython-39.pyc -------------------------------------------------------------------------------- /base/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import * 3 | # Register your models here. 4 | admin.site.register(Product) 5 | admin.site.register(Review) 6 | admin.site.register(OrderItem) 7 | admin.site.register(ShippingAddress) 8 | 9 | @admin.register(Order) 10 | class OrderAdmin(admin.ModelAdmin): 11 | list_display = [ 12 | "user","createdAt","totalPrice" 13 | ] -------------------------------------------------------------------------------- /base/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | class BaseConfig(AppConfig): 4 | default_auto_field = 'django.db.models.BigAutoField' 5 | name = 'base' 6 | 7 | def ready(self): 8 | import base.signals -------------------------------------------------------------------------------- /base/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-08-13 09:43 2 | 3 | from django.conf import settings 4 | from django.db import migrations, models 5 | import django.db.models.deletion 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | initial = True 11 | 12 | dependencies = [ 13 | migrations.swappable_dependency(settings.AUTH_USER_MODEL), 14 | ] 15 | 16 | operations = [ 17 | migrations.CreateModel( 18 | name='Product', 19 | fields=[ 20 | ('name', models.CharField(blank=True, max_length=200, null=True)), 21 | ('brand', models.CharField(blank=True, max_length=200, null=True)), 22 | ('category', models.CharField(blank=True, max_length=200, null=True)), 23 | ('description', models.TextField(blank=True, null=True)), 24 | ('rating', models.DecimalField(blank=True, decimal_places=2, max_digits=7, null=True)), 25 | ('numReviews', models.IntegerField(blank=True, default=0, null=True)), 26 | ('price', models.DecimalField(blank=True, decimal_places=2, max_digits=7, null=True)), 27 | ('countInStock', models.IntegerField(blank=True, default=0, null=True)), 28 | ('createdAt', models.DateTimeField(auto_now_add=True)), 29 | ('_id', models.AutoField(editable=False, primary_key=True, serialize=False)), 30 | ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), 31 | ], 32 | ), 33 | ] 34 | -------------------------------------------------------------------------------- /base/migrations/0003_product_image.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-08-13 10:11 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('base', '0002_order_orderitem_review_shippingaddress'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='product', 15 | name='image', 16 | field=models.ImageField(blank=True, null=True, upload_to=''), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /base/migrations/0004_auto_20210820_1717.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-08-20 11:47 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('base', '0003_product_image'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='order', 15 | name='shippingPrice', 16 | field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True), 17 | ), 18 | migrations.AlterField( 19 | model_name='order', 20 | name='taxPrice', 21 | field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True), 22 | ), 23 | migrations.AlterField( 24 | model_name='order', 25 | name='totalPrice', 26 | field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True), 27 | ), 28 | migrations.AlterField( 29 | model_name='orderitem', 30 | name='price', 31 | field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True), 32 | ), 33 | migrations.AlterField( 34 | model_name='product', 35 | name='price', 36 | field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True), 37 | ), 38 | migrations.AlterField( 39 | model_name='product', 40 | name='rating', 41 | field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True), 42 | ), 43 | migrations.AlterField( 44 | model_name='shippingaddress', 45 | name='shippingPrice', 46 | field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True), 47 | ), 48 | ] 49 | -------------------------------------------------------------------------------- /base/migrations/0005_alter_order_createdat.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-08-28 11:42 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('base', '0004_auto_20210820_1717'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='order', 15 | name='createdAt', 16 | field=models.DateTimeField(auto_now_add=True, null=True), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /base/migrations/0006_alter_product_image.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-09-05 16:26 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('base', '0005_alter_order_createdat'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='product', 15 | name='image', 16 | field=models.ImageField(blank=True, default='/placeholder.png', null=True, upload_to=''), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /base/migrations/0007_review_createdat.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-09-09 08:20 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('base', '0006_alter_product_image'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='review', 15 | name='createdAt', 16 | field=models.DateTimeField(auto_now_add=True, null=True), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /base/migrations/0008_alter_review_createdat.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-09-09 08:21 2 | 3 | from django.db import migrations, models 4 | import django.utils.timezone 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('base', '0007_review_createdat'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='review', 16 | name='createdAt', 17 | field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), 18 | preserve_default=False, 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /base/migrations/0009_alter_product_image.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-09-12 07:10 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('base', '0008_alter_review_createdat'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='product', 15 | name='image', 16 | field=models.ImageField(blank=True, default='/placeholder.png', null=True, upload_to='images/'), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /base/migrations/0010_alter_product_image.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.6 on 2021-09-12 07:33 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('base', '0009_alter_product_image'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='product', 15 | name='image', 16 | field=models.ImageField(blank=True, default='/images/placeholder.png', null=True, upload_to='images/'), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /base/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__init__.py -------------------------------------------------------------------------------- /base/migrations/__pycache__/0001_initial.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0001_initial.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0002_order_orderitem_review_shippingaddress.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0002_order_orderitem_review_shippingaddress.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0003_product_image.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0003_product_image.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0004_auto_20210820_1717.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0004_auto_20210820_1717.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0005_alter_order_createdat.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0005_alter_order_createdat.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0006_alter_product_image.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0006_alter_product_image.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0007_review_createdat.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0007_review_createdat.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0008_alter_review_createdat.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0008_alter_review_createdat.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0009_alter_product_image.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0009_alter_product_image.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/0010_alter_product_image.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/0010_alter_product_image.cpython-39.pyc -------------------------------------------------------------------------------- /base/migrations/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/migrations/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /base/serializers.py: -------------------------------------------------------------------------------- 1 | from django.db.models import fields 2 | from rest_framework import serializers 3 | from rest_framework_simplejwt.tokens import RefreshToken 4 | from django.contrib.auth.models import User 5 | from .models import * 6 | 7 | 8 | class UserSerializer(serializers.ModelSerializer): 9 | name= serializers.SerializerMethodField(read_only=True) 10 | _id = serializers.SerializerMethodField(read_only=True) 11 | isAdmin = serializers.SerializerMethodField(read_only=True) 12 | class Meta: 13 | model = User 14 | fields = ['id','_id','username','email','name','isAdmin'] 15 | 16 | def get__id(self,obj): 17 | return obj.id 18 | 19 | def get_isAdmin(self,obj): 20 | return obj.is_staff 21 | 22 | def get_name(self,obj): 23 | name = obj.first_name 24 | if name=="": 25 | name = obj.email 26 | return name 27 | 28 | 29 | class UserSerializerWithToken(UserSerializer): 30 | token= serializers.SerializerMethodField(read_only=True) 31 | class Meta: 32 | model =User 33 | fields = ['id','_id','username','email','name','isAdmin','token'] 34 | 35 | def get_token(self,obj): 36 | token = RefreshToken.for_user(obj) 37 | return str(token.access_token) 38 | 39 | 40 | class ReviewSerializer(serializers.ModelSerializer): 41 | class Meta: 42 | model = Review 43 | fields = '__all__' 44 | 45 | class ProductSerializer(serializers.ModelSerializer): 46 | reviews = serializers.SerializerMethodField(read_only= True) 47 | class Meta: 48 | model = Product 49 | fields = '__all__' 50 | 51 | def get_reviews(self,obj): 52 | reviews = obj.review_set.all() 53 | serializer = ReviewSerializer(reviews,many=True) 54 | return serializer.data 55 | 56 | class ShippingAddressSerializer(serializers.ModelSerializer): 57 | class Meta: 58 | model = ShippingAddress 59 | fields = '__all__' 60 | 61 | class OrderItemSerializer(serializers.ModelSerializer): 62 | class Meta: 63 | model = OrderItem 64 | fields = '__all__' 65 | 66 | class OrderSerializer(serializers.ModelSerializer): 67 | orderItems = serializers.SerializerMethodField(read_only=True) 68 | shippingAddress = serializers.SerializerMethodField(read_only=True) 69 | User = serializers.SerializerMethodField(read_only=True) 70 | 71 | class Meta: 72 | model = Order 73 | fields = '__all__' 74 | 75 | def get_orderItems(self,obj): 76 | items = obj.orderitem_set.all() 77 | serializer = OrderItemSerializer(items,many=True) 78 | return serializer.data 79 | 80 | def get_shippingAddress(self,obj): 81 | try: 82 | address = ShippingAddressSerializer(obj.shippingaddress,many=False).data 83 | except: 84 | address = False 85 | return address 86 | 87 | def get_User(self,obj): 88 | items = obj.user 89 | serializer = UserSerializer(items,many=False) 90 | return serializer.data 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /base/signals.py: -------------------------------------------------------------------------------- 1 | from django.db.models.signals import pre_save 2 | from django.contrib.auth.models import User 3 | 4 | 5 | def updateUser(sender,instance,**kwargs): 6 | user = instance 7 | if user.email != '': 8 | user.username = user.email 9 | 10 | 11 | pre_save.connect(updateUser,sender = User) 12 | -------------------------------------------------------------------------------- /base/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /base/urls/__pycache__/order_urls.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/urls/__pycache__/order_urls.cpython-39.pyc -------------------------------------------------------------------------------- /base/urls/__pycache__/product_urls.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/urls/__pycache__/product_urls.cpython-39.pyc -------------------------------------------------------------------------------- /base/urls/__pycache__/user_urls.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/urls/__pycache__/user_urls.cpython-39.pyc -------------------------------------------------------------------------------- /base/urls/order_urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from base.views import order_views as views 3 | 4 | 5 | urlpatterns = [ 6 | path('',views.getOrders,name="allorders"), 7 | path('add/',views.addOrderItems,name="orders-add"), 8 | path('myorders/',views.getMyOrders,name="myorders"), 9 | 10 | path('/deliver/',views.updateOrderToDelivered,name="delivered"), 11 | path('/',views.getOrderById,name="user-order"), 12 | path('/pay/',views.updateOrderToPaid,name="pay"), 13 | ] 14 | -------------------------------------------------------------------------------- /base/urls/product_urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from base.views import product_views as views 3 | 4 | 5 | urlpatterns = [ 6 | path('',views.getProducts,name="products"), 7 | 8 | path('create/',views.createProduct,name="create_product"), 9 | path('upload/',views.uploadImage,name="upload_image"), 10 | 11 | path('/reviews/',views.createProductReview,name="create-review"), 12 | path('top/',views.getTopProducts,name="top-products"), 13 | path('/',views.getProduct,name="product"), 14 | 15 | path('update//',views.updateProduct,name="update_product"), 16 | path('delete//',views.deleteProduct,name="delete_product"), 17 | ] 18 | -------------------------------------------------------------------------------- /base/urls/user_urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from base.views import user_views as views 3 | 4 | 5 | urlpatterns = [ 6 | path('register/',views.registerUser,name='register'), 7 | path('',views.getUsers,name="users"), 8 | path('profile/',views.getUserProfile,name="user_profile"), 9 | path('profile/update/',views.updateUserProfile,name="user_profile_update"), 10 | path('login/', views.MyTokenObtainPairView.as_view(), name='token_obtain_pair'), 11 | path('/',views.getUserById,name="get_user"), 12 | path('update//',views.updateUser,name="updateUser"), 13 | path('delete//',views.deleteUser,name="deleteUser"), 14 | ] 15 | -------------------------------------------------------------------------------- /base/views/__pycache__/order_views.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/views/__pycache__/order_views.cpython-39.pyc -------------------------------------------------------------------------------- /base/views/__pycache__/product_views.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/views/__pycache__/product_views.cpython-39.pyc -------------------------------------------------------------------------------- /base/views/__pycache__/user_views.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/base/views/__pycache__/user_views.cpython-39.pyc -------------------------------------------------------------------------------- /db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/db.sqlite3 -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 |

Frontend of E-Commerce Website

2 |

Designed Using React

3 | 4 | ## TOOLS USED: 5 | 6 | - USED `REACT-BOOTSTRAP` & `REACT-ROUTER-BOOTSTRAP` FOR STYLING 7 | - USED BOOTSWATCH THEME - `LUX` 8 | - USED `FONT AWESOME` ICONS 9 | - USED `REACT PAYPAL BUTTON V2` FOR PAYPAL BUTTONS 10 | -------------------------------------------------------------------------------- /frontend/build/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": { 3 | "main.css": "/static/css/main.9cd215a4.chunk.css", 4 | "main.js": "/static/js/main.bf0f7af9.chunk.js", 5 | "main.js.map": "/static/js/main.bf0f7af9.chunk.js.map", 6 | "runtime-main.js": "/static/js/runtime-main.b3325d9b.js", 7 | "runtime-main.js.map": "/static/js/runtime-main.b3325d9b.js.map", 8 | "static/js/2.548bc473.chunk.js": "/static/js/2.548bc473.chunk.js", 9 | "static/js/2.548bc473.chunk.js.map": "/static/js/2.548bc473.chunk.js.map", 10 | "static/js/3.3989fcd6.chunk.js": "/static/js/3.3989fcd6.chunk.js", 11 | "static/js/3.3989fcd6.chunk.js.map": "/static/js/3.3989fcd6.chunk.js.map", 12 | "index.html": "/index.html", 13 | "static/css/main.9cd215a4.chunk.css.map": "/static/css/main.9cd215a4.chunk.css.map", 14 | "static/js/2.548bc473.chunk.js.LICENSE.txt": "/static/js/2.548bc473.chunk.js.LICENSE.txt", 15 | "static/media/logo.462f53c2.png": "/static/media/logo.462f53c2.png" 16 | }, 17 | "entrypoints": [ 18 | "static/js/runtime-main.b3325d9b.js", 19 | "static/js/2.548bc473.chunk.js", 20 | "static/css/main.9cd215a4.chunk.css", 21 | "static/js/main.bf0f7af9.chunk.js" 22 | ] 23 | } -------------------------------------------------------------------------------- /frontend/build/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/favicon.ico -------------------------------------------------------------------------------- /frontend/build/images/airpods.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/images/airpods.jpg -------------------------------------------------------------------------------- /frontend/build/images/alexa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/images/alexa.jpg -------------------------------------------------------------------------------- /frontend/build/images/camera.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/images/camera.jpg -------------------------------------------------------------------------------- /frontend/build/images/mouse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/images/mouse.jpg -------------------------------------------------------------------------------- /frontend/build/images/phone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/images/phone.jpg -------------------------------------------------------------------------------- /frontend/build/images/playstation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/images/playstation.jpg -------------------------------------------------------------------------------- /frontend/build/images/sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/images/sample.jpg -------------------------------------------------------------------------------- /frontend/build/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/logo192.png -------------------------------------------------------------------------------- /frontend/build/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/build/logo512.png -------------------------------------------------------------------------------- /frontend/build/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /frontend/build/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /frontend/build/static/js/2.548bc473.chunk.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /* 2 | object-assign 3 | (c) Sindre Sorhus 4 | @license MIT 5 | */ 6 | 7 | /*! 8 | Copyright (c) 2018 Jed Watson. 9 | Licensed under the MIT License (MIT), see 10 | http://jedwatson.github.io/classnames 11 | */ 12 | 13 | /** @license React v0.20.2 14 | * scheduler.production.min.js 15 | * 16 | * Copyright (c) Facebook, Inc. and its affiliates. 17 | * 18 | * This source code is licensed under the MIT license found in the 19 | * LICENSE file in the root directory of this source tree. 20 | */ 21 | 22 | /** @license React v16.13.1 23 | * react-is.production.min.js 24 | * 25 | * Copyright (c) Facebook, Inc. and its affiliates. 26 | * 27 | * This source code is licensed under the MIT license found in the 28 | * LICENSE file in the root directory of this source tree. 29 | */ 30 | 31 | /** @license React v17.0.2 32 | * react-dom.production.min.js 33 | * 34 | * Copyright (c) Facebook, Inc. and its affiliates. 35 | * 36 | * This source code is licensed under the MIT license found in the 37 | * LICENSE file in the root directory of this source tree. 38 | */ 39 | 40 | /** @license React v17.0.2 41 | * react-jsx-runtime.production.min.js 42 | * 43 | * Copyright (c) Facebook, Inc. and its affiliates. 44 | * 45 | * This source code is licensed under the MIT license found in the 46 | * LICENSE file in the root directory of this source tree. 47 | */ 48 | 49 | /** @license React v17.0.2 50 | * react.production.min.js 51 | * 52 | * Copyright (c) Facebook, Inc. and its affiliates. 53 | * 54 | * This source code is licensed under the MIT license found in the 55 | * LICENSE file in the root directory of this source tree. 56 | */ 57 | -------------------------------------------------------------------------------- /frontend/build/static/js/runtime-main.b3325d9b.js: -------------------------------------------------------------------------------- 1 | !function(e){function r(r){for(var n,i,a=r[0],c=r[1],f=r[2],s=0,p=[];s0.2%", 39 | "not dead", 40 | "not op_mini all" 41 | ], 42 | "development": [ 43 | "last 1 chrome version", 44 | "last 1 firefox version", 45 | "last 1 safari version" 46 | ] 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/favicon.ico -------------------------------------------------------------------------------- /frontend/public/images/airpods.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/images/airpods.jpg -------------------------------------------------------------------------------- /frontend/public/images/alexa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/images/alexa.jpg -------------------------------------------------------------------------------- /frontend/public/images/camera.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/images/camera.jpg -------------------------------------------------------------------------------- /frontend/public/images/mouse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/images/mouse.jpg -------------------------------------------------------------------------------- /frontend/public/images/phone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/images/phone.jpg -------------------------------------------------------------------------------- /frontend/public/images/playstation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/images/playstation.jpg -------------------------------------------------------------------------------- /frontend/public/images/sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/images/sample.jpg -------------------------------------------------------------------------------- /frontend/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 25 | 34 | Otaku House - The #1 Anime Merchandise and Cosplay Shop. 35 | 36 | 37 | 38 |
39 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /frontend/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/logo192.png -------------------------------------------------------------------------------- /frontend/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kritebh/ecommerce-django-react/857c97086e2f599532d9e4b0de30ddada0415673/frontend/public/logo512.png -------------------------------------------------------------------------------- /frontend/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /frontend/src/App.js: -------------------------------------------------------------------------------- 1 | /* REACT BOOTSTRAP */ 2 | import { Container } from "react-bootstrap"; 3 | 4 | /* COMPONENTS */ 5 | import Header from "./components/Header"; 6 | import Footer from "./components/Footer"; 7 | import HomeScreen from "./screens/HomeScreen"; 8 | import ProductScreen from "./screens/ProductScreen"; 9 | import CartScreen from "./screens/CartScreen"; 10 | import LoginScreen from "./screens/LoginScreen"; 11 | import RegisterScreen from "./screens/RegisterScreen"; 12 | import ProfileScreen from "./screens/ProfileScreen"; 13 | import ShippingScreen from "./screens/ShippingScreen"; 14 | import PaymentScreen from "./screens/PaymentScreen"; 15 | import PlaceOrderScreen from "./screens/PlaceOrderScreen"; 16 | import OrderScreen from "./screens/OrderScreen"; 17 | import UserListScreen from "./screens/UserListScreen"; 18 | import UserEditScreen from "./screens/UserEditScreen"; 19 | import ProductListScreen from "./screens/ProductListScreen"; 20 | import ProductEditScreen from "./screens/ProductEditScreen"; 21 | import OrderListScreen from "./screens/OrderListScreen"; 22 | 23 | /* REACT ROUTER */ 24 | import { HashRouter as Router, Route } from "react-router-dom"; 25 | 26 | function App() { 27 | return ( 28 | 29 |
30 | 31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
62 |
63 |