{"id":23043453,"url":"https://github.com/sherrywahla/e_commerce","last_synced_at":"2026-04-11T14:35:56.905Z","repository":{"id":264883694,"uuid":"894573713","full_name":"Sherrywahla/e_commerce","owner":"Sherrywahla","description":"This project demonstrates the development of a Django-based e-commerce platform using DevOps principles to address the challenges of monolithic architectures.","archived":false,"fork":false,"pushed_at":"2024-11-30T11:55:13.000Z","size":2149,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-08T15:46:26.963Z","etag":null,"topics":["cd","ci","devops","django","github-actions","javascript","monolith-architecture","python3","render","scalability","tailwind"],"latest_commit_sha":null,"homepage":"https://e-commerce-czmg.onrender.com/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sherrywahla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2024-11-26T15:40:23.000Z","updated_at":"2024-11-30T11:55:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"34753fb9-3fa7-44e5-8ae7-bbb219b34bbd","html_url":"https://github.com/Sherrywahla/e_commerce","commit_stats":null,"previous_names":["sherrywahla/e_commerce"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sherrywahla%2Fe_commerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sherrywahla%2Fe_commerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sherrywahla%2Fe_commerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sherrywahla%2Fe_commerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sherrywahla","download_url":"https://codeload.github.com/Sherrywahla/e_commerce/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246920310,"owners_count":20855133,"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":["cd","ci","devops","django","github-actions","javascript","monolith-architecture","python3","render","scalability","tailwind"],"created_at":"2024-12-15T20:47:33.609Z","updated_at":"2025-12-30T23:10:28.616Z","avatar_url":"https://github.com/Sherrywahla.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# E-Commerce Project with DevOps Implementation\n\n## Table of Contents\n1. [Overview](#overview)  \n2. [Project Structure](#project-structure)  \n3. [Technologies Used](#technologies-used)  \n4. [Features](#features)  \n5. [DevOps Workflow](#devops-workflow)  \n   - [Pipeline Stages](#pipeline-stages)  \n6. [Installation \u0026 Usage](#installation--usage)  \n   - [Setting Up a Virtual Environment](#setting-up-a-virtual-environment)  \n   - [Local Installation](#local-installation)  \n   - [Docker Installation](#docker-installation)  \n7. [Dockerfile Example](#dockerfile-example)  \n8. [GitHub Actions Workflow Example](#github-actions-workflow-example)  \n9. [Future Works](#future-works)  \n10. [Reflections](#reflections)  \n11. [References](#references)\n\n## Overview\nThis project demonstrates the development of a Django-based e-commerce platform using DevOps principles to address the challenges of monolithic architectures. The project integrates modern development practices such as modular architecture, automation, CI/CD pipelines, and advanced deployment workflows.\n\n\n\n## Project Structure\n- `.dockerignore`: Specifies files and directories to ignore during Docker builds.\n- `.github/`: Contains workflows for CI/CD pipelines using GitHub Actions.\n- `Dockerfile`: Configuration file for containerizing the application.\n- `e_commerce/`: Core application module implementing the Model-View-Template (MVT) architecture.\n- `manage.py`: Entry point for managing the Django application (e.g., migrations, development server).\n- `requirements.txt`: Lists dependencies for the project.\n- `stores/`: Manages store and product functionalities.\n- `theme/`: Frontend themes, designed with Tailwind CSS for a clean and responsive user interface.\n\n\n\n## Technologies Used\n- **Frontend**: Tailwind CSS for styling.\n- **Backend**: Django framework with Model-View-Template (MVT) architecture.\n- **Database**: SQLite for lightweight and easy database management.\n- **DevOps**: Docker for containerization, GitHub Actions for CI/CD.\n- **Deployment**: Render for hosting production-ready applications.\n- **Monitoring**: Render's built-in monitoring tools for application performance and uptime tracking.\n- **Version Control**: Git for source code management.\n\n\n\n## Features\n1. **Authentication**:\n   - User Login and Registration.\n2. **Product Management**:\n   - Add, Remove, and View Products.\n3. **Checkout**:\n   - Streamlined checkout process for seamless user experience.\n4. **Order History**:\n   - View past purchases and order details.\n5. **Profile Management**:\n   - Update and manage user profile settings.\n\n\n\n## DevOps Workflow\n### Pipeline Stages\n1. **Plan**:\n   - Frontend mockups and backend architecture diagrams.\n   - Tools: Lucidchart was used for visual design.\n\n2. **Develop**:\n   - Modular codebase with Django.\n   - Styled with Tailwind CSS.\n   - Code hosted on GitHub with branching strategies.\n\n3. **Build \u0026 Test**:\n   - Automated builds and tests triggered on every push.\n   - Tools: GitHub Actions for CI, Docker for environment consistency.\n\n4. **Deploy**:\n   - Deployment using Dockerized containers.\n   - Hosting on Render for production environments.\n\n5. **Monitor \u0026 Feedback**:\n   -     Application monitoring using Render's built-in tools for logs, metrics, and alerts.\n\n\n\n## Installation \u0026 Usage\n### Prerequisites\n- Python 3.x\n- Docker\n- Django Framework\n\n### Setting Up a Virtual Environment\n1. Install `venv` if not already installed:\n   ```bash\n   python3 -m pip install --user virtualenv\n   ```\n\n2. Create a virtual environment:\n   ```bash\n   python3 -m virtualenv venv\n   ```\n\n3. Activate the virtual environment:\n   - **Linux/Mac**:\n     ```bash\n     source venv/bin/activate\n     ```\n   - **Windows**:\n     ```bash\n     .\\venv\\Scripts\\activate\n     ```\n\n4. Deactivate the environment (optional):\n   ```bash\n   deactivate\n   ```\n\n### Local Installation\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/Sherrywahla/e_commerce.git\n   cd e_commerce-master\n   ```\n\n2. Install dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. Apply database migrations:\n   ```bash\n   python manage.py migrate\n   ```\n\n4. Run the development server:\n   ```bash\n   python manage.py runserver\n   ```\n\n5. Access the application at `http://127.0.0.1:8000/`.\n\n### Docker Installation\n1. Build the Docker image:\n   ```bash\n   docker build -t e_commerce .\n   ```\n\n2. Run the Docker container:\n   ```bash\n   docker run -p 8000:8000 e_commerce\n   ```\n\n\n\n## Dockerfile Example\n```dockerfile\nFROM python:3.9-slim\n\nWORKDIR /app\n\nRUN apt-get update \u0026\u0026 apt-get install -y \\\n    build-essential \\\n    libsqlite3-dev \\\n    curl \\\n    ca-certificates \\\n    gnupg \\\n    lsb-release \\\n    \u0026\u0026 rm -rf /var/lib/apt/lists/*\n\nRUN curl -sL https://deb.nodesource.com/setup_18.x | bash - \u0026\u0026 \\\n    apt-get install -y nodejs\n\nRUN node -v \u0026\u0026 npm -v\n\nCOPY requirements.txt .\n\nRUN pip install --no-cache-dir -r requirements.txt\n\nCOPY theme/static_src/package.json ./theme/static_src/\n\nWORKDIR /app/theme/static_src\nRUN npm install -g yarn \u0026\u0026 yarn install\n\n\nWORKDIR /app\nCOPY . .\n\nRUN python manage.py makemigrations\nRUN python manage.py makemigrations stores\nRUN python manage.py migrate\n\nRUN python manage.py seed_db_api\n\n\nRUN python manage.py tailwind build\n\nRUN python manage.py collectstatic\n\nEXPOSE 8000\n\nENV DJANGO_SETTINGS_MODULE=e_commerce.settings\nENV PYTHONUNBUFFERED=1\n\nCMD [\"gunicorn\", \"--bind\", \"0.0.0.0:8000\", \"e_commerce.wsgi:application\"]\n```\n\n\n\n## GitHub Actions Workflow Example\n**`.github/workflows/ci-cd.yml`**\n```yaml\nname: Django CI\n\non:\n  push:\n    branches: [ \"dev\" ]\n  pull_request:\n    branches: [ \"dev\" ]\n\njobs:\n  build:\n\n    runs-on: ubuntu-latest\n    strategy:\n      max-parallel: 4\n      matrix:\n        python-version: [3.8]\n\n    steps:\n    - uses: actions/checkout@v4\n    - name: Set up Python ${{ matrix.python-version }}\n      uses: actions/setup-python@v3\n      with:\n        python-version: ${{ matrix.python-version }}\n    - name: Install Dependencies\n      run: |\n        python -m pip install --upgrade pip\n        pip install -r requirements.txt\n    - name: Run Tests\n      run: |\n        python manage.py test\n```\n\n\n\n## Future Works\n1. **Payment Integration**:\n   - Add multiple payment gateways for a seamless checkout experience.\n2. **Admin Dashboard**:\n   - Include analytics and order management tools.\n3. **Two-Factor Authentication (2FA)**:\n   - Enhance security with additional authentication layers.\n4. **FAQs and Support**:\n   - Create a user-friendly FAQ section and integrate support options.\n5. **Enhanced Monitoring**:\n   - Incorporate AI-driven insights for proactive performance monitoring.\n\n\n\n## Reflections\n### Benefits\n- Modular architecture and automated pipelines enable efficient development and deployment.\n- Tailwind CSS ensured a responsive and modern UI.\n- Dockerized environments provided consistency across development and production.\n\n### Challenges\n- Managing the CI/CD pipeline required understanding new tools.\n- SQLite is not ideal for large-scale production but sufficed for this phase.\n\n### Lessons Learned\n- DevOps practices reduced manual effort and downtime.\n- Combining open-source tools requires thoughtful selection for compatibility and scalability.\n\n\n\n## References\nAll references follow the [University of Suffolk Harvard Style](https://libguides.uos.ac.uk/academic/referencing/Harvard).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsherrywahla%2Fe_commerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsherrywahla%2Fe_commerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsherrywahla%2Fe_commerce/lists"}