{"_attachments":{},"_id":"swot-js","_rev":"1615590-61f42cd1a4ebea6b591aa944","author":"","description":"js implementation of swot","dist-tags":{"latest":"1.0.7"},"license":"ISC","maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"name":"swot-js","readme":"# Swot :apple:\n\n[![Build Status](https://travis-ci.org/theotow/swot-js.svg?branch=master)](https://travis-ci.org/theotow/swot-js)\n\n[![codecov](https://img.shields.io/codecov/c/github/theotow/swot-js.svg)](https://codecov.io/github/theotow/swot-js)\n[![version](https://img.shields.io/npm/v/swot-js.svg)](http://npm.im/swot-js)\n[![downloads](https://img.shields.io/npm/dm/swot-js.svg)](http://npm-stat.com/charts.html?package=swot-js&from=2016-08-27)\n[![MIT License](https://img.shields.io/npm/l/swot-js.svg)](https://opensource.org/licenses/MIT)\n\nIf you have a product or service and offer **academic discounts**, there's a good chance there's some manual component to the approval process. Perhaps `.edu` email addresses are automatically approved because, for the most part at least, they're associated with American post-secondary educational institutions. Perhaps `.ac.uk` email addresses are automatically approved because they're guaranteed to belong to British universities and colleges. Unfortunately, not every country has an education-specific TLD (Top Level Domain) and plenty of schools use `.com` or `.net`.\n\nSwot is a community-driven or crowdsourced library for verifying that domain names and email addresses are tied to a legitimate university of college - more specifically, an academic institution providing higher education in tertiary, quaternary or any other kind of post-secondary education in any country in the world.\n\n**Pop quiz:** Which of the following domain names should be eligible for an academic discount? `stanford.edu`, `america.edu`, `duep.edu`, `gla.ac.uk`, `wunizar.es`, `usask.ca`, `hil.no`, `unze.ba`, `fu-berlin.de`, `ecla.de`, `bvb.de`, `lsmu.com`. Answers at the foot of the page.\n\n### Installation\n\n\n`npm install swot-js`\n\n\n### Usage\n\n#### Verify Email Addresses\n\n```js\nvar swot = require(\"swot-js\")();\nswot.check(\"mv037@hdm-stuttgart.de\"); #Fachhochschule Stuttgart, Hochschule der Medien\\n;\n```\n\n\n### Known Issues\n\n* You can search by email and domain names only. You cannot search by IP.\n* You don't know if the email address belongs to a student, faculty, staff member, alumni, or a contractor.\n* There may be a few false positives, missing institutions... maybe even a couple of typos. Contributions welcome!\n\n**Please note:** just because someone has verified that they own `lreilly@stanford.edu` does *not* mean that they're a student. They could be faculty, staff, alumnni, or maybe even an external contractor. If you're suddenly getting a lot of traffic from websites like [FatWallet](http://www.fatwallet.com) or [SlickDeals](http://www.slickdeals.net), you might want to find out why. If you're suddenly getting a lot of requests from a particular school, you should look into that too. It may be good business, word of mouth, or someone may have found a loophole. Swot gives you a *high confidence level* - not a guarantee. I recommend putting some controls in place or at least monitor how it's doing from time to time.\n\n### Pop Quiz Answers\n\nHopefully, you'll be surprised by some of this:\n\n| Domain | Academic? | Comments |\n|--------|-----------|----------|\n|`stanford.edu`|:heavy_check_mark:|OK, this was an easy one so you could get at least *one* right|\n|`america.edu`|:heavy_multiplication_x:| Prior to October 29th 2001, anyone could register a `.edu` domain name ([details](http://en.wikipedia.org/wiki/.edu#Grandfathered_uses)) |\n|`duep.edu`|:heavy_check_mark:| Alfred Nobel University is a *Ukranian* University *in the Ukraine* i.e. not in the USA :us: |\n|`gla.ac.uk`|:heavy_check_mark:|Glasgow University in Scotland|\n|`unizar.es`|:heavy_check_mark:|The University of Zaragoza in Spain|\n|`usask.ca`|:heavy_check_mark:|The University of Saskatchewan in Canada|\n|`hil.no`|:heavy_check_mark:|Lillehammer University College in Norway|\n|`unze.ba`|:heavy_check_mark:|University of Zenica in Bosnia and Herzegovina|\n|`fu-berlin.de`|:heavy_check_mark:|Free University of Berlin in Germany|\n|`ecla.de`|:heavy_check_mark:|ECLA of Bard is a state recognized liberal arts university in Berlin, Germany |\n|`bvb.de`|:heavy_multiplication_x:|It's a soccer team from Germany|\n|`lsmu.com`|:heavy_check_mark:| Lugansk State Medical University in the Ukraine |\n\nIf you verified this by visiting all of the websites, how long did it take you? Did you have fun? Imagine you had to do this 10 - 100 times every day. Now you know a little something about the inspiration for Swot. Swot can verify them all in a fraction of a second and remove a :poop: part of someone's job.\n\n### See Also\n\n* [gman](https://github.com/benbalter/gman) - like swot, but for government emails\n* [swotphp](https://github.com/mdwheele/swotphp) - PHP port of Swot\n* [swot] (https://github.com/leereilly/swot) - Ruby Swot\n","time":{"created":"2022-01-28T17:50:09.880Z","modified":"2022-01-28T17:50:09.880Z","1.0.0":"2014-10-13T14:57:08.433Z","1.0.1":"2014-10-13T16:57:42.428Z","1.0.2":"2015-01-25T20:38:24.072Z","1.0.3":"2016-04-13T15:33:09.741Z","1.0.5":"2021-03-11T11:59:52.569Z","1.0.6":"2021-03-11T18:27:59.475Z","1.0.7":"2021-03-11T18:45:30.214Z"},"versions":{"1.0.0":{"name":"swot-js","version":"1.0.0","description":"js implementation of swot","main":"swot.js","scripts":{"test":"node_modules/mocha/bin/mocha -r lib/require.js -c -R spec -u bdd"},"author":"","license":"ISC","devDependencies":{"mocha":"^1.21.4"},"dependencies":{"chai":"^1.9.2","underscore":"^1.7.0","walk":"^2.3.4"},"gitHead":"f11ce22e40b39dc188f293b822293b1d99c77e74","_id":"swot-js@1.0.0","_shasum":"c02dbd7d6250dbb7b1735e988c189d23a1e42527","_from":".","_npmVersion":"2.0.2","_nodeVersion":"0.10.32","_npmUser":{"name":"theotow","email":"hi@manuelvilling.de"},"maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"dist":{"shasum":"c02dbd7d6250dbb7b1735e988c189d23a1e42527","tarball":"https://registry.npmmirror.com/swot-js/-/swot-js-1.0.0.tgz","size":248446,"integrity":"sha512-aZxDiLDuZXMpE7TB6RYkyisXV8tSdWIMs4qsF1vP1PHMKmTd0AzrQSc6fijoeK5WoCCfxp7ZY2DHtg35Pcb1yQ=="},"directories":{},"_cnpmcore_publish_time":"2021-12-23T19:07:36.650Z"},"1.0.1":{"name":"swot-js","version":"1.0.1","description":"js implementation of swot","main":"lib/swot.js","scripts":{"test":"node_modules/mocha/bin/mocha -r lib/require.js -c -R spec -u bdd"},"author":"","license":"ISC","devDependencies":{"mocha":"^1.21.4"},"dependencies":{"chai":"^1.9.2","underscore":"^1.7.0","walk":"^2.3.4"},"gitHead":"f11ce22e40b39dc188f293b822293b1d99c77e74","_id":"swot-js@1.0.1","_shasum":"f7d80930faea6e2c5675ceff9fc7c1ae78b57536","_from":".","_npmVersion":"2.0.2","_nodeVersion":"0.10.32","_npmUser":{"name":"theotow","email":"hi@manuelvilling.de"},"maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"dist":{"shasum":"f7d80930faea6e2c5675ceff9fc7c1ae78b57536","tarball":"https://registry.npmmirror.com/swot-js/-/swot-js-1.0.1.tgz","size":248452,"integrity":"sha512-BVub9nbBwH1kU2MoOyw+FHFKJVPNeLlT3W4C7zRPSN0o57oONZeIRxpVSozYyNhIwER0ufOIwPSFYLPiBwzFeQ=="},"directories":{},"_cnpmcore_publish_time":"2021-12-23T19:07:38.183Z"},"1.0.2":{"name":"swot-js","version":"1.0.2","description":"js implementation of swot","main":"lib/swot.js","scripts":{"test":"node_modules/mocha/bin/mocha -r lib/require.js -c -R spec -u bdd"},"author":"","license":"ISC","devDependencies":{"mocha":"^1.21.4"},"dependencies":{"chai":"^1.9.2","underscore":"^1.7.0","walk":"^2.3.4"},"gitHead":"92feb63e8315c60f6915846ee675f1dfa7cf52bf","_id":"swot-js@1.0.2","_shasum":"bf14ce0e565f6d5cdfed28d809bdedad21c85e61","_from":".","_npmVersion":"2.0.2","_nodeVersion":"0.10.32","_npmUser":{"name":"theotow","email":"hi@manuelvilling.de"},"maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"dist":{"shasum":"bf14ce0e565f6d5cdfed28d809bdedad21c85e61","tarball":"https://registry.npmmirror.com/swot-js/-/swot-js-1.0.2.tgz","size":248538,"integrity":"sha512-dMICM8C8oRAYqu8J0WLeQTa8FdvPJ+Ocj/2dNsfUExiZV0QGCihwIg0YQKr2Tny2wRC2q9OHDs/prxBb3847jA=="},"directories":{},"_cnpmcore_publish_time":"2021-12-23T19:07:39.969Z"},"1.0.3":{"name":"swot-js","version":"1.0.3","description":"js implementation of swot","main":"lib/swot.js","scripts":{"test":"node_modules/mocha/bin/mocha -r lib/require.js -c -R spec -u bdd","patch-release":"npm version patch && npm publish && git push --follow-tags"},"author":"","license":"ISC","devDependencies":{"mocha":"^1.21.4"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"dependencies":{"chai":"^1.9.2","underscore":"^1.7.0","walk":"^2.3.4"},"gitHead":"1679374990f05d9450b321d762fa36deed3f83c6","_id":"swot-js@1.0.3","_shasum":"94883cf491d30d29c2752a7b6ebe19aae67b627b","_from":".","_npmVersion":"3.4.0","_nodeVersion":"4.2.2","_npmUser":{"name":"theotow","email":"hi@manuelvilling.de"},"dist":{"shasum":"94883cf491d30d29c2752a7b6ebe19aae67b627b","tarball":"https://registry.npmmirror.com/swot-js/-/swot-js-1.0.3.tgz","size":230267,"integrity":"sha512-8Ag9wKmYLXGoEHbUk6EXbuASSIT7lKiMoCkiZIf5imI181dUeg7g19FJh8lvExpa5vGw1X83wiKNk64lpKCuow=="},"maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/swot-js-1.0.3.tgz_1460561586343_0.3183695583138615"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T19:07:41.494Z"},"1.0.5":{"name":"swot-js","version":"1.0.5","description":"js implementation of swot","main":"lib/swot.js","scripts":{"test":"mocha","coverage":"istanbul cover _mocha","check-coverage":"istanbul check-coverage --statements 100 --branches 50 --functions 100 --lines 100","report-coverage":"cat ./coverage/lcov.info | codecov","patch-release":"npm version patch && npm publish && git push --follow-tags"},"author":"","license":"MIT","devDependencies":{"codecov.io":"0.1.6","istanbul":"0.4.5","mocha":"^1.21.4"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"dependencies":{"chai":"^1.9.2","underscore":"^1.7.0","walk":"^2.3.4"},"gitHead":"b0199e86daab0c6214e369c1819be55b97bba1ff","_id":"swot-js@1.0.5","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kGbySViL4vWYGr5zjUNf/ewh/Af9hun4pC0rp9k8eG0rxxAWMbBbnLgEh8S39GD5rkF44vF4fo41z8ILBYgm7A==","shasum":"10941322d849a73de75de5fd49b6537b0c8722e7","tarball":"https://registry.npmmirror.com/swot-js/-/swot-js-1.0.5.tgz","fileCount":7416,"unpackedSize":242031,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSgY4CRA9TVsSAnZWagAAunsQAInSloRcjL0o5TJfR5/g\nLT0thwNiBYJIH3AbGKGBiS7T9mO2ydBlZuNSsQ1D4HPmiudMKTlKAUGP14rC\nSV1Sycm2up8u5DbR6KowNC9wH/x4M9tPHfBJJR89uT1oa87nzVcRN+WDZrfZ\naJJZ8QjJ2aPMUAsh8IWvc6SNRPmmmlvNiLzg48xcMemeJEH1JQauN8cuSehh\nKI41HYDASVAxcBvqdq0r/yd2ccJBmTK55pyya/q7py0J7mQcG6GBaPcPbfsb\nVKHqoe4+1IM3rGbY7Jiy7Q/612HugnVGCUNAGB30qUPmQn3XYVfolIsUxzjz\nH2uDVygVUUc7cwJkjc+3b5FHGVoT6vlrvmpyacmhE+17ZRxF1G5E8FzXnI/g\nLEFLoqJop8fdlDB66FIzTsoWX7s8L7ytgtZ3Qc1VORiF6esJZoedo2ObtrK5\nvTPfqr+5wNvZpG7DInZ7jkMluWobFCtC8oGRjaELQ0d9PS3N6dkB4VUa85yt\nfnw3fY4DDYl+tb0o2AsV5j72dcnTI1T9aZ0VZjLLwByG7Wews5O3aO7bhlzr\n9VkDQzzliRaPKxM74PxVhpEyt8ppRX4ghlzsRfBci6l9KMPTJrPN/vMBA3Hk\nvAUiYBNFSanPAnwBm7mDc0PL/jAOcjju/HOPW5MwIo7YIGAIOCGnhZESJUMV\ne+En\r\n=JiYL\r\n-----END PGP SIGNATURE-----\r\n","size":249420},"_npmUser":{"name":"theotow","email":"hi@manuelvilling.de"},"directories":{},"maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/swot-js_1.0.5_1615463992331_0.2670422755168691"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-23T19:07:43.062Z"},"1.0.6":{"name":"swot-js","version":"1.0.6","description":"js implementation of swot","main":"lib/swot.js","scripts":{"test":"mocha","coverage":"istanbul cover _mocha","check-coverage":"istanbul check-coverage --statements 100 --branches 50 --functions 100 --lines 100","report-coverage":"cat ./coverage/lcov.info | codecov","patch-release":"npm version patch && npm publish && git push --follow-tags"},"author":"","license":"MIT","devDependencies":{"codecov.io":"0.1.6","istanbul":"0.4.5","mocha":"^1.21.4"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/theotow/swot-js.git"},"dependencies":{"chai":"^1.9.2","underscore":"^1.7.0","walk":"^2.3.4"},"gitHead":"d037301b569a76f347c84b50d31647f2b9a7635a","bugs":{"url":"https://github.com/theotow/swot-js/issues"},"homepage":"https://github.com/theotow/swot-js#readme","_id":"swot-js@1.0.6","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-djULO2RxCR22u7jpphrQV7LVkZdZtYI9N5OtI+UUlUfnG37547pjNhQBdF24aW8x+105ObIw0Kgt2QgrVtiU0A==","shasum":"f6a38a11a21883307d1e9c2007c37cc2200fb2be","tarball":"https://registry.npmmirror.com/swot-js/-/swot-js-1.0.6.tgz","fileCount":7416,"unpackedSize":242109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSmEvCRA9TVsSAnZWagAAJSsP/jQ4DTtzpXY+S61GtlKs\nFyjT2EtTvteMiQpf/zAxblttadgwHlUZ6O5eUrjHBZaAwm1dofm0Wv7HWtDW\ndJltfZFVni1qRVMHSnpj/PPrvYH261BXpbXIQv+vbictfnF2rDl+MWWdP1Nh\nE6Roay3ThUfU2Uj9OL3E3pF1Mc4Q6Lc+JNks86S7MZDyx1brZDIoDLakXzUT\n5B3K1o4/SX7sl/T3sZJOku0zu0GAS9Io691i0iAHFZPvA4PSxqvOW/4gdoO5\nthSZP/Ud7V9ucHdXdMrw8Ku4HGcJ/ZO1QSX6VfeoSIgart+x5cFWf44S86cV\nMVaonlLU2B+4yiVD/sAbr7V+kuXvkqH7SecK5QOOOMsb++VIFDuodVAu++cQ\nxj3n5IGhX+SQGs3zJHenBfdSrZEZBx9Tm2IqgNaIzQz669ZExkWjmYdLRsWC\nDB+/X2JLDtMIs5S30Y3w7VgSrQuDIEm5JbnoqcKsRrgU7GddIn1ex0yVJRWa\noQ4T882mwUZSzL6ASEx50/qzUZRTBqeSsW6BUGuoICUehkeEWsu/dioa8iNC\n3nNfSJtNz9eBrtzZH4qsteNRNZLAF/4n5P5WhjbsMSzsLSJ1HVu8m1XB1MF0\n+QNsh6TZA/VNQvufNSUiKGPQToPVstwXPK1hKJ+Ktatmc76NMgcVI6Hotkuh\nZ0ex\r\n=xpGZ\r\n-----END PGP SIGNATURE-----\r\n","size":249438},"_npmUser":{"name":"theotow","email":"hi@manuelvilling.de"},"directories":{},"maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/swot-js_1.0.6_1615487279166_0.6563514581490524"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-23T19:07:46.279Z"},"1.0.7":{"name":"swot-js","version":"1.0.7","description":"js implementation of swot","main":"lib/swot.js","scripts":{"test":"mocha","coverage":"istanbul cover _mocha","check-coverage":"istanbul check-coverage --statements 100 --branches 50 --functions 100 --lines 100","report-coverage":"cat ./coverage/lcov.info | codecov","patch-release":"npm version patch && npm publish && git push --follow-tags"},"author":"","license":"MIT","devDependencies":{"codecov.io":"0.1.6","istanbul":"0.4.5","mocha":"^1.21.4"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/theotow/swot-js.git"},"dependencies":{"chai":"^1.9.2","underscore":"^1.7.0","walk":"^2.3.4"},"gitHead":"f4d1ddb5136fb64fb029222678bcf6fd8d46c943","bugs":{"url":"https://github.com/theotow/swot-js/issues"},"homepage":"https://github.com/theotow/swot-js#readme","_id":"swot-js@1.0.7","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-eQYUVF5y2CB5ZoGGUk7QlW79f+w31qLFvhb+EBOn4PBRt5SRqiSe99h0TxVd7XuUL9xG+fNtqgIZF2q3kQn7aQ==","shasum":"0fb6520d6bd466370b695c6bdd9489214effb112","tarball":"https://registry.npmmirror.com/swot-js/-/swot-js-1.0.7.tgz","fileCount":7454,"unpackedSize":243480,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSmVKCRA9TVsSAnZWagAAslsP/iPh7NO4jQSdnYvs3FEE\n6EPAhLClLPPkstcyGaXGTpbEwfp7PseLHoH92Zkpn2H4Ap4PZ3JxZaYUDNqP\ngTURSVuKhwlzvixP12zRVFyWFmlOVo4nkTvYNZLPuN1nlW1wnQ/iPbOqqDUY\nbMbw0iR71O8/cxeyfAnxiMzoaJrezdrvNDsPPcBl4mH1n02akinm2yWs6X7o\nIq7RsbPAuJ/s7l//gdl2VPGA/8jE/mN0HbG6IHoQMJzKKaw59uchODdsHX25\nVAxBPk/8HFK273/bGR2PMF3yRZrYwSfmmTyhZsj6O9v/PLt2VWX6fkcECozk\nDWBIxabRQZINN1fY/4k2292vBCNYPjaAseCAYqLbqg5/xUXeRz6c9EWIFDln\nYISleMWXq46StSDQjRy4XoGoYJY8NK+a+Zt15kHRxWzk9aVv05ui2nOUZtqq\nHeGK9Rjmo+Gthzm1p0RMCPTpsEogxRumbz77MWN5F7y4x00KEc3SRZKxmjPr\nVFXH4u0XqXS35SJxZ4MWbAzJ8GCWBrjw5mhLxrcH1tLHHDi2rIYXAfjXp7PV\ncsXzllvPl2mYcVhjgBSj5FTDGL9wZ9KKW+QFYWt4eyuMJKL8SNe7rArbpBCT\nH3aXv0rvXmjcYWoJScAu3nKoJbsMj1JmUDhlbkDxcIcP1VoYnPfWdiR7Mr5A\nKGwD\r\n=x9MZ\r\n-----END PGP SIGNATURE-----\r\n","size":250892},"_npmUser":{"name":"theotow","email":"hi@manuelvilling.de"},"directories":{},"maintainers":[{"name":"theotow","email":"hi@manuelvilling.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/swot-js_1.0.7_1615488329985_0.17160466424299337"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2021-12-23T19:07:47.800Z"}},"_source_registry_name":"default"}