- Overview
- Features
- Architecture
- Project Structure
- Setup Instructions
- Usage
- API Documentation
- Contributing
- License
NAITIK is an advanced dark pattern detection system designed to identify and prevent deceptive user interface patterns commonly used by websites to manipulate user behavior. The system combines machine learning, web scraping, and browser extension technology to provide comprehensive dark pattern detection.
For detailed project information, please refer to our comprehensive documentation:
- Multi-class Classification: Detects various types of dark patterns including:
- Forced Action
- Misdirection
- Obstruction
- Scarcity
- Sneaking
- Social Proof
- Urgency
- Real-time Analysis: Instant detection of dark patterns on web pages
- Machine Learning Model: Uses fine-tuned transformer models for accurate classification
- E-commerce Integration: Supports Amazon and Flipkart scraping
- Price Monitoring: Tracks price changes and identifies fake discounts
- Review Analysis: Detects fake reviews using sentiment analysis
- Automated Reporting: Generates comprehensive reports on detected patterns
- Chrome Extension: Real-time dark pattern detection while browsing
- Visual Indicators: Highlights potential dark patterns on web pages
- User Alerts: Warns users about detected deceptive patterns
- Analytics Dashboard: Comprehensive overview of detected patterns
- Data Visualization: Charts and graphs for pattern analysis
- Review Management: Approve/reject reported dark patterns
- Monitoring Tools: Real-time system monitoring
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Chrome β β Admin β β Backend β
β Extension βββββΊβ Dashboard βββββΊβ Services β
β (naitik_mini) β β (admin/) β β (scrapers/) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β LLM Service β β Database β
β (darkpatternLLM)β β (dark.db) β
βββββββββββββββββββ βββββββββββββββββββ
naitik/
βββ admin/ # React-based admin dashboard
βββ naitik_mini/ # Chrome extension (TypeScript + Vite)
βββ scrapers/ # Backend API and scraping services
βββ darkpatternLLM/ # Machine learning model service
βββ docs/ # Project documentation and assets
βββ images/ # Static images and logos
βββ docker-compose.yml # Docker configuration
- Node.js (v16 or higher)
- Python 3.8+
- Chrome browser (for extension)
- Docker (optional)
cd admin
npm install
npm startThe admin dashboard will be available at http://localhost:3000
cd naitik_mini
npm install
npm run buildTo load the extension:
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" and select the
distfolder fromnaitik_mini/
cd scrapers
pip install -r requirements.txt
python main.pycd darkpatternLLM
pip install -r requirements.txt
python app.pydocker-compose up -d- Install the extension following the setup instructions above
- Browse any website normally
- The extension will automatically detect and highlight potential dark patterns
- Click on highlighted elements to see detailed analysis
- Access the dashboard at
http://localhost:3000 - View analytics and reports on detected dark patterns
- Manage user reports and system monitoring
- Configure detection parameters
POST /checkdarkpattern
Content-Type: application/json
{
"text": "Limited time offer! Only 2 left in stock!"
}POST /search
Content-Type: application/json
{
"url": "https://amazon.com/product/123"
}POST /report
Content-Type: application/json
{
"website": "example.com",
"pattern": "urgency",
"description": "Fake countdown timer"
}Create a .env file in the respective directories:
# For darkpatternLLM/app.py
TOKEN=your_huggingface_token
# For scrapers/main.py
DATABASE_URL=sqlite:///dark.dbThe system uses SQLite by default. The database will be automatically created with the following tables:
darkpatterns: Stores detected dark patternstrainingdata: Training data for ML modelsmodel: Model performance metricsprice: Price tracking data
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Kaleido Crew: Project development team
- Hugging Face: For providing the transformer models
- Open Source Community: For various libraries and tools used
For support and questions:
- Create an issue in the repository
- Contact the development team
- Refer to the project documentation
NAITIK - Making the web a safer place, one pattern at a time.
