{"id":24026869,"url":"https://github.com/shan18/kart","last_synced_at":"2025-04-18T03:17:51.921Z","repository":{"id":140051683,"uuid":"118975709","full_name":"shan18/Kart","owner":"shan18","description":"An E-commerce website built using Django.","archived":false,"fork":false,"pushed_at":"2022-11-29T07:16:32.000Z","size":5780,"stargazers_count":24,"open_issues_count":1,"forks_count":18,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-29T06:21:42.436Z","etag":null,"topics":["aws-s3","bootstrap","django","ecommerce-website","heroku","jquery","mailchimp","payment","python","sendgrid","stripe"],"latest_commit_sha":null,"homepage":"","language":"Python","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/shan18.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2018-01-25T22:34:36.000Z","updated_at":"2024-06-09T16:39:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"ebe99f20-2cf0-4cc8-8e12-2ca86e12400c","html_url":"https://github.com/shan18/Kart","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shan18%2FKart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shan18%2FKart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shan18%2FKart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shan18%2FKart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shan18","download_url":"https://codeload.github.com/shan18/Kart/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249419472,"owners_count":21268641,"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":["aws-s3","bootstrap","django","ecommerce-website","heroku","jquery","mailchimp","payment","python","sendgrid","stripe"],"created_at":"2025-01-08T16:50:57.385Z","updated_at":"2025-04-18T03:17:51.890Z","avatar_url":"https://github.com/shan18.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kart\n\n### Disclaimer: A Demo of this project was hosted on the free dynos on Heroku but now since Herko have stopped the support for free dynos, a demo of the project is no longer available.\n\nAn E-commerce website built using Django.  \nURL: [https://shan-kart.herokuapp.com/](https://shan-kart.herokuapp.com/)\n\n### Features\n\n- Send email verification link to users when they sign up.\n- Render order summary as invoice pdf and send them to users after the transaction has been completed.\n- If there is a server error (code = 500), then an email is sent to the administrator notifying him of the error and the cause of the error.\n- A Library view which contains a list of and gives the ability to download all the digital items that the customer has bought.\n- Display product history in account settings which shows the products that the user has recently viewed.\n- A separate analytics view for admin/staff members which shows a graph of all the product sales over the past days/weeks/months.\n\n**Note**:  \nTo use the payment api of the website, use the following dummy cards:  \n4242 4242 4242 4242\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Visa  \n5555 5555 5555 4444\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Mastercard  \nEnter any 5-digit number for CVC and any future date for expiry.\n\n### Tools Used\n\n- **Python** - Django\n- **Javascript** - jQuery, Ajax, jsrender, Chart.js\n- **Bootstrap**\n\n### Third Party Services Used\n\n- **Amazon Web Services (AWS)**: Stores all static and media files.\n- **Heroku**: Used to deploy the project in production environment.\n- **stripe**: Deals with payment related stuff.\n- **sendgrid**: Used to send transactional emails like email-id verification, order completion etc.\n- **mailchimp**: Used to send marketing emails to customers.\n\n## Instructions for setting up the project\n\n1. Clone the repository  \n   `git clone https://github.com/shan18/Kart.git`\n\n2. Create a virtual environment and install the requirements  \n   `pip install -r requirements.txt`  \n   After installing the requirements, install this package separately  \n   `pip install --pre xhtml2pdf`\n\n3. Rename the file **credentials-sample.py** in _src/kart/_ to **credentials.py** and replace the value of `SECRET_KEY` with the secret key of your own project. To generate a new secret key\n\n   - Go to terminal and create a new django project `django-admin startproject \u003cproj-name\u003e`.\n   - Now get the value of `SECRET_KEY` in _settings.py_ and use that as the secret key for the **kart project**.\n   - Now delete that new django project.\n\n4. **Stripe setup**:\n\n   - Create an account on [stripe](https://stripe.com/).\n   - Go to the **API** section on the left.\n   - Fetch the values of tokens **Publishable key** and **Secret key** and add them to `STRIPE_PUBLISH_KEY` and `STRIPE_SECRET_KEY` in **credentials.py** respectively.\n\n5. **Mailchimp setup**:\n\n   - Create an account on [mailchimp](https://mailchimp.com/). While signing up set the company name to the name of the project.\n   - Go to the tab **Lists** and click on a list. Navigate to the **Settings** tab and click on **List name and campaign defaults**. Get the **List ID** on the right and add it to `MAILCHIMP_EMAIL_LIST_ID` in **credentials.py**\n   - Get the mailchimp data center. For example: `us17` (It will we visible in the url). Add it to `MAILCHIMP_DATA_CENTER` in **credentials.py**\n   - Go to account settings, get the **API Key** and add it to `MAILCHIMP_API_KEY` in **credentials.py**\n\n6. **Sendgrid setup**:\n\n   - Create an account on [sendgrid](https://sendgrid.com/) and create an API key.\n   - Add your sendgrid API key to `EMAIL_HOST_PASSWORD` in **credentials.py** respectively.\n   - Change the email and name in `DEFAULT_FROM_EMAIL` and `MANAGERS` in all _settings files_ with your name and email.\n\n7. **Amazon Web Services (AWS) setup**:  \n   Follow this guide to setup AWS in the project: [AWS Setup](notes/aws_setup.md). After settings up AWS, add all the required values to **credentials.py** (mentioned under the comment _aws keys_).\n\n8. **Heroku setup**:  \n   Follow this guide to setup Heroku in the project: [Heroku Setup](notes/heroku_setup.md).\n\n9. Run the following commands  \n   `python manage.py makemigrations`  \n   `python manage.py migrate`  \n   `python manage.py collectstatic`\n\n10. Now load the **products** and the **tags** into the database  \n    `python manage.py loaddata products/fixtures/products.json`\n    `python manage.py loaddata tags/fixtures/tags.json`\n\n#### Note:\n\n- The **Contact** page in the repository has been currently disabled, to enable it uncomment `line 17 in src/kart/urls.py` and `line 30-32 in src/templates/base/navbar.html`.\n- The project contains _two level git architecture_, inner for heroku and outer for GitHub. Thus, the reason for _two .gitignore and requirements.txt files_.\n- Due to size issues, only one protected media file has been uploaded in GitHub. Add the others by uploading them in the **Django Admin**, inside the **Products** section.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshan18%2Fkart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshan18%2Fkart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshan18%2Fkart/lists"}