{"id":20162079,"url":"https://github.com/megadev007/ecommerce_marketplace_template","last_synced_at":"2025-03-03T02:44:24.886Z","repository":{"id":228956441,"uuid":"775371788","full_name":"MegaDev007/ecommerce_marketplace_template","owner":"MegaDev007","description":"A Django,React based ecommerce marketplace template","archived":false,"fork":false,"pushed_at":"2024-03-21T09:14:31.000Z","size":2308,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T14:18:27.607Z","etag":null,"topics":["django","ecommerce","ecommerce-website","javascript","node","python","react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MegaDev007.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-21T09:12:07.000Z","updated_at":"2024-03-27T02:40:03.000Z","dependencies_parsed_at":"2024-03-21T10:52:46.235Z","dependency_job_id":null,"html_url":"https://github.com/MegaDev007/ecommerce_marketplace_template","commit_stats":null,"previous_names":["devcrazer/ecommerce_marketplace_template","kristoffalaric/ecommerce_marketplace_template","megadev007/ecommerce_marketplace_template"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegaDev007%2Fecommerce_marketplace_template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegaDev007%2Fecommerce_marketplace_template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegaDev007%2Fecommerce_marketplace_template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegaDev007%2Fecommerce_marketplace_template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MegaDev007","download_url":"https://codeload.github.com/MegaDev007/ecommerce_marketplace_template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241600484,"owners_count":19988713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","ecommerce","ecommerce-website","javascript","node","python","react"],"created_at":"2024-11-14T00:23:13.366Z","updated_at":"2025-03-03T02:44:24.864Z","avatar_url":"https://github.com/MegaDev007.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django Ecommerce Website\n\nThis template is an __ecommerce website intended for a multiple users to login, create a store and start selling products online in a similar way you would do with Shopify.__\n\nIf you are interested in single store __where you want to sell your own products online__ checkout [this template instead](https://github.com/Zadigo/ecommerce_template).\n\n# About\n\nThis project came to mind as ecommerce is extremely popular nowadays becomes of various unfortunate circumstances.\n\nWhile there are many many web applications out there to build an ecommerce plateform, it can come at a certain financial cost.\n\nAdditionally, you do not have complete control over your SEO or tools you wish to implement because of how much they would cost especially for startup projects.\n\nCreating an ecommerce website from scratch can be a complete hassle. This is where it came about creating these free templates using various free open-source tools around the internet.\n\nWhile Django is the best web framework ever and Python the greatest language to ever exist, it does not come with things typical for ecommerce websites.\n\nSo by creating these free to use templates, you can have your ecommerce plateform without the hassle of coding the majority of the thing and you will be ready to go very fast.\n\n[![Alt text](https://via.placeholder.com/1000)](https://www.youtube.com/watch?v=SpeDK1TPbew)\n\n# Dependencies\n\nThe template depends on the following librairies:\n\n    - Celery\n    - Celery Beat\n    - Social Django\n    - Psycopg2\n    - Stripe\n    - Django Extensions\n    - Django Rest Framework\n    - Boto 3\n    - Pandas + Numpy\n    - Flower\n    - Django Storages\n    - Python Memcache\n\nAnd for production:\n\n    - Gunicorn\n    - Redis\n\nAdditional librairies include:\n\n    - Zappa\n\nThis template uses MD Bootrap's [Ecommerce template](https://mdbootstrap.com/freebies/jquery/e-commerce/) and [Dashboard](https://mdbootstrap.com/freebies/jquery/admin-dashboard/) it's main design interface. If you want to implement new items from these original templates, feel free to visit the former links.\n\nBy extension, the design CSS framework used for this website is [Bootstrap](https://getbootstrap.com/).\n\nFinally, this was created with the lastest version of Django (3.0.x) and Python (3.8.x) and has never been tested with previous versions. There is therefore no guaranty that you application will work as intended if you decide to use versions prior to these ones.\n\n## Front end\n\nThe whole website's frontend is based around using [Vue JS](https://vuejs.org/). Vue is by the definition the best thing to have ever happened to frontend web development because it simplifies to no extent the implementation of reactivity on you modern web pages.\n\nVue JS works very very well with Django's templates in the sense that they [the Django template syntax and Vue Js' template syntax] can be binded with one another without any problem.\n\nVue JS is very easy to pick up and if you wish improve the scripts on the various pages, have no experience with Vue, please visit the link above.\n\n# Organization\n\nThe template uses three main applications: `shop`, `accounts` and `dashboard`.\n\n## Templates folder\n\nEach template folder is organized in this specific manner:\n\n* Pages - They represent the main HTML page for the customer\n* Components - Represent sub-elements from the main page for reusability (e.g. header, tables...)\n* Vue - These are specific Vue JS scripts/components for reactivity\n* Scripts - Very specific scripts binded with the Django template (e.g. Stripe payment, Quill...)\n\n__NOTE:__ Under components there are folders named after the page to which they apply. Global components are stored under some sort of global folder.\n    \n## Urls\n\n## Views\n\n## Models\n\n\n### Shop\n\nThere are 11 models in the main Shop application as described below.\n\n![Models](./assets/models.png)\n\n\n# Getting started\n\n## Setting up the code\n\nBefore lauching your template live or locally, you might want to find all `mywebsite` or `contact.mywebsite@gmail.com` instances and change them to the name of your brand.\n\nYou can actually keep the name of the project as `mywebsite` since it does not have any effects for the customer or overall coding experience.\n\nYou will have to take some extra care for files present in SEO folders since they also have `mywebsite` instances in them that you will not want to put in production.\n\nFinally, the `settings.py` file will require that you have certain specific pieces of information such as AWS or Stripe API Keys. If you do not have does for now, set `STRIPE_ENABLED` to false which will disable the script in the template and automatically put the payment system in debug mode.\n\nThe template uses static files locally by enabling AWS S3 static location only in production (i.e. when DEBUG is set to false).\n\n## Locally\n\nBefore running this application with Django, you might need to install one or many of these librairies and/or make sure that you have these setup correctly.\n\nIf you do not have PostGres, download at [PostGreSQL](https://www.postgresql.org/) then create a database called `template_ecommerce` with a user and password of `princess_ecommerce`.\n\nFork the project and run `pipenv install`. Activate the virtual environment with `pipenv shell`, run `python manage.py makemigrations` [make sure the database exits if you are using PostGres] and then `python manage.py migrate`.\n\nVoilà! You are ready to go :top:\n\n## In Production\n\nThis was built primarily for using Docker in a production environment. However, in case you would want to go serverless, Zappa is included for that purpose. [Read more here](https://github.com/Miserlou/Zappa) if you are interested by that setup.\n\nYou can setup your server to use docker quickly by using the [custom script](./docker/management.sh). Once that's done run `docker-compose build` or `docker-compose build \u003cservice name\u003e` if you want to start each service individually.\n\n### HTTPS\n\nIf you want to run this website under HTTPS for free, the docker-compose file comes with a Certbot container.\n\n[Certbot](https://certbot.eff.org/) automatically enable HTTPS on your website.\n\nThe container is a standalone one which only purpose is to generate or renew Let's Encrypt certificates necessary for HTTPS secure connections.\n\nTo generate certificates, do `docker-compose run certbot` and follow the steps.\n\nIt uses DNS-01 challenge. In other words, you will need to copy the generated  keys (typically .acme-challenge), __login to your preferred provider__ and paste these keys as TXT in the DNS settings of your domain name.\n\nOnce you've generated the certificates, they will automatically be picked up by NGINX with the help of volumes.\n\n__NOTE:__ To be able to use Stripe in production, you'll need these certificates or you will not be able to ask for payments online.\n\nIf you wish to read more on this go to [DNS-01 challenge](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) on [Let's encrypt website](https://letsencrypt.org/).\n\n### CI/CD\n\nThere are many great applications out there for doing this, however, I integrated a very basic Yaml settings file for [Circle CI](https://circleci.com/) if you wish to implement that in your work flow.\n\n### Caching\n\nCaching is done with Python Memcached. You can decide to use another caching system if you want to by visiting this page: [Django cache framework](https://docs.djangoproject.com/en/3.0/topics/cache/).\n\nBy default, mostly items on the collection's pages are cached for optimization and so as data in the dashboard.\n\n# Support / Development\n\nI will be updating and pushing new features on the different templates on a regular basis. Do not hesitate to watch and star :heart:\n\nIf you are interested in me participating in some other projects for you relate to the current work that I have done I am currently available for remote and on-site consulting for small, large and enterprise teams. Please contact me at pendenquejohn@gmail.com with your needs and let's work together!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegadev007%2Fecommerce_marketplace_template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmegadev007%2Fecommerce_marketplace_template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegadev007%2Fecommerce_marketplace_template/lists"}