{"id":21499971,"url":"https://github.com/osama-mohamed/e-commerce-2_django","last_synced_at":"2026-04-07T23:31:15.626Z","repository":{"id":194492973,"uuid":"154951820","full_name":"osama-mohamed/e-commerce-2_django","owner":"osama-mohamed","description":"https://www.linkedin.com/in/osama-mohamed-ms/","archived":false,"fork":false,"pushed_at":"2023-10-13T08:05:32.000Z","size":354,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-17T13:13:24.773Z","etag":null,"topics":["api","bootstrap","bootstrap-framework","bootstrap4","css","css3","django","django-admin","django-application","django-framework","django-template","html","html5","mysql","mysql-database","python","python3","rest-api","restful-api"],"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/osama-mohamed.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-10-27T10:28:52.000Z","updated_at":"2023-12-01T09:25:00.000Z","dependencies_parsed_at":"2023-09-13T16:20:49.822Z","dependency_job_id":null,"html_url":"https://github.com/osama-mohamed/e-commerce-2_django","commit_stats":null,"previous_names":["osama-mohamed/e-commerce-2_django"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/osama-mohamed/e-commerce-2_django","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osama-mohamed%2Fe-commerce-2_django","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osama-mohamed%2Fe-commerce-2_django/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osama-mohamed%2Fe-commerce-2_django/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osama-mohamed%2Fe-commerce-2_django/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osama-mohamed","download_url":"https://codeload.github.com/osama-mohamed/e-commerce-2_django/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osama-mohamed%2Fe-commerce-2_django/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31533823,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","bootstrap","bootstrap-framework","bootstrap4","css","css3","django","django-admin","django-application","django-framework","django-template","html","html5","mysql","mysql-database","python","python3","rest-api","restful-api"],"created_at":"2024-11-23T17:19:59.349Z","updated_at":"2026-04-07T23:31:15.608Z","avatar_url":"https://github.com/osama-mohamed.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [E-Commerce 2](https://osama-ecommerce.herokuapp.com) By Django\n\n[\u003cimg src=\"https://www.djangoproject.com/s/img/logos/django-logo-negative.png\" width=\"200\" title=\"E-Commerce 2\" \u003e](https://osama-ecommerce.herokuapp.com)\n[\u003cimg src=\"https://www.mysql.com/common/logos/logo-mysql-170x115.png\" width=\"150\" title=\"E-Commerce 2\" \u003e](https://osama-ecommerce.herokuapp.com)\n\n\n## For live preview :\n\u003e [E-Commerce 2](https://osama-ecommerce.herokuapp.com)\n\n\n## E-commerce 2 website contains:\n### 5 Apps :\n    1. Accounts\n    2. Addresses\n    3. Analytics\n    4. Billing\n    5. Carts\n    6. Contact\n    7. Marketing\n    8. Orders\n    9. Products\n    10. Search\n    11. Tags\n\n\n* Guest register\n* User register \n* User login\n* User logout \n* Account home page\n* product view history\n* Change password\n* Reset password\n* Change name\n* Send activation email when register\n* Resend activation email\n* Add shipping address\n* Add billing address\n* Add nickname to the addresses\n* Edit shipping address\n* Edit billing address\n* View list of your addresses\n* Reuse shipping addresses when order products\n* Reuse billing addresses when ordeer products\n* Show sales analytics if staff or admin only using -chart.js-\n* Get analytics data with Ajax\n* Receive marketing email\n* Change if user will receive marketing email or not by admin\n* Send contact message with Ajax\n* Products list\n* Product detail\n* Download product detail as a PDF file\n* Download digital product files -if the user purchased that digital product only-\n* Orders list\n* List of digital products files\n* Order detail \n* Download order detail as a PDF file\n* Verify order ownership with Ajax -to secure order detail page-\n* Show cart products\n* Add or remove product from cart\n* Checkout page\n* Thanks page when order placed successfully\n* Add or reuse payment method\n* Add or reuse payment method with Ajax\n* Search products by title\n* Search products by description\n* Search products by price\n* Search products by tag title\n* Write tags for products -by admin only-\n* Auto fill contact email, full name if user logged in\n\n\n\n## Usage :\n### Run project by :\n\n``` python\n\n# change database connection information in settings.py DATABASES default values with your info then run \n\n1. python manage.py migrate\n\n2. python manage.py runserver\n\n# if you want to manage to project just create super user account by :\n\n3. python manage.py createsuperuser\n\n```\n\nThat's it.\n\n## Done :\n\nNow the project is running at `http://localhost:8000` and your routes is:\n\n\n| Route                                                      | HTTP Method       | Description                           \t    |\n|:-----------------------------------------------------------|:------------------|:---------------------------------------------|\n| {host}       \t                                             | GET       \t     | Home page                                    |\n| {host}/admin/  \t                                         | GET      \t     | Admin control panel                      \t|\n| {host}/about/  \t                                         | GET      \t     | About page                                   |\n| {host}/account/register/                                   | POST      \t     | User register             \t                |\n| {host}/account/register/guest/                             | POST      \t     | Guest register           \t                |\n| {host}/account/login/                                      | POST      \t     | User login                \t                |\n| {host}/account/logout/                                     | POST      \t     | User logout              \t                |\n| {host}/account/email/confirm/{key}/                        | GET      \t     | Activate user account after register         |\n| {host}/account/email/resend-activation/                    | POST      \t     | Resend activation email   \t                |\n| {host}/account/                                            | GET      \t     | User account home page    \t                |\n| {host}/account/details/                                    | PUT      \t     | Change account details   \t                |\n| {host}/account/history/products/                           | GET      \t     | Product view history \t                    |\n| {host}/accounts/password/change/                           | POST      \t     | Change account password                      |\n| {host}/accounts/password/change/done/                      | GET      \t     | Change account password done                 |\n| {host}/accounts/password/reset/                            | POST      \t     | Reset password                               |\n| {host}/accounts/password/reset/done/                       | POST      \t     | Send reset password email                    |\n| {host}/accounts/password/reset/{uidb64}/{token}/           | POST      \t     | Enter new password                           |\n| {host}/accounts/password/reset/complete/                   | GET      \t     | Finish reset password                        |\n| {host}/addresses/                                          | GET      \t     | All addresses list       \t                |\n| {host}/addresses/create/                                   | POST      \t     | Add Address              \t                |\n| {host}/addresses/update/{id}/                              | POST      \t     | Edit Address              \t                |\n| {host}/addresses/checkout/address/create/                  | POST      \t     | Add Address when checkout \t                |\n| {host}/addresses/checkout/address/reuse/                   | POST      \t     | Reuse Address already exists when checkout   |\n| {host}/analytics/sales/                                    | GET      \t     | Show sales analytics if staff or admin only  |\n| {host}/analytics/sales/data/                               | GET      \t     | Get analytics data with Ajax                 |\n| {host}/marketing/email/                                    | PUT      \t     | Receive marketing email option               |\n| {host}/marketing/webhooks/mailchimp/                       | POST      \t     | Change if user will receive marketing email  |\n| {host}/contact/                                            | POST      \t     | Send contact message with Ajax               |\n| {host}/products/                                           | GET      \t     | Products list                                |\n| {host}/products/{slug}/                                    | GET      \t     | Product detail                               |\n| {host}/products/{slug}/download/                           | GET      \t     | Download product detail as a PDF file        |\n| {host}/products/{slug}/{pk}/                               | GET      \t     | Download digital product files               |\n| {host}/orders/                                             | GET      \t     | Orders list                                  |\n| {host}/orders/library/                                     | GET      \t     | List of digital products files               |\n| {host}/orders/{order_id}/                                  | GET      \t     | Order detail                                 |\n| {host}/orders/{order_id}/download/                         | GET      \t     | Download order detail as a PDF file          |\n| {host}/orders/endpoint/verify/ownership/                   | GET      \t     | Verify order ownership with Ajax             |\n| {host}/cart/                                               | GET      \t     | Show cart products                           |\n| {host}/cart/update/                                        | POST      \t     | Add or remove product from cart              |\n| {host}/cart/checkout/                                      | POST      \t     | Checkout Page                                |\n| {host}/cart/checkout/success/                              | GET      \t     | Thanks page when order placed successfully   |\n| {host}/billing/payment-method/                             | POST      \t     | Add or reuse payment method                  |\n| {host}/billing/payment-method/create/                      | POST      \t     | Add or reuse payment method with Ajax        |\n| {host}/search/                                             | GET      \t     | Search products                              |\n\n\n| API Route                                                  | HTTP Method \t   | Description                           \t      |\n|:-----------------------------------------------------------|:----------------|:---------------------------------------------|\n| {host}/cart-api/                                           | GET        \t   | Cart products                             \t  |\n\n\n\nFor detailed explanation on how project work, read the [Django Docs](https://docs.djangoproject.com/en/1.11/) and [MySQLDB Docs](https://dev.mysql.com/doc/)\n\n## Developer\nThis project made by [Osama Mohamed](https://www.linkedin.com/in/osama-mohamed-ms/)\n\n## License\nThis project is licensed under the [MIT License](https://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosama-mohamed%2Fe-commerce-2_django","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosama-mohamed%2Fe-commerce-2_django","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosama-mohamed%2Fe-commerce-2_django/lists"}