Private High School: https://nces.ed.gov/surveys/pss/pssdata.asp
Public High School: https://nces.ed.gov/ccd/files.asp#Fiscal:2,LevelId:7,Page:1
College & University: https://ope.ed.gov/dapip/#/download-data-files & https://collegescorecard.ed.gov/data
US Centers of Academic Excellence in Cybersecurity: https://www.caecommunity.org/cae-map
Inside the us_colleges_list directory:
- Run
node download_college_scorecard_database.jsto get College Scorecard Data - Run
./download_dapip_data.shto get all Institution Campuses data - Run
node download_cae_schools.jsto get all CAE designation data - Run the
create_list.jsscript with the InstitutionCampus.csv data from step 2
All logos should be placed in the us_colleges_list/logos/ directory in the filename format: id_school_name.svg. For example, 112093_university_of_hawaii_west_oahu.svg is an acceptable filename where 112093 is the Department of Education DAPIP ID for the University of Hawaii West Oahu. SVG file format is highly encouraged, if no SVG file is available, a high quality PNG is also acceptable. For PNG files, please make sure it is no larger than 1000px in width or height and make sure to compress the PNG via tools such as https://compresspng.com
Logos files are for reference and are solely owned by their respective owners. If the copyright owner does not wish for their logo file to be included in this repository, you may open an issue to request for removal.
Inside the us_highschools_list directory:
- Download the latest year CCD (public schools) directory data from https://nces.ed.gov/ccd/files.asp#Fiscal:2,LevelId:7,Page:1
- Create a table on the ElSi tableGenerator to include total students column and school ID, make sure to select the latest year and include column for total enrollment (e.g. for 2021 - https://nces.ed.gov/ccd/elsi/tableGenerator.aspx?savedTableID=421908)
- Download as CSV
- Download the PSS (private schools) text data from https://nces.ed.gov/surveys/pss/pssdata.asp
- Run the
create_list.jsscript for high school with the CCD directory data, ElSi data, and PSS data
In each directory, there's an exceptions.json which you can add in additional schools. Run create_list.js again to create the list. The final list should be in the dist directory.
When adding new high schools as exceptions, try to obtain the NCES ID of the school district and use the school district's ID as the prefix for the school id. You can use the abbreviation of the school name as the suffix of the school id. (e.g. 4901140CTHS for Career Tech High School, which is in Washington District (4901140))
The default ranking is based on the school's population, but some times large population schools may not necessarily be participating in our events, so we can boost their score by adding their school ID and the boost value (some value less than 10 should suffice, adjust to taste) to the score_boost.json file.
On push to the main branch, GitHub Actions will automatically run and deploy it to the MongoDB server.
To deploy manually, run ingest-to-mongo.js to deploy into the production MongoDB server with the MONGO_URI environmental variable.
{
"mappings": {
"dynamic": true,
"fields": {
"alias": [
{
"dynamic": true,
"type": "document"
},
{
"type": "string"
},
{
"type": "autocomplete"
}
],
"city": [
{
"dynamic": true,
"type": "document"
},
{
"type": "string"
},
{
"type": "autocomplete"
}
],
"domain": [
{
"dynamic": true,
"type": "document"
},
{
"type": "string"
},
{
"type": "autocomplete"
}
],
"name": [
{
"dynamic": true,
"type": "document"
},
{
"type": "string"
},
{
"type": "autocomplete"
}
],
"search": [
{
"dynamic": true,
"type": "document"
},
{
"type": "string"
},
{
"type": "autocomplete"
}
]
}
}
}