4darsh-Dev / CogniGaurd

A web extension for identifying dark pattern on websites powered by Fine Tuned BERT Model for classificaiton on dark pattern custom dataset,
https://cogniguard.onionreads.com/
MIT License
17 stars 38 forks source link
bert-fine-tuning dark-pattern-blocker deep-learning django gssoc24 html-css-javascript natural-language-processing postgresql python pytorch

CogniGuard πŸ•΅οΈβ€β™‚οΈβœ¨

Overview

CogniGuard is a powerful web extension designed to empower users by identifying and combatting dark patterns on various websites, particularly focusing on E-commerce platforms. Ensuring users a transparent and ethical online experience.

About Dark Patterns => https://www.deceptive.design/

CogniGuard

GitHub code size GitHub contributors GitHub commit activity GitHub issues GitHub License Python Django JavaScript HTML CSS Markdown

GitHub forks GitHub Repo stars

Open Source Programs

GSSoC '24 Image **GSSoC'24** GirlScript Summer Of Code is a three-month-long Open-Source Program conducted every summer by the Girlscript Foundation. Timeline : 10th May - 10th August 2024
VSoC '24 Image **VSoC'24** Vinyasa Summer of Code is an immersive program designed to elevate your coding skills and provide hands-on experience with real-world open-source projects. Collaborate with experienced mentors, build an impressive portfolio, and become a vital part of a vibrant coding community.

Cogni-BERT Model Scores

Sweeps Training Hyperparametrs

BERT Fine-Tuned Sweep training

Project Setup Locally πŸš€

Link of Cogni-BERT Trained Model

  1. Huggingface spaces link --> https://huggingface.co/spaces/4darsh-Dev/dark_pattern_detector_app/tree/main/models

Setting up project locally

  1. clone the git repository locally.
    git clone https://github.com/4darsh-Dev/CogniGaurd.git
  2. Install python and setup virtual envionment.

    1. Open terminal

    pip install virtualenv 
    cd CogniGaurd
    1. For setting django-web-app
    cd django-web-app
    2. For setting django-mlapi-backend
    cd django-mlapi-backend

    create a sample .env file in root directory (OPTIONAL)

    
    #.env file

Email server configuration

EMAIL_HOST=smtp.your-email-provider.com EMAIL_HOST_USER=your_email@example.com EMAIL_HOST_PASSWORD=your_email_password

database configuration or use default sqlite3

DB_NAME=your-database-name DB_USER=your-db-user-name DB_PASSWORD=your-db-password DB_HOST=your-db-host DB_PORT=your-db-port PJ_SECRET_KEY=your-django-project-secret-key

```bash
python -m venv myenv 

Activating virtual environment named as myenv

1. In Windows πŸͺŸ
.\myenv\Scripts\activate  
2. In Linux/Mac 🐧
 source myenv/bin/activate
  1. Installing required modules and libraries

    pip install -r requirements.txt 
  2. Running Django Development Server Do the following task for contributing to project and you have to revert these changes before committing These steps can be used for working on local device for contribution

In cogniguard/settings.py
# for vercel deployment 
# SECRET_KEY = os.environ.get("PJ_SECRET_KEY")
SECRET_KEY="default-development-secret-key"

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

DATABASES = {
    #  setting default sqlite3 configuration for development server
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
    # for vercel deployment
    # 'default': {
    #     'ENGINE': 'django.db.backends.postgresql_psycopg2',
    #     'NAME': os.environ.get("DB_NAME"),
    #     'USER': os.environ.get("DB_USER"),
    #     'PASSWORD': os.environ.get("DB_PASSWORD"),
    #     'HOST': os.environ.get("DB_HOST"),
    #     'PORT': os.environ.get("DB_PORT"),
    # }
}
In cogniguard/urls.py

# # vercel deployment configuration
# urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
python manage.py makemigrations 
python manage.py migrate 
python manage.py runserver 

-- Server will be started at localhost (example: http://127.0.0.1:8000/)

--- Warning! - Ensure to undo the development settings changes before pushing code for vercel production and PRs.

Setting up CogniGuard Web Extension

  1. Open Google Chrome Browser and visit url
    chrome://extensions/ 
  2. Turn on Developer Mode.
  3. Click on load unpacked and then select the cogniguard-web folder with manifest.json
  4. Click on extension icon and you will find the CogniGuard.
  5. Open the desired website URL (https://snapdeal.com/) on web browser and then click on Analyze button.
  6. The Analyzing process will start running on backend.

Tech Stack πŸ› οΈ

Screenshots πŸ“Έ

[Include screenshots of the extension interface in action.] coming soon.

Documentation πŸ“–

Detailed documentation on usage, contribution guidelines, and API integration can be found in the Documentation Link.

Contributors πŸ§‘β€πŸ’»

Acknowledgments πŸ™

We express our gratitude to the incredible individuals who have contributed to the development and success of CogniGuard. 🌟 Your dedication, passion, and insights have played a pivotal role in shaping this project.

Special thanks to the open-source community for their continuous support and collaborative spirit. πŸš€ Your contributions, whether big or small, have contributed to the growth and improvement of CogniGuard.

Feedback πŸ“¬

We value your feedback! Report issues at adarsh@onionreads.com Propose features, or submit pull requests. Let's create a fair and transparent digital environment together! 🌐✨

Don't forget to leave a star ⭐ Happy Coding!!❀️


Our Contributors

Thank you for contributing to our repository

![Contributors](https://contrib.rocks/image?repo=4darsh-Dev/CogniGaurd) ### Show some ❀️ by starring this awesome repository!