{"id":19533617,"url":"https://github.com/tigerappsorg/tigerapps-course-update-guide","last_synced_at":"2026-01-29T16:35:10.960Z","repository":{"id":87029545,"uuid":"437703580","full_name":"TigerAppsOrg/TigerApps-Course-Update-Guide","owner":"TigerAppsOrg","description":"(very important) Guide for updating course selection apps!","archived":false,"fork":false,"pushed_at":"2024-05-31T02:16:18.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-01T09:18:07.901Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TigerAppsOrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-13T01:50:23.000Z","updated_at":"2024-05-31T02:16:19.000Z","dependencies_parsed_at":"2023-05-30T06:30:29.456Z","dependency_job_id":null,"html_url":"https://github.com/TigerAppsOrg/TigerApps-Course-Update-Guide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TigerAppsOrg/TigerApps-Course-Update-Guide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TigerAppsOrg%2FTigerApps-Course-Update-Guide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TigerAppsOrg%2FTigerApps-Course-Update-Guide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TigerAppsOrg%2FTigerApps-Course-Update-Guide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TigerAppsOrg%2FTigerApps-Course-Update-Guide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TigerAppsOrg","download_url":"https://codeload.github.com/TigerAppsOrg/TigerApps-Course-Update-Guide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TigerAppsOrg%2FTigerApps-Course-Update-Guide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28880980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T02:08:51.722Z","updated_at":"2026-01-29T16:35:10.941Z","avatar_url":"https://github.com/TigerAppsOrg.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# TigerApps Course Update Guide\n\n# TL;DR\n\nNote that it make take some time for each app to reflect new courses on its frontend due to the way things are cached.\n\n**Once per semester:**\n\nTigerPath updates automatically. Just manually verify that it contains the latest courses and/or reflect the new term name (e.g. Spring '25).\n\nTigerSnatch updates course data automatically, but new notification intervals may need to be appended to its spreadsheet. See the [relevant section](#add-new-notifications-intervals-if-necessary) below for steps. Also manually verify that the app contains the latest courses.\n\nPrincetonCourses updates course data automatically, but the course evaluations script must be run manually for the new term. See the [relevant section](#update-course-evaluations) below for steps. Also manually verify that the app contains the latest courses.\n\nSee the [contacts section](#contacts) if you need help.\n\n# TigerSnatch\n\n## Update course data\n\n1. TigerSnatch will automatically update to the new term within 15 minutes of new courses being released.\n   - **Verify** that TigerSnatch has updated to the new term by going to https://tigersnatch.com/dashboard and checking that the new term is shown in the status indicator (upper left), and checking that searching for a course works.\n\n## Add new notifications intervals (if necessary)\n\n1. Go to [this Google Sheet](https://docs.google.com/spreadsheets/d/1iSWihUcWa0yX8MsS_FKC-DuGH75AukdiuAigbSkPm8k/), which controls when TigerSnatch sends notifications for open spots. The sheet is also accessible from the TigerSnatch Admin panel.\n   - You must be given edit access. To gain access, email nicholaspad@princeton.edu.\n2. **Carefully** read the instructions in the sheet titled \"README\".\n3. Switch to the sheet titled \"Data\" and enter new datetime intervals (if already added, verify that they are correct) for each course enrollment period and the add/drop period for the next semester.\n   - Make sure to add a comment in the far-right column for each datetime interval entry.\n4. Wait 10 minutes. TigerSnatch will poll this sheet automatically during that time.\n   - **Verify** that the new datetime intervals have registered by hovering over the \"status\" badge in the upper left of the TigerSnatch website. The last sentence should begin with \"Next notifications period:\".\n\n# TigerJunction\n\n## Update course data\n\nFollow the instructions in the [TigerJunction Update Guide](https://github.com/TigerAppsOrg/tiger-junction/blob/main/UPDATE_GUIDE.md).\n\n# PrincetonCourses\n\n## Update course data\n\n1. PrincetonCourses will automatically update to the new term within 24 hours of new courses being released.\n   - **Verify** that PrincetonCourses has updated to the new term by going to https://princetoncourses.com and checking that the new term has been added to the \"Semester\" dropdown, and checking that searching for a course works.\n\n## Update course evaluations\n\n### One-time setup\n\n1. Create a file named `.env` in the PrincetonCourses source code root directory and enter the following key-values pair (with quotes but without angled brackets):\n   - `MONGODB_URI='\u003cPrincetonCourses production MongoDB connection string\u003e'`\n   - Obtain this URI from the Config Vars section in the PrincetonCourses production web panel in Heroku (go to the Settings tab).\n2. Define the following environment variables through the Terminal (e.g. using `$ conda env config vars set \u003ckey\u003e=\u003cval\u003e`):\n   - `CONSUMER_KEY=\u003cMobileApp API consumer key\u003e`\n   - `CONSUMER_SECRET=\u003cMobileApp API consumer secret\u003e`\n   - Obtain these values from the production Config Vars section as well.\n3. Install the Python `requests` library (e.g. via `pip`).\n\n### Perform update\n\n1. Execute the below command in the PrincetonCourses source code root directory.\n\n```\n$ node importers/scrapeEvaluations.js\n```\n\n2. Follow the instructions printed by the script. Specifically, you'll need to retrieve a cookie value that allows for CAS authentication. After this, when prompted for a MongoDB query, enter: `{\"semester\": xxxx}` where `xxxx` is the term code you want to get reviews from (e.g. 1224), typically 1-2 semesters ago.\n3. Let the script complete (takes about 30 minutes).\n   - **Verify** that new evaluations were scraped by searching for a course (e.g. COS126) on PrincetonCourses and checking that evaluations from the previous term were added.\n\n# Contacts\nContact the following if you need help or if you have questions:\n\n- **General** - it.admin@tigerapps.org\n- **Joshua Lau** - motoaki@princeton.edu\n- **Leo Stepanewk** - leo.stepanewk@princeton.edu","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigerappsorg%2Ftigerapps-course-update-guide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftigerappsorg%2Ftigerapps-course-update-guide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigerappsorg%2Ftigerapps-course-update-guide/lists"}