4.9 KiB
Swot 🍎
Swot allows you to identify whether a particular email address or domain name is associated with an academic institution providing higher education in tertiary, quaternary or post-secondary education in any country in the world.
Why would you want to do that?
A growing number of companies offer discounts on their products/services to those in academia. It's not a hard problem to solve in America or the UK (you can just whitelist .edu and .ac.uk domains), but what about the other countries out there?
Pop quiz
How many of the following email addresses are associated with a university? Answers at the bottom.
joe@stanford.edu, tom@cs.strath.ac.uk, lee@wunizar.es, bob@ubishops.ca, ally@usask.ca, hans@hil.no, mila@unze.ba
Usage
Verify Email Addresses
Swot::is_academic? 'lreilly@stanford.edu' # true
Swot::is_academic? 'lreilly@strath.ac.uk' # true
Swot::is_academic? 'lreilly@soft-eng.strath.ac.uk' # true
Swot::is_academic? 'pedro@ugr.es' # true
Swot::is_academic? 'lee@uottawa.ca' # true
Swot::is_academic? 'lee@leerilly.net' # false
Verify Domain Names
Swot::is_academic?('harvard.edu') # true
Swot::is_academic?('www.harvard.edu') # true
Swot::is_academic?('http://www.harvard.edu') # true
Swot::is_academic?('http://www.github.com') # false
Swot::is_academic?('http://www.rangers.co.uk') # false
Find School Names
Swot::scool_name 'lreilly@cs.strath.ac.uk'
# => "University of Strathclyde"
Swot::scool_name 'lreilly@stanford.edu'
# => "Stanford University"
What is a swot?
UrbanDictionary will fill you in ಠ_ಠ
Contributing to Swot
Data Contributions
- All of the school data is stored in a simple filesystem data structure under
lib/domains. - Every directory name in here is a TLD (Top Level Domain) e.g.
edu. - Every file in these directories is named after the school's SLD (Second Level Domain) e.g
stanford. - The contents of that file are simply the school name e.g.
Stanford University. - The working example for Stanford University 👀
- Here's what the data structure looks like:
[-] lib
[-] domains
[-] ac.uk
[+] strath
[-] edu
[+] harvard
[+] stanford
Adding a School
Let's say you want to add the University of Strathclyde. We know the TLD is ac.uk and the SLD is strath. We'd simply create a file at lib/domains/ac.uk/strath containing the text University of Strathcylde. You can safely ignores subdomain like www, cis, whatever. You can see the actual file here.
Updating a School Name
Change the file contents of the appropriate file.
Deleting a School Name
A simple git rm on the approriate file will do the trick.
Code Contributions
This was literally my first Ruby gem, so please keep that in mind when you're looking at the code :trollface:
- Check out the latest master.
- Take a look through the open pull requests in case someone else has already contributed something similar.
- Fork the project.
- Start a topic branch of your own.
- Commit and push away. Don't forget the tests!
- Submit a pull request.
- 💥 You've contributed to open source!
____________________________________________________
|.==================================================,|
|| I WILL MERGE AND REVIEW PULL REQUESTS QUICKLY ||
|| I WILL MERGE AND REVIEW PULL REQUESTS QUICKLY ||
|| I WILL MERGE AND REVIEW PULL REQUESTS QUICKLY ||
|| I .----.ERG, ||
|| / >< \ / ||
|| | |/\ ||
|| \______//\/ ||
|| _(____)/ / ||
||__/ ,_ _ _/______________________________________||
'===\___\_) |========================================'
|______|
| || |
|__||__|
(__)(__)
Copyright
Copyright (c) 2012 Lee Reilly. See LICENSE.txt for further details.
Pop Quiz Answers
All of 'em.
Known Issues / Bugs / "Features"
- You can search by email and domain names only. You cannot search by IP.
- You don't know if the email address belongs to a student, faculty, staff member, etc.
- There may be a few false positives, missing institutions... maybe even a couple of typos. Contributons welcome!
