How israarefaat/swot works
swot supports JetBrains educational-license eligibility by matching an email domain against educational institution domains, while excluding stoplisted domains. The main workflow normalizes the supplied email, checks the stoplist, then accepts a listed TLD or finds a matching institution name. The domain files also feed a compiler that emits a sorted domain list. The tree and README establish the catalog’s role; source excerpts show the matching and compilation behavior, but not downstream use of the generated artifact.
Main entry points: Swot.kt Academic checks · Compiler.kt Domain compiler · domains Institution domains · tlds.txt Allowed TLDs
Components 11
Domain matching
- Academic checks
src/main/kotlin/swot/Swot.kt - Domain parsing
src/main/kotlin/swot/Swot.kt - School-name lookup
src/main/kotlin/swot/Swot.kt - Set matching
src/main/kotlin/swot/Swot.kt - Eligibility result
src/main/kotlin/swot/Swot.kt
Domain catalog
- Institution domains
lib/domains - Allowed TLDs
lib/domains/tlds.txt - Stoplist
lib/domains/stoplist.txt
Catalog compilation
- Domain compiler
src/main/kotlin/swot/Compiler.kt - Compiled domain list
src/main/kotlin/swot/Compiler.kt
Other components
- License applicant
Connections 14
- License applicant → Academic checks: submits email
- Academic checks → Domain parsing: parses input
- Domain parsing → Academic checks: returns parts
- Academic checks → Set matching: checks membership
- Academic checks → School-name lookup: looks up names
- School-name lookup → Institution domains: reads matching files
- Academic checks → Allowed TLDs: checks TLDs
- Academic checks → Stoplist: checks exclusions
- Academic checks → Eligibility result: returns result
- Domain compiler → Institution domains: walks files
- Domain compiler → Stoplist: loads entries
- Domain compiler → Allowed TLDs: loads entries
- Domain compiler → Set matching: filters domains
- Domain compiler → Compiled domain list: writes sorted output