Term Plan User interface
Accessing the application
The Term Plan application is intended to be access via the Classrooms@MIT web page which can be accessed at the following URls:
- Dev - https://classrooms-dev.mit.edu
- Test - https://classrooms-test.mit.edu
- Prod - https://classrooms.mit.edu
Term Plan Notification Emails
Term Plan edits can result in notifications based on the subject being edits. The resulting email will include all Term Plan app fields except URL and will display the new value and previous value for any fields that changed. Please refer to the table below for details about the notifications.
# | Notification | Recipient(s) | Other Notes |
---|---|---|---|
1 | Subjects with Scheduling Relationship(s) (SR) | (1) Users with SCHED_DEPT_ADMIN role with a qualifier equal to the department code of any subject with an active SR to the edited subject (2) If the SR subject has an cross-listing(s), users with the SCHED_DEPT_ADMIN role with a qualifier equal to the department code of the cross-listed subject number |
-The notification is not sent if the edited subject and the SR subject are in the same department |
2 | Subjects with Cross-list(s) | Users with SCHED_DEPT_ADMIN role with a qualifier equal to the department code of any cross-listed subject numbers associated with the edited subject |
- |
3 | HASS Subjects | Any users on the hassreq@mit.edu Moira list | - |
4 | COMM Subjects | Any users on the commreq@mit.edu Moira liset | - |
Changing the Term Plan Default Search Year
On the Term Plan search page, users have the option of searching with two academic years (e.g. 2018-2019 and 2019-2020). At the beginning of the proposal cycle, users will generally need to make term plan changes to the current academic year (2018-2019). However, in the April timeframe, most users will not have a need to edit the current year and will start making changes to the following academic year (2019-2020).
The Registrar can set the Term Plan default search year (termPlanDefaultSearchYear) using the SUBCNFG form.
Developer Info
Thin apache proxy
All requests from the UI are routed through an apache server which acts as a thin proxy to the back-end APIs.
The apache server:
- Serves the files that make up the angular application (css, html, js, etc)
- Integrates with Touchstone
- Relays requests to API, appending client id and secret and referred user info
- Exposes endpoints for getting property and user info
Location and configuration
The apache server lives on a virtual machine in our VMWare Cloud. It is managed by the App Delivery team and configured via Puppet.
The puppet config for the non-production tiers can be found at https://github.mit.edu/ops/puppet-environment. File: hiera:nodes: <servername>: common.yaml. Contact the App Delivery team for information about the production configuration.
Test and Production are load balanced between two servers.
/service/apis/user and /service/apis/tier endpoints
Two endpoints are configured directly in the apache configuration.
- The /service/apis/user endpoint returns information provided by Touchstone about the authenticated user
- The /service/apis/tier endpoint returns tier-specific properties to be used by the UI
Architecture diagram
Show/hide diagram
[Image source: https://wikis.mit.edu/confluence/display/EduSys/Thin+Apache+Proxy+Diagram]
Angular application
The documentation for the Term Plan User Interface can be found inside the repository on our Github instance.
Here is an outline of the content:
- Intro
- What is Term Plan app?
- Main technologies in use
- Setting up a local development environment
- Git workflow
- Deployment
- Deployment process
- Deployment tiers
- AngularJS
- Google Polymer
- Making changes to the polymer component
- Prettier codeformatting
- Additional documentation
- Knowledge base
- APIs
- Using HTTP Clients (Postman, Paw) with the APIs
- Improvement opportunities
Subject Management Documentation Index
The Subject Management Documentation Index is the central listing for documentation pertaining to Subject Management.