A comprehensive review and rating platform for businesses, services, and products with AI-powered fake review detection, sentiment analysis, and fraud prevention capabilities.
graph TB
%% User Interfaces
UI["`**Next.js Frontend**<br/>localhost:3000<br/>- User Dashboard<br/>- Admin Interface<br/>- Report Management`"]
EXT["`**Browser Extension**<br/>Chrome/Edge<br/>- Real-time Detection<br/>- Page Analysis<br/>- Quick Report`"]
%% Core Platform
STRAPI["`**Strapi CMS**<br/>localhost:1337<br/>- Content Management<br/>- API Gateway<br/>- Admin Panel<br/>- Authentication`"]
%% AI Service
AI["`**AI Analysis Service**<br/>GPT-5-mini<br/>- Scam Detection<br/>- Fake Review Detection<br/>- Sentiment Analysis<br/>- Batch Processing`"]
%% Database
DB[("`**PostgreSQL**<br/>Docker Container<br/>- User Data<br/>- Reports<br/>- AI Analysis Results<br/>- Validation Results`")]
%% Services
CRAWLER["`**Importer/Crawler**<br/>TypeScript Service<br/>- Web Scraping<br/>- Data Collection<br/>- FlareSolverr Proxy<br/>- AI Batch Processing`"]
VALIDATOR["`**Validator Service**<br/>TypeScript/Python<br/>- Data Validation<br/>- Business Rules<br/>- Risk Scoring<br/>- Quality Check`"]
%% External Services
FLARE["`**FlareSolverr**<br/>Docker Service<br/>- Cloudflare Bypass<br/>- Proxy Service`"]
REDIS["`**Redis**<br/>Cache & Queue<br/>- AI Result Cache<br/>- Job Processing<br/>- Inter-service Comm`"]
%% User Flow
USER(["`**Users**<br/>End Users<br/>Administrators`"])
%% Connections
USER --> UI
USER --> EXT
UI --> STRAPI
EXT --> STRAPI
STRAPI --> DB
STRAPI --> VALIDATOR
CRAWLER --> AI
CRAWLER --> FLARE
CRAWLER --> REDIS
CRAWLER --> DB
AI --> REDIS
AI --> DB
VALIDATOR --> REDIS
VALIDATOR --> DB
%% Styling
classDef frontend fill:#e1f5fe
classDef backend fill:#f3e5f5
classDef database fill:#e8f5e8
classDef service fill:#fff3e0
classDef external fill:#fce4ec
classDef ai fill:#fff9c4
class UI,EXT frontend
class STRAPI backend
class DB database
class CRAWLER,VALIDATOR service
class FLARE,REDIS external
class AI ai
Multiple Sources → Crawler/Importer → Raw Data Storage
↓ ↓ ↓
User Reviews FlareSolverr JSON Files
Business Data Anti-captcha Structured Data
Product Listings Rate Limiting Metadata
Raw Data → AI Analysis (GPT-5-mini) → Enriched Data
↓ ↓ ↓
Reviews Fake Detection Confidence Score
Ratings Sentiment Analysis Categories
Reports Pattern Recognition Severity Level
Enriched Data → Redis Queue → Validator → PostgreSQL
↓ ↓ ↓ ↓
AI Metadata Async Jobs Quality Verified
Confidence Pub/Sub Scoring Reviews
Categories Caching Dedup Ratings
Strapi CMS → REST/GraphQL APIs → Client Applications
↓ ↓ ↓
Content Mgmt Endpoints Next.js UI
Auth/Perms Rate Limiting Browser Ext
Admin Panel Caching Mobile Apps
- Review Management: Multi-category reviews (businesses, products, services)
- Rating System: 5-star ratings with weighted algorithms
- User Authentication: JWT-based auth with social login support
- Content Moderation: AI-powered content filtering and approval workflows
- Fake Review Detection: 80%+ accuracy in identifying fake reviews
- Sentiment Analysis: Understand customer emotions and feedback patterns
- Spam Filtering: Automatic detection of spam and promotional content
- Fraud Prevention: Identify scam patterns and suspicious activities
- Language Support: Vietnamese and English analysis
- Batch Processing: Handle 50+ reviews per batch (~12s processing)
- Redis Caching: 90%+ cache hit rate for duplicate detection
- Real-time Updates: WebSocket support for live notifications
- API Rate Limiting: Protect against abuse and ensure fair usage
- Data Validation: Multi-layer validation pipeline
- AI Processing Speed: 250 reviews/minute
- API Response Time: < 100ms (cached), < 500ms (uncached)
- Cache Hit Rate: 90%+ for duplicate content
- Uptime Target: 99.9% availability
- Cost Efficiency: ~$0.0003 per AI analysis (GPT-5-mini)
- Development Setup - Complete setup guide
- Modules Overview - Technical documentation for all modules
- API Documentation - Strapi API endpoints and schemas
- Frontend Guide - Next.js Web development guide
- AI Integration - AI service documentation
- UI - https://www.notum-dev.cz/
- Strapi - https://api.notum-dev.cz/admin
- Readonly user:
- Email: [REDACTED]
- Password: [REDACTED]
- Next.js v15 - React framework with App Router
- TailwindCSS v4 - Utility-first CSS framework
- Shadcn/ui - Beautiful UI components
- TypeScript - Type-safe development
- Strapi v5 - Headless CMS with REST & GraphQL
- PostgreSQL 17 - Primary database
- Redis - Caching and message queue
- Node.js 22 - Runtime environment
- OpenAI GPT-5-mini - AI analysis engine
- FlareSolverr - Anti-bot bypass
- Playwright - Browser automation
- TypeScript/Python - Data processing
- Turborepo - Monorepo management
- Docker - Containerization
- Yarn Workspaces - Package management
- Node.js 22.x - Required runtime
- Yarn 1.22.x - Package manager (enforced)
- PostgreSQL 17 - Database (or use Docker)
- Docker - For services (Redis, PostgreSQL, FlareSolverr)
- OpenAI API Key - For AI features (GPT-5-mini)
- Clone and Install
git clone https://github.com/RateBox/Rate.git
cd Rate
yarn install- Environment Setup
# Copy environment templates
yarn setup:apps
# Configure AI service (root .env)
echo "OPENAI_API_KEY=your-api-key" >> .env
echo "OPENAI_MODEL=gpt-5-mini" >> .env
echo "AI_CACHE_ENABLED=true" >> .env
# Configure Strapi (apps/strapi/.env)
# Configure Next.js (apps/web/.env.local)- Start Services
# Start database (if not using local PostgreSQL)
cd apps/strapi && docker compose up -d db && cd ../..
# Start Redis for caching
docker run -d --name redis -p 6379:6379 redis:alpine
# Start all applications
yarn dev- Access Points
- Frontend: http://localhost:3000
- Admin Panel: http://localhost:1337/admin
- API: http://localhost:1337/api
- GraphQL: http://localhost:1337/graphql
# 1. Crawl data
cd apps/importer
ts-node-esm Scripts/crawl.ts links
ts-node-esm Scripts/crawl.ts crawl
# 2. Process with AI
ts-node-esm Scripts/ai-batch-processor.ts \
-i ./Data/crawled \
-o ./Data/processed
# 3. Push to validation
ts-node-esm Scripts/push-to-validation-with-ai.tsapps/strapi- Strapi v5 CMS backend with custom pluginsapps/web- Next.js v15 frontend applicationapps/importer- Data crawler and importer service
packages/ai- AI analysis service (GPT-5-mini integration)packages/validator- TypeScript validation schemaspackages/design-system- Shared TailwindCSS and CKEditor configspackages/eslint-config- Shared ESLint rulespackages/prettier-config- Shared Prettier configurationpackages/typescript-config- Shared TypeScript configurations
Modules/Extension- Browser extension for real-time detectionModules/Validator- Python validation worker service
# Development
yarn dev # Start all services
yarn dev:strapi # Start Strapi only
yarn dev:ui # Start Next.js only
# Building
yarn build # Build all apps
yarn build:strapi # Build Strapi
yarn build:ui # Build Next.js
# Code Quality
yarn lint # Lint all code
yarn format # Format with Prettier
yarn type-check # TypeScript checking
# Testing
yarn test # Run all tests
yarn test-plugin # Test smart-component-filter pluginPort already in use:
# Windows
netstat -ano | findstr :1337
taskkill /PID <PID> /F
# Linux/Mac
lsof -i :1337
kill -9 <PID>Database connection failed:
# Check PostgreSQL is running
docker ps | grep postgres
# Restart database
docker restart rate-dbAI Service errors:
- Check OpenAI API key in
.env - Verify GPT-5-mini model access
- Check Redis is running for caching
- Fork the repository
- Create feature branch (
git checkout -b feat/amazing-feature) - Commit changes (
git commit -m 'feat: add amazing feature') - Push to branch (
git push origin feat/amazing-feature) - Open Pull Request
We use Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentationstyle:Code stylerefactor:Code refactoringtest:Testschore:Maintenance
MIT License - see LICENSE file for details
- Based on strapi-next-monorepo-starter
- AI powered by OpenAI GPT-5-mini
- UI components by Shadcn/ui