How e1n7/brainly-ban-checker works
Brainly Ban Checker lets users submit text for country-specific banned-word scanning and view flagged patterns and highlighted locations. The browser optionally parses pasted Brainly HTML, then sends text and a country code to a Supabase Edge Function, which loads private enabled terms and runs the matching and highlighting algorithm. The interface also offers a symbol finder for copying or inserting alternate characters. The README documents four supported country codes and private database access; source excerpts show the request and response handling. The README’s aggregate-only privacy claim differs from the sampled response and display code, which include matched terms.
Main entry points: page.jsx Checker page · index.ts Analyze content function · SymbolPanel.jsx Symbol finder · CountrySelector.jsx Country selector
Components 13
Checker interface
- Checker page
app/page.jsx - Country selector
components/ban-checker/CountrySelector.jsx - Results display
components/ban-checker/ResultsDisplay.jsx - Symbol finder
components/ban-checker/SymbolPanel.jsx
Input preparation
- Brainly HTML parser
lib/brainlyParser.js - Country definitions
lib/countries.js - Supabase request config
lib/supabasePublic.js
Scan service
- Analyze content function
supabase/functions/analyze-content/index.ts - Text matching
lib/analyzeText.js
Reference data
- Symbol map
data/symbolMap.json - Private ban_words table
Other components
- User
- Supabase service
Connections 14
- User → Checker page: enters text
- Checker page → Country selector: renders selector
- Country selector → Country definitions: reads options
- Checker page → Brainly HTML parser: parses HTML
- Checker page → Supabase request config: reads request config
- Checker page → Analyze content function: POSTs scan request
- Analyze content function → Supabase service: queries table
- Supabase service → Private ban_words table: reads enabled terms
- Analyze content function → Text matching: calls matcher
- Analyze content function → Checker page: returns scan result
- Checker page → Results display: passes result
- Checker page → Symbol finder: renders finder
- Symbol finder → Symbol map: reads symbols
- Symbol finder → User: copies or inserts