From 667cfe2068cc3f6dc9c82e84a02de6d61d249fd5 Mon Sep 17 00:00:00 2001 From: Philip Torchinsky Date: Sun, 21 Feb 2016 00:26:44 +0300 Subject: [PATCH 1/6] Update README.md --- README.md | 117 ++++++++++++------------------------------------------ 1 file changed, 25 insertions(+), 92 deletions(-) diff --git a/README.md b/README.md index 167f0ae55c..4a0225996b 100644 --- a/README.md +++ b/README.md @@ -1,109 +1,42 @@ # Swot :apple: -[![Build Status](https://api.travis-ci.org/leereilly/swot.png)](https://travis-ci.org/leereilly/swot) [![Gem Version](https://badge.fury.io/rb/swot.svg)](http://badge.fury.io/rb/swot) +JetBrains uses **swot** repository to grant free licenses for JetBrains tools to students and teachers worldwide. If your email is in one of the domains listed in this repository, you are entitled to request your free license from JetBrains. Visit http://jetbrains.com/student to request! -If 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`. +There is lib/domains directory which contains hierarcicaly structured list of email domains belonged to various educational institutions. The domains are mostly owned by colleges and universities, and also by groups of schools united together because they are sharing the same email domains between several institutions, such as Township High School District 211 of Cook County, Illinois. -Swot 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. +If you know a school, college or university which is not in this list, feel free to submit a pull request to add it. -**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. +# Which educational institutions can be added to the repository? -### Installation +Your pull request for adding a new email domain to the repository will be satisfied if all of the conditions below are met: +1) The domain is used by an educational institution, which offers at least one long-term course (one year or longer), and the course is somehow related to IT (it is in computer science, software engineering, statistics, bioinformatics, etc.) +2) The educational institution has a physically existing location, where students attend classes in classrooms, not over the Internet. In general, we do not include online universities to this repository. -Swot is a Ruby gem, so you'll need a little Ruby-fu to get it working. Simply +**NOTE:** If an organization provides primary and secondary education only (i.e., no high or higher education programs), it shall not be included into the list. Primary and secondary school students usually do not need professional developer tools, and in case they learn some programming, we are glad to offer them Community versions of the tools, which are free to everybody, such as PyCharm Community Edition, etc. -`gem install swot` +# How to add a domain to this repository -Or add this to your `Gemfile` before doing a `bundle install`: +To add a domain, make a pull request. You must be familiar with git tool or GitHub user interface in order to make a pull request. +We review your request and merge it (i.e., accept it) if it meets the following rules: -`gem 'swot'` +1) Each domain is represented by a single .txt file in the repository. If there is a file lib/domains/edu/mit.txt, it means that e-mail domain `mit.edu` is included into the repository. Please note that the repository uses reverse order of the name components, and also note that .txt extension is mandatory. -### Usage +Example: add file /lib/domains/ng/edu/unaab.txt to add a domain `unaab.edu.ng` to the repository. -#### Verify Email Addresses +2) Pull request can include one or more files which you wish to add. -```ruby -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 -``` +3) Each file in the repository has to contain a name of the university, which the domain represented by the file belongs to. For example, a file /lib/domains/ng/edu/unaab.txt has to contain one line in it: "Federal University of Agriculture, Abeokuta". +First line of the file has to contain an official name of the educational organization. +Other lines can contain other known names of the university. A university in a non-English speaking country can have one line containing the university name in their native language, and one line containing the name in English. -#### Verify Domain Names +4) If the domain is shared among several institutions, such a school district domain, please add the last line starting with dot (".") followed by a word "group". Example: +'.group' -```ruby -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 -``` +# FAQ +### There are many domains in my university, how can I add all of them? +If all the domains used for teachers' and students' email are in the same upper-level domain, you can add the upper-level domain. For example, if there is a domain joedoe.org owned by a university, and there are subdomains such as stud.joedoe.org and prof.joedoe.org, you can add joedoe.org domain, and it will be correct. -#### Find School Names +However, if the upper-level domain is also used by alumni, research staff, and other people who do not involved into education, we encourage you to add separate subdomins domains, if it is possible. -```ruby -Swot::school_name 'lreilly@cs.strath.ac.uk' -# => "University of Strathclyde" - -Swot::school_name 'http://www.stanford.edu' -# => "Stanford University" -``` - -### Contributing to Swot - -Contributions welcome! Please see the [contribution guidelines](CONTRIBUTING.md) for details on how to add, update, or delete schools. Code contributions and ports to different languages welcome too. - -**Thanks** to the following people for their contributions: -@blutack, @captn3m0, @chrishunt, @johndbritton, @johnotander, @pborreli, @rcurtis, @vikhyat,. - -**Special thanks** to @weppos for the [public_suffix](https://github.com/weppos/publicsuffix-ruby) gem :metal: - -### Known Issues - -* 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, alumni, or a contractor. -* There may be a few false positives, missing institutions... maybe even a couple of typos. Contributions welcome! - -**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. - -### What is a swot? - -According to [UrbanDictionary](http://www.urbandictionary.com/define.php?term=swot) :blue_book: - -> A word used by morons to insult a person of superior academic abilities. - -or - -> [verb] To Swot; Revision undertaken preceding an examination. - -or - -> [backronym] Stupid Waste of Time - -### Pop Quiz Answers - -Hopefully, you'll be surprised by some of this: - -| Domain | Academic? | Comments | -|--------|-----------|----------| -|`stanford.edu`|:heavy_check_mark:|OK, this was an easy one so you could get at least *one* right| -|`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)) | -|`duep.edu`|:heavy_check_mark:| Alfred Nobel University is a *Ukranian* University *in the Ukraine* i.e. not in the USA :us: | -|`gla.ac.uk`|:heavy_check_mark:|Glasgow University in Scotland| -|`unizar.es`|:heavy_check_mark:|The University of Zaragoza in Spain| -|`usask.ca`|:heavy_check_mark:|The University of Saskatchewan in Canada| -|`hil.no`|:heavy_check_mark:|Lillehammer University College in Norway| -|`unze.ba`|:heavy_check_mark:|University of Zenica in Bosnia and Herzegovina| -|`fu-berlin.de`|:heavy_check_mark:|Free University of Berlin in Germany| -|`ecla.de`|:heavy_check_mark:|ECLA of Bard is a state recognized liberal arts university in Berlin, Germany | -|`bvb.de`|:heavy_multiplication_x:|It's a soccer team from Germany| -|`lsmu.com`|:heavy_check_mark:| Lugansk State Medical University in the Ukraine | - -If 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. - -### See Also - -* [gman](https://github.com/benbalter/gman) - like swot, but for government emails -* [swotphp](https://github.com/mdwheele/swotphp) - PHP port of Swot +### Some universities have their names duplicated in the first and the second line in respective .txt file. Shall I put the university name twice in my .txt file to have the domain added? +No. We have no idea why they put two identical lines into .txt file, it does not make any sense in this repository. However, nothing bad happens if you do it, don't worry. It does not affect our decision on your request. From c9b12a4c1326ee34dae10634ae2db4196d99e1d9 Mon Sep 17 00:00:00 2001 From: Philip Torchinsky Date: Fri, 26 Feb 2016 10:27:21 +0300 Subject: [PATCH 2/6] Update README.md --- README.md | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 4a0225996b..f679819080 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,46 @@ -# Swot :apple: +# swot -JetBrains uses **swot** repository to grant free licenses for JetBrains tools to students and teachers worldwide. If your email is in one of the domains listed in this repository, you are entitled to request your free license from JetBrains. Visit http://jetbrains.com/student to request! +JetBrains uses this **swot** repository to grant free licenses for JetBrains tools to students and teachers worldwide. If your email is in one of the domains listed in this repository, you are entitled to request your free license from JetBrains. Visit http://jetbrains.com/student to request! -There is lib/domains directory which contains hierarcicaly structured list of email domains belonged to various educational institutions. The domains are mostly owned by colleges and universities, and also by groups of schools united together because they are sharing the same email domains between several institutions, such as Township High School District 211 of Cook County, Illinois. +There is `lib/domains` directory which contains hierarcicaly structured list of email domains belonged to various educational institutions. The domains are mostly owned by colleges and universities, and also by groups of schools united together because they are sharing the same email domains between several institutions, such as Township High School District 211 of Cook County, Illinois. If you know a school, college or university which is not in this list, feel free to submit a pull request to add it. -# Which educational institutions can be added to the repository? +## Which educational institutions can be added to the repository? Your pull request for adding a new email domain to the repository will be satisfied if all of the conditions below are met: -1) The domain is used by an educational institution, which offers at least one long-term course (one year or longer), and the course is somehow related to IT (it is in computer science, software engineering, statistics, bioinformatics, etc.) -2) The educational institution has a physically existing location, where students attend classes in classrooms, not over the Internet. In general, we do not include online universities to this repository. +1. The domain is used by an educational institution, which offers at least one long-term course (one year or longer), and the course is somehow related to IT (it is in computer science, software engineering, statistics, bioinformatics, etc.) +2. The educational institution has a physically existing location, where students attend classes in classrooms, not over the Internet. In general, we do not include online universities to this repository. **NOTE:** If an organization provides primary and secondary education only (i.e., no high or higher education programs), it shall not be included into the list. Primary and secondary school students usually do not need professional developer tools, and in case they learn some programming, we are glad to offer them Community versions of the tools, which are free to everybody, such as PyCharm Community Edition, etc. -# How to add a domain to this repository +## How to add a domain to this repository To add a domain, make a pull request. You must be familiar with git tool or GitHub user interface in order to make a pull request. We review your request and merge it (i.e., accept it) if it meets the following rules: -1) Each domain is represented by a single .txt file in the repository. If there is a file lib/domains/edu/mit.txt, it means that e-mail domain `mit.edu` is included into the repository. Please note that the repository uses reverse order of the name components, and also note that .txt extension is mandatory. +1. Each domain is represented by a single `.txt` file in the repository. If there is a file `lib/domains/edu/mit.txt`, it means that e-mail domain `mit.edu` is included into the repository. Please note that the repository uses reverse order of the name components, and also note that **.txt extension is mandatory**. -Example: add file /lib/domains/ng/edu/unaab.txt to add a domain `unaab.edu.ng` to the repository. +Example: add file `/lib/domains/ng/edu/unaab.txt` to add a domain `unaab.edu.ng` to the repository. -2) Pull request can include one or more files which you wish to add. +2. Pull request can include one or more files which you wish to add. -3) Each file in the repository has to contain a name of the university, which the domain represented by the file belongs to. For example, a file /lib/domains/ng/edu/unaab.txt has to contain one line in it: "Federal University of Agriculture, Abeokuta". +3. Each file in the repository has to contain a name of the university, which the domain represented by the file belongs to. For example, a file `/lib/domains/ng/edu/unaab.txt` has to contain a line in it: *"Federal University of Agriculture, Abeokuta"*. First line of the file has to contain an official name of the educational organization. -Other lines can contain other known names of the university. A university in a non-English speaking country can have one line containing the university name in their native language, and one line containing the name in English. +Other lines can contain other known names of the university. A university in a non-English speaking country can have a line containing the university name in their native language, and another line with the name in English. -4) If the domain is shared among several institutions, such a school district domain, please add the last line starting with dot (".") followed by a word "group". Example: -'.group' +4. If the domain is shared among several institutions, such a school district domain, please add the last line starting with dot (`.`) followed by a word "group". Example: +`.group` -# FAQ -### There are many domains in my university, how can I add all of them? -If all the domains used for teachers' and students' email are in the same upper-level domain, you can add the upper-level domain. For example, if there is a domain joedoe.org owned by a university, and there are subdomains such as stud.joedoe.org and prof.joedoe.org, you can add joedoe.org domain, and it will be correct. +## How to change a domain to this repository -However, if the upper-level domain is also used by alumni, research staff, and other people who do not involved into education, we encourage you to add separate subdomins domains, if it is possible. +If a university changes its email domain or name, you can submit a pull request with necessary changes. -### Some universities have their names duplicated in the first and the second line in respective .txt file. Shall I put the university name twice in my .txt file to have the domain added? +## FAQ +#### There are many domains in my university, how can I add all of them? +If all the domains used for teachers' and students' email are in the same upper-level domain, you can add the upper-level domain. For example, if there is a domain `joedoe.org` owned by a university, and there are subdomains such as `stud.joedoe.org` and `prof.joedoe.org`, you can add joedoe.org domain, and both students and teachers will be able to request their free licenses. + +However, if the upper-level domain is also used by alumni, research staff, and other people who do not participate in education directly, we encourage you to add separate subdomains, if it is possible. + +#### Some universities have their names duplicated in the first and the second line in respective .txt file. Shall I put the university name twice in my .txt file to have the domain added? No. We have no idea why they put two identical lines into .txt file, it does not make any sense in this repository. However, nothing bad happens if you do it, don't worry. It does not affect our decision on your request. From 6a8b36bb4ec832f36d18f5cd354eba6b483392f0 Mon Sep 17 00:00:00 2001 From: Philip Torchinsky Date: Fri, 26 Feb 2016 10:29:05 +0300 Subject: [PATCH 3/6] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f679819080..6c3506be69 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,9 @@ If you know a school, college or university which is not in this list, feel free ## Which educational institutions can be added to the repository? Your pull request for adding a new email domain to the repository will be satisfied if all of the conditions below are met: + 1. The domain is used by an educational institution, which offers at least one long-term course (one year or longer), and the course is somehow related to IT (it is in computer science, software engineering, statistics, bioinformatics, etc.) + 2. The educational institution has a physically existing location, where students attend classes in classrooms, not over the Internet. In general, we do not include online universities to this repository. **NOTE:** If an organization provides primary and secondary education only (i.e., no high or higher education programs), it shall not be included into the list. Primary and secondary school students usually do not need professional developer tools, and in case they learn some programming, we are glad to offer them Community versions of the tools, which are free to everybody, such as PyCharm Community Edition, etc. @@ -19,9 +21,7 @@ Your pull request for adding a new email domain to the repository will be satisf To add a domain, make a pull request. You must be familiar with git tool or GitHub user interface in order to make a pull request. We review your request and merge it (i.e., accept it) if it meets the following rules: -1. Each domain is represented by a single `.txt` file in the repository. If there is a file `lib/domains/edu/mit.txt`, it means that e-mail domain `mit.edu` is included into the repository. Please note that the repository uses reverse order of the name components, and also note that **.txt extension is mandatory**. - -Example: add file `/lib/domains/ng/edu/unaab.txt` to add a domain `unaab.edu.ng` to the repository. +1. Each domain is represented by a single `.txt` file in the repository. If there is a file `lib/domains/edu/mit.txt`, it means that e-mail domain `mit.edu` is included into the repository. Please note that the repository uses reverse order of the name components, and also note that **.txt extension is mandatory**. Example: add file `/lib/domains/ng/edu/unaab.txt` to add a domain `unaab.edu.ng` to the repository. 2. Pull request can include one or more files which you wish to add. From 40b2a72b47b286053f63f65835c0986c1ffa7c4b Mon Sep 17 00:00:00 2001 From: Philip Torchinsky Date: Fri, 26 Feb 2016 10:37:38 +0300 Subject: [PATCH 4/6] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6c3506be69..4d8faddec5 100644 --- a/README.md +++ b/README.md @@ -42,5 +42,7 @@ If all the domains used for teachers' and students' email are in the same upper- However, if the upper-level domain is also used by alumni, research staff, and other people who do not participate in education directly, we encourage you to add separate subdomains, if it is possible. -#### Some universities have their names duplicated in the first and the second line in respective .txt file. Shall I put the university name twice in my .txt file to have the domain added? -No. We have no idea why they put two identical lines into .txt file, it does not make any sense in this repository. However, nothing bad happens if you do it, don't worry. It does not affect our decision on your request. +If the university uses several email domains in different upper-level domains (for example, `euroacademia.ee` and `euroacademia.eu`), please submit several different files with the same content (i.e., same name of the university) in your pull request. + +#### Some universities have their names duplicated in the first and the second line in respective .txt file in this repository. Shall I put the university name twice in my .txt file to have the domain added? +No. We have no idea why they put two identical lines into .txt file, it does not make sense in this repository. However, nothing bad happens if you do it, don't worry. It does not affect our decision on your request. From c2be5857beb2b6984a19ba785365e0e5d043d878 Mon Sep 17 00:00:00 2001 From: Philip Torchinsky Date: Fri, 26 Feb 2016 10:39:03 +0300 Subject: [PATCH 5/6] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d8faddec5..916eecd2f1 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Your pull request for adding a new email domain to the repository will be satisf 1. The domain is used by an educational institution, which offers at least one long-term course (one year or longer), and the course is somehow related to IT (it is in computer science, software engineering, statistics, bioinformatics, etc.) -2. The educational institution has a physically existing location, where students attend classes in classrooms, not over the Internet. In general, we do not include online universities to this repository. +2. The educational institution has a physically existing location, where students attend classes in the classrooms. In general, we do not include online universities to this repository. **NOTE:** If an organization provides primary and secondary education only (i.e., no high or higher education programs), it shall not be included into the list. Primary and secondary school students usually do not need professional developer tools, and in case they learn some programming, we are glad to offer them Community versions of the tools, which are free to everybody, such as PyCharm Community Edition, etc. From 3c86df4560d1a809498a6bcb12267442790097bb Mon Sep 17 00:00:00 2001 From: Philip Torchinsky Date: Wed, 2 Mar 2016 13:16:16 +0300 Subject: [PATCH 6/6] Update README.md --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 916eecd2f1..717140e793 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Your pull request for adding a new email domain to the repository will be satisf **NOTE:** If an organization provides primary and secondary education only (i.e., no high or higher education programs), it shall not be included into the list. Primary and secondary school students usually do not need professional developer tools, and in case they learn some programming, we are glad to offer them Community versions of the tools, which are free to everybody, such as PyCharm Community Edition, etc. +If you represent a primary or secondary school and you are certain of the necessity of professional version of a JetBrains tool for your school, please contact JetBrains sales team via https://www.jetbrains.com/support/sales/ + ## How to add a domain to this repository To add a domain, make a pull request. You must be familiar with git tool or GitHub user interface in order to make a pull request. @@ -33,16 +35,18 @@ Other lines can contain other known names of the university. A university in a n `.group` ## How to change a domain to this repository - If a university changes its email domain or name, you can submit a pull request with necessary changes. +## Additional references +Please refer to `CONTRIBUTING.md` file of this repository to read more about repository structure and contributing rules. + ## FAQ #### There are many domains in my university, how can I add all of them? -If all the domains used for teachers' and students' email are in the same upper-level domain, you can add the upper-level domain. For example, if there is a domain `joedoe.org` owned by a university, and there are subdomains such as `stud.joedoe.org` and `prof.joedoe.org`, you can add joedoe.org domain, and both students and teachers will be able to request their free licenses. +If all the domains used for teachers' and students' email are in the same upper-level domain, you can add the upper-level domain. For example, if there is a domain `joedoe.org` owned by a university, and there are subdomains such as `stud.joedoe.org` and `prof.joedoe.org`, used by the students and the teachers respectively, you can add `joedoe.org` domain only, and both students and teachers will be able to request their free licenses. However, if the upper-level domain is also used by alumni, research staff, and other people who do not participate in education directly, we encourage you to add separate subdomains, if it is possible. -If the university uses several email domains in different upper-level domains (for example, `euroacademia.ee` and `euroacademia.eu`), please submit several different files with the same content (i.e., same name of the university) in your pull request. +If the university uses several email domains in different upper-level domains (for example, `euroacademia.ee` and `euroacademia.eu`), please submit several files with different paths and the same content (i.e., same name of the university) in your pull request. #### Some universities have their names duplicated in the first and the second line in respective .txt file in this repository. Shall I put the university name twice in my .txt file to have the domain added? -No. We have no idea why they put two identical lines into .txt file, it does not make sense in this repository. However, nothing bad happens if you do it, don't worry. It does not affect our decision on your request. +No, it's not needed. However, nothing bad happens if you do it, don't worry. It does not affect our decision on your request.