From b2229ee79b6d346cea142e5009309858c361959f Mon Sep 17 00:00:00 2001
From: Jonathan Johnson <jon.johnson@ucsf.edu>
Date: Tue, 30 Jan 2024 22:13:10 -0800
Subject: [PATCH] Migrate frontend into monorepo

For now the only repo within this monorepo is the frontend itself, but
later we'll be moving everything else in as well. For now get it working
alone.
---
 .dockerignore                                 |   11 -
 .eslintignore                                 |    8 +-
 .eslintrc.js                                  |   14 +-
 .github/workflows/asset-size-check.yml        |   17 -
 .github/workflows/auto-merge.yml              |    1 -
 .github/workflows/ci.yml                      |   10 +-
 .github/workflows/coverage.yml                |   30 -
 .github/workflows/deploy-pr.yml               |    1 +
 .github/workflows/deploy-production.yml       |    4 +-
 .github/workflows/deploy-staging.yml          |    2 +-
 .github/workflows/percy.yml                   |   10 +-
 .github/workflows/tag_version.yaml            |   15 +-
 .gitignore                                    |   33 +-
 .lint-todo                                    |  234 ----
 .stylelintignore                              |    7 +-
 .template-lintrc.js                           |    4 +-
 package.json                                  |  170 +--
 .ember-cli => packages/frontend/.ember-cli    |    0
 packages/frontend/.gitignore                  |   32 +
 .nvmrc => packages/frontend/.nvmrc            |    0
 .../frontend/.prettierignore                  |    0
 .../frontend/.watchmanconfig                  |    0
 .../frontend/app}/adapters/application.js     |    0
 .../frontend/app}/adapters/school.js          |    0
 {app => packages/frontend/app}/app.js         |    0
 {app => packages/frontend/app}/breakpoints.js |    0
 .../app}/classes/resolve-all-values.js        |    0
 .../frontend/app}/components/.gitkeep         |    0
 .../app}/components/assign-students.hbs       |    0
 .../app}/components/assign-students.js        |    0
 .../components/back-to-admin-dashboard.hbs    |    0
 .../app}/components/bulk-new-users.hbs        |    0
 .../app}/components/bulk-new-users.js         |    0
 .../components/competency-title-editor.hbs    |    0
 .../components/competency-title-editor.js     |    0
 .../app}/components/connection-status.hbs     |    0
 .../app}/components/connection-status.js      |    0
 .../app}/components/course-search-result.hbs  |    0
 .../app}/components/course-search-result.js   |    0
 .../app}/components/courses/list-item.hbs     |    0
 .../app}/components/courses/list-item.js      |    0
 .../frontend/app}/components/courses/list.hbs |    0
 .../frontend/app}/components/courses/list.js  |    0
 .../frontend/app}/components/courses/new.hbs  |    0
 .../frontend/app}/components/courses/new.js   |    0
 .../frontend/app}/components/courses/root.hbs |    0
 .../frontend/app}/components/courses/root.js  |    0
 .../leadership-expanded.hbs                   |    0
 .../leadership-expanded.js                    |    0
 .../curriculum-inventory/new-report.hbs       |    0
 .../curriculum-inventory/new-report.js        |    0
 .../new-sequence-block.hbs                    |    0
 .../new-sequence-block.js                     |    0
 .../curriculum-inventory/report-details.hbs   |    0
 .../curriculum-inventory/report-details.js    |    0
 .../curriculum-inventory/report-header.hbs    |    0
 .../curriculum-inventory/report-header.js     |    0
 .../curriculum-inventory/report-list-item.hbs |    0
 .../curriculum-inventory/report-list-item.js  |    0
 .../curriculum-inventory/report-list.hbs      |    0
 .../curriculum-inventory/report-list.js       |    0
 .../curriculum-inventory/report-overview.hbs  |    0
 .../curriculum-inventory/report-overview.js   |    0
 .../curriculum-inventory/report-rollover.hbs  |    0
 .../curriculum-inventory/report-rollover.js   |    0
 .../curriculum-inventory/reports.hbs          |    0
 .../curriculum-inventory/reports.js           |    0
 .../sequence-block-details.hbs                |    0
 .../sequence-block-details.js                 |    0
 .../sequence-block-header.hbs                 |    0
 .../sequence-block-header.js                  |    0
 .../sequence-block-list-item.hbs              |    0
 .../sequence-block-list-item.js               |    0
 .../sequence-block-list.hbs                   |    0
 .../sequence-block-list.js                    |    0
 .../sequence-block-overview.hbs               |    0
 .../sequence-block-overview.js                |    0
 .../sequence-block-session-list.hbs           |    0
 .../sequence-block-session-list.js            |    0
 .../sequence-block-session-manager.hbs        |    0
 .../sequence-block-session-manager.js         |    0
 .../verification-preview-header.hbs           |    0
 .../verification-preview-table1.hbs           |    0
 .../verification-preview-table2.hbs           |    0
 .../verification-preview-table2.js            |    0
 .../verification-preview-table3a.hbs          |    0
 .../verification-preview-table3b.hbs          |    0
 .../verification-preview-table4.hbs           |    0
 .../verification-preview-table4.js            |    0
 .../verification-preview-table5.hbs           |    0
 .../verification-preview-table5.js            |    0
 .../verification-preview-table6.hbs           |    0
 .../verification-preview-table6.js            |    0
 .../verification-preview-table7.hbs           |    0
 .../verification-preview-table7.js            |    0
 .../verification-preview-table8.hbs           |    0
 .../verification-preview.hbs                  |    0
 .../verification-preview.js                   |    0
 .../app}/components/dashboard-loading.hbs     |    0
 .../app}/components/error-display.hbs         |    0
 .../frontend/app}/components/error-display.js |    0
 .../app}/components/flash-messages.hbs        |    0
 .../app}/components/flash-messages.js         |    0
 .../app}/components/global-search-box.hbs     |    0
 .../app}/components/global-search-box.js      |    0
 .../app}/components/global-search-tags.hbs    |    0
 .../app}/components/global-search.hbs         |    0
 .../frontend/app}/components/global-search.js |    0
 .../frontend/app}/components/ilios-header.hbs |    0
 .../frontend/app}/components/ilios-header.js  |    0
 .../app}/components/ilios-navigation.hbs      |    0
 .../app}/components/ilios-navigation.js       |    0
 .../frontend/app}/components/ilios-users.hbs  |    0
 .../frontend/app}/components/ilios-users.js   |    0
 .../components/instructor-group/courses.hbs   |    0
 .../components/instructor-group/header.hbs    |    0
 .../components/instructor-group/header.js     |    0
 .../instructor-group/instructor-manager.hbs   |    0
 .../app}/components/instructor-group/root.hbs |    0
 .../components/instructor-group/users.hbs     |    0
 .../app}/components/instructor-group/users.js |    0
 .../instructor-groups/list-item.hbs           |    0
 .../components/instructor-groups/list-item.js |    0
 .../components/instructor-groups/list.hbs     |    0
 .../app}/components/instructor-groups/list.js |    0
 .../components/instructor-groups/loading.hbs  |    0
 .../app}/components/instructor-groups/new.hbs |    0
 .../app}/components/instructor-groups/new.js  |    0
 .../components/instructor-groups/root.hbs     |    0
 .../app}/components/instructor-groups/root.js |    0
 .../learner-group/bulk-assignment.hbs         |    0
 .../learner-group/bulk-assignment.js          |    0
 .../learner-group/bulk-finalize-users.hbs     |    0
 .../learner-group/bulk-finalize-users.js      |    0
 .../learner-group/bulk-group-matcher.hbs      |    0
 .../learner-group/bulk-group-matcher.js       |    0
 .../components/learner-group/calendar.hbs     |    0
 .../app}/components/learner-group/calendar.js |    0
 .../learner-group/cohort-user-manager.hbs     |    0
 .../learner-group/cohort-user-manager.js      |    0
 .../app}/components/learner-group/header.hbs  |    0
 .../app}/components/learner-group/header.js   |    0
 .../instructor-group-members-list.hbs         |    0
 .../instructor-group-members-list.js          |    0
 .../learner-group/instructor-manager.hbs      |    0
 .../learner-group/instructor-manager.js       |    0
 .../components/learner-group/list-item.hbs    |    0
 .../components/learner-group/list-item.js     |    0
 .../app}/components/learner-group/list.hbs    |    0
 .../app}/components/learner-group/list.js     |    0
 .../app}/components/learner-group/members.hbs |    0
 .../app}/components/learner-group/members.js  |    0
 .../components/learner-group/new-multiple.hbs |    0
 .../components/learner-group/new-multiple.js  |    0
 .../components/learner-group/new-single.hbs   |    0
 .../components/learner-group/new-single.js    |    0
 .../app}/components/learner-group/new.hbs     |    0
 .../app}/components/learner-group/new.js      |    0
 .../app}/components/learner-group/root.hbs    |    0
 .../app}/components/learner-group/root.js     |    0
 .../components/learner-group/upload-data.hbs  |    0
 .../components/learner-group/upload-data.js   |    0
 .../components/learner-group/user-manager.hbs |    0
 .../components/learner-group/user-manager.js  |    0
 .../app}/components/learner-groups/root.hbs   |    0
 .../app}/components/learner-groups/root.js    |    0
 .../app}/components/link-to-with-action.hbs   |    0
 .../app}/components/link-to-with-action.js    |    0
 .../app}/components/locale-chooser.hbs        |    0
 .../app}/components/locale-chooser.js         |    0
 .../frontend/app}/components/login-form.hbs   |    0
 .../frontend/app}/components/login-form.js    |    0
 .../app}/components/manage-users-summary.hbs  |    0
 .../app}/components/manage-users-summary.js   |    0
 .../frontend/app}/components/my-profile.hbs   |    0
 .../frontend/app}/components/my-profile.js    |    0
 .../app}/components/new-competency.hbs        |    0
 .../app}/components/new-competency.js         |    0
 .../app}/components/new-directory-user.hbs    |    0
 .../app}/components/new-directory-user.js     |    0
 .../frontend/app}/components/new-user.hbs     |    0
 .../frontend/app}/components/new-user.js      |    0
 .../app}/components/pagination-links.hbs      |    0
 .../app}/components/pagination-links.js       |    0
 .../components/pending-single-user-update.hbs |    0
 .../components/pending-single-user-update.js  |    0
 .../components/pending-updates-summary.hbs    |    0
 .../components/pending-updates-summary.js     |    0
 .../program-year/collapsed-objectives.hbs     |    0
 .../program-year/collapsed-objectives.js      |    0
 .../components/program-year/competencies.hbs  |    0
 .../components/program-year/competencies.js   |    0
 .../program-year/competency-list-item.hbs     |    0
 .../program-year/competency-list-item.js      |    0
 .../app}/components/program-year/courses.hbs  |    0
 .../app}/components/program-year/courses.js   |    0
 .../app}/components/program-year/details.hbs  |    0
 .../app}/components/program-year/header.hbs   |    0
 .../app}/components/program-year/header.js    |    0
 .../program-year/leadership-expanded.hbs      |    0
 .../program-year/leadership-expanded.js       |    0
 .../components/program-year/list-item.hbs     |    0
 .../app}/components/program-year/list-item.js |    0
 .../app}/components/program-year/list.hbs     |    0
 .../app}/components/program-year/list.js      |    0
 .../manage-objective-competency.hbs           |    0
 .../manage-objective-descriptors.hbs          |    0
 .../managed-competency-list-item.hbs          |    0
 .../managed-competency-list-item.js           |    0
 .../app}/components/program-year/new.hbs      |    0
 .../app}/components/program-year/new.js       |    0
 .../objective-list-item-competency.hbs        |    0
 .../objective-list-item-descriptors.hbs       |    0
 .../objective-list-item-expanded.hbs          |    0
 .../objective-list-item-expanded.js           |    0
 .../program-year/objective-list-item.hbs      |    0
 .../program-year/objective-list-item.js       |    0
 .../program-year/objective-list-loading.hbs   |    0
 .../program-year/objective-list.hbs           |    0
 .../components/program-year/objective-list.js |    0
 .../components/program-year/objectives.hbs    |    0
 .../components/program-year/objectives.js     |    0
 .../app}/components/program-year/overview.hbs |    0
 .../program-year/visualize-objectives.hbs     |    0
 .../app}/components/program/header.hbs        |    0
 .../app}/components/program/header.js         |    0
 .../program/leadership-expanded.hbs           |    0
 .../components/program/leadership-expanded.js |    0
 .../frontend/app}/components/program/new.hbs  |    0
 .../frontend/app}/components/program/new.js   |    0
 .../app}/components/program/overview.hbs      |    0
 .../app}/components/program/overview.js       |    0
 .../frontend/app}/components/program/root.hbs |    0
 .../app}/components/programs/list-item.hbs    |    0
 .../app}/components/programs/list-item.js     |    0
 .../app}/components/programs/list.hbs         |    0
 .../app}/components/programs/root.hbs         |    0
 .../frontend/app}/components/programs/root.js |    0
 .../app}/components/reports/list-loading.hbs  |    0
 .../frontend/app}/components/reports/list.hbs |    0
 .../frontend/app}/components/reports/list.js  |    0
 .../app}/components/reports/new-subject.hbs   |    0
 .../app}/components/reports/new-subject.js    |    0
 .../frontend/app}/components/reports/root.hbs |    0
 .../components/reports/subject-results.hbs    |    0
 .../components/reports/subject-results.js     |    0
 .../app}/components/reports/subject.hbs       |    0
 .../app}/components/reports/subject.js        |    0
 .../components/reports/subject/competency.hbs |    0
 .../components/reports/subject/competency.js  |    0
 .../components/reports/subject/course.hbs     |    0
 .../app}/components/reports/subject/course.js |    0
 .../reports/subject/instructor-group.hbs      |    0
 .../reports/subject/instructor-group.js       |    0
 .../components/reports/subject/instructor.hbs |    0
 .../components/reports/subject/instructor.js  |    0
 .../reports/subject/learning-material.hbs     |    0
 .../reports/subject/learning-material.js      |    0
 .../components/reports/subject/mesh-term.hbs  |    0
 .../components/reports/subject/mesh-term.js   |    0
 .../reports/subject/new/competency.hbs        |    0
 .../reports/subject/new/competency.js         |    0
 .../components/reports/subject/new/course.hbs |    0
 .../components/reports/subject/new/course.js  |    0
 .../reports/subject/new/instructor-group.hbs  |    0
 .../reports/subject/new/instructor-group.js   |    0
 .../reports/subject/new/instructor.hbs        |    0
 .../reports/subject/new/instructor.js         |    0
 .../reports/subject/new/learning-material.hbs |    0
 .../reports/subject/new/learning-material.js  |    0
 .../reports/subject/new/mesh-term.hbs         |    0
 .../reports/subject/new/mesh-term.js          |    0
 .../reports/subject/new/program-year.hbs      |    0
 .../reports/subject/new/program-year.js       |    0
 .../reports/subject/new/program.hbs           |    0
 .../components/reports/subject/new/program.js |    0
 .../reports/subject/new/search/input.hbs      |    0
 .../reports/subject/new/search/input.js       |    0
 .../reports/subject/new/session-type.hbs      |    0
 .../reports/subject/new/session-type.js       |    0
 .../reports/subject/new/session.hbs           |    0
 .../components/reports/subject/new/session.js |    0
 .../components/reports/subject/new/term.hbs   |    0
 .../components/reports/subject/new/term.js    |    0
 .../reports/subject/program-year.hbs          |    0
 .../reports/subject/program-year.js           |    0
 .../components/reports/subject/program.hbs    |    0
 .../components/reports/subject/program.js     |    0
 .../reports/subject/session-type.hbs          |    0
 .../reports/subject/session-type.js           |    0
 .../components/reports/subject/session.hbs    |    0
 .../components/reports/subject/session.js     |    0
 .../app}/components/reports/subject/term.hbs  |    0
 .../app}/components/reports/subject/term.js   |    0
 .../app}/components/reports/table-row.hbs     |    0
 .../app}/components/reports/table.hbs         |    0
 .../frontend/app}/components/reports/table.js |    0
 .../school-competencies-collapsed.hbs         |    0
 .../school-competencies-collapsed.js          |    0
 .../school-competencies-expanded.hbs          |    0
 .../school-competencies-expanded.js           |    0
 .../school-competencies-list-item-pcrs.hbs    |    0
 .../school-competencies-list-item-pcrs.js     |    0
 .../school-competencies-list-item.hbs         |    0
 .../school-competencies-list-item.js          |    0
 .../components/school-competencies-list.hbs   |    0
 .../components/school-competencies-list.js    |    0
 .../school-competencies-manager.hbs           |    0
 .../components/school-competencies-manager.js |    0
 .../school-competencies-pcrs-mapper.hbs       |    0
 ...rriculum-inventory-institution-details.hbs |    0
 ...rriculum-inventory-institution-manager.hbs |    0
 ...urriculum-inventory-institution-manager.js |    0
 .../components/school-leadership-expanded.hbs |    0
 .../components/school-leadership-expanded.js  |    0
 .../frontend/app}/components/school-list.hbs  |    0
 .../frontend/app}/components/school-list.js   |    0
 .../app}/components/school-manager.hbs        |    0
 .../app}/components/school-manager.js         |    0
 .../components/school-new-vocabulary-form.hbs |    0
 .../components/school-new-vocabulary-form.js  |    0
 .../school-session-attributes-collapsed.hbs   |    0
 .../school-session-attributes-expanded.hbs    |    0
 .../school-session-attributes-expanded.js     |    0
 .../school-session-attributes-manager.hbs     |    0
 .../components/school-session-attributes.hbs  |    0
 .../components/school-session-attributes.js   |    0
 .../components/school-session-type-form.hbs   |    0
 .../components/school-session-type-form.js    |    0
 .../school-session-type-manager.hbs           |    0
 .../components/school-session-type-manager.js |    0
 .../school-session-types-collapsed.hbs        |    0
 .../school-session-types-collapsed.js         |    0
 .../school-session-types-expanded.hbs         |    0
 .../school-session-types-expanded.js          |    0
 .../school-session-types-list-item.hbs        |    0
 .../school-session-types-list-item.js         |    0
 .../components/school-session-types-list.hbs  |    0
 .../school-vocabularies-collapsed.hbs         |    0
 .../school-vocabularies-collapsed.js          |    0
 .../school-vocabularies-expanded.hbs          |    0
 .../school-vocabularies-expanded.js           |    0
 .../components/school-vocabularies-list.hbs   |    0
 .../components/school-vocabularies-list.js    |    0
 .../components/school-vocabulary-manager.hbs  |    0
 .../components/school-vocabulary-manager.js   |    0
 .../components/school-vocabulary-new-term.hbs |    0
 .../components/school-vocabulary-new-term.js  |    0
 .../school-vocabulary-term-manager.hbs        |    0
 .../school-vocabulary-term-manager.js         |    0
 .../session-type-visualize-vocabularies.hbs   |    0
 .../session-type-visualize-vocabulary.hbs     |    0
 .../visualizer-session-type-vocabularies.hbs  |    0
 .../visualizer-session-type-vocabularies.js   |    0
 .../visualizer-session-type-vocabulary.hbs    |    0
 .../visualizer-session-type-vocabulary.js     |    0
 .../unassigned-students-summary.hbs           |    0
 .../components/unassigned-students-summary.js |    0
 .../app}/components/update-notification.hbs   |    0
 .../app}/components/update-notification.js    |    0
 .../frontend/app}/components/user-list.hbs    |    0
 .../frontend/app}/components/user-menu.hbs    |    0
 .../frontend/app}/components/user-menu.js     |    0
 .../app}/components/user-profile-bio.hbs      |    0
 .../app}/components/user-profile-bio.js       |    0
 .../app}/components/user-profile-calendar.hbs |    0
 .../app}/components/user-profile-calendar.js  |    0
 .../user-profile-cohorts-details.hbs          |    0
 .../user-profile-cohorts-details.js           |    0
 .../user-profile-cohorts-manager.hbs          |    0
 .../user-profile-cohorts-manager.js           |    0
 .../app}/components/user-profile-cohorts.hbs  |    0
 .../app}/components/user-profile-cohorts.js   |    0
 .../app}/components/user-profile-ics.hbs      |    0
 .../app}/components/user-profile-ics.js       |    0
 .../components/user-profile-permissions.hbs   |    0
 .../components/user-profile-permissions.js    |    0
 .../app}/components/user-profile-roles.hbs    |    0
 .../app}/components/user-profile-roles.js     |    0
 .../frontend/app}/components/user-profile.hbs |    0
 .../frontend/app}/components/user-profile.js  |    0
 .../components/user-profile/learner-group.hbs |    0
 .../components/user-profile/learner-group.js  |    0
 .../user-profile/learner-groups.hbs           |    0
 .../visualizer-program-year-objectives.hbs    |    0
 .../visualizer-program-year-objectives.js     |    0
 .../frontend/app}/components/yes-no.hbs       |    0
 .../app}/controllers/admin-dashboard.js       |    0
 .../frontend/app}/controllers/application.js  |    0
 .../app}/controllers/assign-students.js       |    0
 .../frontend/app}/controllers/courses.js      |    0
 .../curriculum-inventory-report/index.js      |    0
 .../curriculum-inventory-report/rollover.js   |    0
 .../curriculum-inventory-reports.js           |    0
 .../curriculum-inventory-sequence-block.js    |    0
 .../app}/controllers/dashboard/calendar.js    |    0
 .../app}/controllers/dashboard/materials.js   |    0
 .../frontend/app}/controllers/error.js        |    0
 .../app}/controllers/instructor-groups.js     |    0
 .../app}/controllers/learner-group.js         |    0
 .../app}/controllers/learner-groups.js        |    0
 .../frontend/app}/controllers/myprofile.js    |    0
 .../app}/controllers/pending-user-updates.js  |    0
 .../app}/controllers/program-year/index.js    |    0
 .../frontend/app}/controllers/program.js      |    0
 .../frontend/app}/controllers/reports.js      |    0
 .../frontend/app}/controllers/school.js       |    0
 .../frontend/app}/controllers/search.js       |    0
 .../app}/controllers/subject-report.js        |    0
 .../frontend/app}/controllers/user.js         |    0
 .../frontend/app}/controllers/users.js        |    0
 .../frontend/app}/helpers/.gitkeep            |    0
 .../app}/helpers/pcrs-uri-to-number.js        |    0
 {app => packages/frontend/app}/index.html     |    0
 .../frontend/app}/initializers/inflector.js   |    0
 .../app}/initializers/metrics-imports.js      |    0
 .../frontend/app}/mixins/live-search-item.js  |    0
 .../frontend/app}/models/.gitkeep             |    0
 {app => packages/frontend/app}/router.js      |    0
 .../frontend/app}/routes/admin-dashboard.js   |    0
 .../frontend/app}/routes/application.js       |    0
 .../frontend/app}/routes/assign-students.js   |    0
 .../frontend/app}/routes/courses.js           |    0
 .../routes/curriculum-inventory-report.js     |    0
 .../curriculum-inventory-report/index.js      |    0
 .../curriculum-inventory-report/rollover.js   |    0
 .../routes/curriculum-inventory-reports.js    |    0
 .../curriculum-inventory-sequence-block.js    |    0
 .../frontend/app}/routes/dashboard.js         |    0
 .../app}/routes/dashboard/activities.js       |    0
 .../app}/routes/dashboard/calendar.js         |    0
 .../frontend/app}/routes/dashboard/index.js   |    0
 .../app}/routes/dashboard/materials.js        |    0
 .../frontend/app}/routes/dashboard/week.js    |    0
 .../frontend/app}/routes/index.js             |    0
 .../frontend/app}/routes/instructor-group.js  |    0
 .../frontend/app}/routes/instructor-groups.js |    0
 .../frontend/app}/routes/learner-group.js     |    0
 .../frontend/app}/routes/learner-groups.js    |    0
 .../frontend/app}/routes/login.js             |    0
 .../frontend/app}/routes/logout.js            |    0
 .../frontend/app}/routes/myprofile.js         |    0
 .../app}/routes/pending-user-updates.js       |    0
 .../program-year-visualize-objectives.js      |    0
 .../frontend/app}/routes/program-year.js      |    0
 .../app}/routes/program-year/index.js         |    0
 .../frontend/app}/routes/program.js           |    0
 .../frontend/app}/routes/program/index.js     |    0
 .../app}/routes/program/publication-check.js  |    0
 .../frontend/app}/routes/programs.js          |    0
 .../frontend/app}/routes/reports.js           |    0
 .../frontend/app}/routes/school.js            |    0
 .../frontend/app}/routes/schools.js           |    0
 .../frontend/app}/routes/search.js            |    0
 .../session-type-visualize-vocabularies.js    |    0
 .../session-type-visualize-vocabulary.js      |    0
 .../frontend/app}/routes/subject-report.js    |    0
 {app => packages/frontend/app}/routes/user.js |    0
 .../frontend/app}/routes/users.js             |    0
 .../app}/routes/verification-preview.js       |    0
 {app => packages/frontend/app}/sentry.js      |    0
 .../frontend/app}/services/data-loader.js     |    0
 .../frontend/app}/services/graphql.js         |    0
 .../frontend/app}/services/ilios-metrics.js   |    0
 .../frontend/app}/services/page-title.js      |    0
 .../frontend/app}/services/reporting.js       |    0
 .../frontend/app}/services/session.js         |    0
 .../app}/session-stores/application.js        |    0
 .../frontend/app}/styles/app.scss             |    0
 .../frontend/app}/styles/components.scss      |    0
 .../styles/components/admin-dashboard.scss    |    0
 .../styles/components/api-version-check.scss  |    0
 .../styles/components/assign-students.scss    |    0
 .../components/back-to-admin-dashboard.scss   |    0
 .../styles/components/bulk-new-users.scss     |    0
 .../styles/components/connection-status.scss  |    0
 .../components/course-director-manager.scss   |    0
 .../components/course-search-result.scss      |    0
 .../styles/components/courses/list-item.scss  |    0
 .../app}/styles/components/courses/list.scss  |    0
 .../app}/styles/components/courses/new.scss   |    0
 .../app}/styles/components/courses/root.scss  |    0
 .../leadership-expanded.scss                  |    0
 .../curriculum-inventory/new-report.scss      |    0
 .../new-sequence-block.scss                   |    0
 .../curriculum-inventory/report-details.scss  |    0
 .../curriculum-inventory/report-header.scss   |    0
 .../curriculum-inventory/report-overview.scss |    0
 .../curriculum-inventory/report-rollover.scss |    0
 .../curriculum-inventory/reports-list.scss    |    0
 .../sequence-block-header.scss                |    0
 .../sequence-block-list.scss                  |    0
 .../sequence-block-overview.scss              |    0
 .../sequence-block-session-manager.scss       |    0
 .../verification-preview-header.scss          |    0
 .../verification-preview-table1.scss          |    0
 .../verification-preview-table2.scss          |    0
 .../verification-preview-table3a.scss         |    0
 .../verification-preview-table3b.scss         |    0
 .../verification-preview-table4.scss          |    0
 .../verification-preview-table5.scss          |    0
 .../verification-preview-table6.scss          |    0
 .../verification-preview-table7.scss          |    0
 .../verification-preview-table8.scss          |    0
 .../verification-preview.scss                 |    0
 .../styles/components/dashboard-loading.scss  |    0
 .../app}/styles/components/error.scss         |    0
 .../app}/styles/components/filter-tools.scss  |    0
 .../styles/components/flash-messages.scss     |    0
 .../styles/components/global-search-box.scss  |    0
 .../app}/styles/components/global-search.scss |    0
 .../app}/styles/components/ilios-footer.scss  |    0
 .../app}/styles/components/ilios-header.scss  |    0
 .../app}/styles/components/ilios-logo.scss    |    0
 .../styles/components/ilios-navigation.scss   |    0
 .../app}/styles/components/ilios-users.scss   |    0
 .../components/instructor-group/courses.scss  |    0
 .../components/instructor-group/header.scss   |    0
 .../instructor-group/instructor-manager.scss  |    0
 .../components/instructor-group/root.scss     |    0
 .../components/instructor-group/users.scss    |    0
 .../components/instructor-groups/loading.scss |    0
 .../components/instructor-groups/new.scss     |    0
 .../components/instructor-groups/root.scss    |    0
 .../learner-group/bulk-assignment.scss        |    0
 .../components/learner-group/calendar.scss    |    0
 .../learner-group/cohort-user-manager.scss    |    0
 .../components/learner-group/header.scss      |    0
 .../instructor-group-members-list.scss        |    0
 .../learner-group/instructor-manager.scss     |    0
 .../components/learner-group/members.scss     |    0
 .../styles/components/learner-group/new.scss  |    0
 .../styles/components/learner-group/root.scss |    0
 .../learner-group/user-manager.scss           |    0
 .../components/learner-groups/root.scss       |    0
 .../styles/components/locale-chooser.scss     |    0
 .../app}/styles/components/login-form.scss    |    0
 .../components/manage-users-summary.scss      |    0
 .../app}/styles/components/my-profile.scss    |    0
 .../styles/components/new-directory-user.scss |    0
 .../app}/styles/components/new-user.scss      |    0
 .../styles/components/pagination-links.scss   |    0
 .../pending-single-user-updates.scss          |    0
 .../components/pending-user-updates.scss      |    0
 .../program-leadership-expanded.scss          |    0
 .../styles/components/program-overview.scss   |    0
 .../components/program-publication-check.scss |    0
 .../program-year/collapsed-objectives.scss    |    0
 .../components/program-year/competencies.scss |    0
 .../components/program-year/courses.scss      |    0
 .../program-year/leadership-expanded.scss     |    0
 .../styles/components/program-year/list.scss  |    0
 .../manage-objective-competency.scss          |    0
 .../manage-objective-descriptors.scss         |    0
 .../styles/components/program-year/new.scss   |    0
 .../objective-list-item-competency.scss       |    0
 .../objective-list-item-descriptors.scss      |    0
 .../objective-list-item-expanded.scss         |    0
 .../program-year/objective-list.scss          |    0
 .../components/program-year/objectives.scss   |    0
 .../program-year/visualize-objectives.scss    |    0
 .../styles/components/program/header.scss     |    0
 .../app}/styles/components/program/new.scss   |    0
 .../app}/styles/components/program/root.scss  |    0
 .../styles/components/programs/list-item.scss |    0
 .../app}/styles/components/programs/list.scss |    0
 .../app}/styles/components/programs/root.scss |    0
 .../components/programyear-details.scss       |    0
 .../styles/components/programyear-header.scss |    0
 .../components/programyear-overview.scss      |    0
 .../components/reports/list-loading.scss      |    0
 .../components/reports/new-subject.scss       |    0
 .../app}/styles/components/reports/root.scss  |    0
 .../styles/components/reports/subject.scss    |    0
 .../styles/components/reports/subjects.scss   |    0
 .../school-competencies-collapsed.scss        |    0
 .../school-competencies-expanded.scss         |    0
 .../components/school-competencies-list.scss  |    0
 .../school-competencies-manager.scss          |    0
 .../school-competencies-pcrs-mapper.scss      |    0
 ...riculum-inventory-institution-details.scss |    0
 ...riculum-inventory-institution-manager.scss |    0
 .../school-leadership-expanded.scss           |    0
 .../app}/styles/components/school-list.scss   |    0
 .../styles/components/school-manager.scss     |    0
 .../school-new-vocabulary-form.scss           |    0
 .../school-session-attributes-collapsed.scss  |    0
 .../school-session-attributes-expanded.scss   |    0
 .../components/school-session-type-form.scss  |    0
 .../school-session-type-manager.scss          |    0
 .../school-session-types-collapsed.scss       |    0
 .../school-session-types-expanded.scss        |    0
 .../school-session-types-list-item.scss       |    0
 .../components/school-session-types-list.scss |    0
 .../school-vocabularies-collapsed.scss        |    0
 .../school-vocabularies-expanded.scss         |    0
 .../components/school-vocabularies-list.scss  |    0
 .../components/school-vocabulary-manager.scss |    0
 .../school-vocabulary-new-term.scss           |    0
 .../school-vocabulary-term-manager.scss       |    0
 .../session-type-visualize-vocabularies.scss  |    0
 .../session-type-visualize-vocabulary.scss    |    0
 .../visualizer-session-type-vocabularies.scss |    0
 .../visualizer-session-type-vocabulary.scss   |    0
 .../components/simple-chart-tooltip.scss      |    0
 .../unassigned-students-summary.scss          |    0
 .../components/update-notification.scss       |    0
 .../app}/styles/components/user-menu.scss     |    0
 .../styles/components/user-profile-bio.scss   |    0
 .../components/user-profile-calendar.scss     |    0
 .../components/user-profile-cohorts.scss      |    0
 .../components/user-profile-loading.scss      |    0
 .../components/user-profile-permissions.scss  |    0
 .../styles/components/user-profile-roles.scss |    0
 .../components/user-profile-schools.scss      |    0
 .../app}/styles/components/user-profile.scss  |    0
 .../visualizer-program-year-objectives.scss   |    0
 .../app}/styles/components/weekly-events.scss |    0
 .../frontend/app}/styles/layout/_layout.scss  |    0
 .../app}/styles/layout/_noscript.scss         |    0
 .../frontend/app}/styles/mixins.scss          |    0
 .../app}/styles/mixins/admin-blocks.scss      |    0
 .../frontend/app}/styles/mixins/clearfix.scss |    0
 .../app}/styles/mixins/header-menu.scss       |    0
 .../app}/styles/mixins/main-list.scss         |    0
 .../mixins/verification-preview-table.scss    |    0
 .../app}/templates/admin-dashboard.hbs        |    0
 .../frontend/app}/templates/application.hbs   |    0
 .../app}/templates/assign-students.hbs        |    0
 .../frontend/app}/templates/courses.hbs       |    0
 .../templates/curriculum-inventory-report.hbs |    0
 .../curriculum-inventory-report/index.hbs     |    0
 .../curriculum-inventory-report/rollover.hbs  |    0
 .../curriculum-inventory-reports.hbs          |    0
 .../curriculum-inventory-sequence-block.hbs   |    0
 .../app}/templates/dashboard-loading.hbs      |    0
 .../frontend/app}/templates/dashboard.hbs     |    0
 .../frontend/app}/templates/error.hbs         |    0
 .../frontend/app}/templates/four-oh-four.hbs  |    0
 .../app}/templates/instructor-group.hbs       |    0
 .../app}/templates/instructor-groups.hbs      |    0
 .../frontend/app}/templates/learner-group.hbs |    0
 .../app}/templates/learner-groups.hbs         |    0
 .../frontend/app}/templates/login.hbs         |    0
 .../frontend/app}/templates/logout.hbs        |    0
 .../frontend/app}/templates/myprofile.hbs     |    0
 .../app}/templates/pending-user-updates.hbs   |    0
 .../program-year-visualize-objectives.hbs     |    0
 .../frontend/app}/templates/program-year.hbs  |    0
 .../app}/templates/program-year/index.hbs     |    0
 .../frontend/app}/templates/program.hbs       |    0
 .../frontend/app}/templates/program/index.hbs |    0
 .../templates/program/publication-check.hbs   |    0
 .../frontend/app}/templates/programs.hbs      |    0
 .../frontend/app}/templates/reports.hbs       |    0
 .../frontend/app}/templates/school.hbs        |    0
 .../frontend/app}/templates/schools.hbs       |    0
 .../frontend/app}/templates/search.hbs        |    0
 .../session-type-visualize-vocabularies.hbs   |    0
 .../session-type-visualize-vocabulary.hbs     |    0
 .../app}/templates/subject-report.hbs         |    0
 .../frontend/app}/templates/user.hbs          |    0
 .../frontend/app}/templates/users.hbs         |    0
 .../app}/templates/verification-preview.hbs   |    0
 .../app}/utils/clone-learner-group.js         |    0
 .../frontend/app}/utils/count-digits.js       |    0
 .../app}/utils/create-download-file.js        |    0
 .../frontend/app}/utils/launch-worker.js      |    0
 .../frontend/app}/utils/pcrs-uri-to-number.js |    0
 .../frontend/app}/utils/random-string.js      |    0
 .../frontend/app}/utils/readable-file-size.js |    0
 .../frontend/app}/utils/sort-cohorts.js       |    0
 .../frontend/config}/coverage.js              |    0
 .../frontend/config}/dependency-lint.js       |    0
 .../frontend/config}/deploy.js                |    0
 .../frontend/config}/deprecation-workflow.js  |    0
 .../frontend/config}/ember-cli-update.json    |    0
 .../frontend/config}/ember-intl.js            |    0
 .../frontend/config}/ember-try.js             |    0
 .../frontend/config}/environment.js           |    0
 {config => packages/frontend/config}/icons.js |    0
 .../frontend/config}/manifest.js              |    0
 .../frontend/config}/optional-features.json   |    0
 .../frontend/config}/targets.js               |    0
 .../frontend/ember-cli-build.js               |    0
 {lib => packages/frontend/lib}/.eslintrc.js   |    0
 .../frontend/lib}/ilios-error/index.js        |    0
 .../frontend/lib}/ilios-error/package.json    |    0
 .../lib}/ilios-error/public/style.css         |    0
 .../frontend/lib}/ilios-loading/index.js      |    0
 .../frontend/lib}/ilios-loading/package.json  |    0
 .../ilios-loading/public/display-loader.js    |    0
 .../public/remove-loader-tests.js             |    0
 .../frontend/lib}/images/sunburst-icon.svg    |    0
 .../frontend/lib}/images/sunburst.svg         |    0
 .../frontend/mirage}/config.js                |    0
 packages/frontend/package.json                |  164 +++
 .../frontend/public}/_redirects               |    0
 .../public}/assets/images/ilios-logo.svg      |    0
 .../assets/images/select-down-arrow.png       |  Bin
 .../frontend/public}/crossdomain.xml          |    0
 .../frontend/public}/favicon.ico              |  Bin
 .../frontend/public}/fontawesome/brands.svg   |    0
 .../frontend/public}/fontawesome/regular.svg  |    0
 .../frontend/public}/fontawesome/solid.svg    |    0
 .../frontend/public}/robots.txt               |    0
 {public => packages/frontend/public}/sw.js    |    0
 .../frontend/testem.browserstack.js           |    0
 testem.js => packages/frontend/testem.js      |    0
 .../frontend/tests}/acceptance/admin-test.js  |    0
 .../acceptance/api-version-notice-test.js     |    0
 .../tests}/acceptance/assignstudents-test.js  |    0
 .../tests}/acceptance/courses-test.js         |    0
 .../curriculum-inventory/leadership-test.js   |    0
 .../nested-sequence-blocks-test.js            |    0
 .../curriculum-inventory/report-test.js       |    0
 .../curriculum-inventory/reports-test.js      |    0
 .../curriculum-inventory/rollover-test.js     |    0
 .../sequence-blocks-test.js                   |    0
 .../dashboard/accessibility-test.js           |    0
 .../frontend/tests}/acceptance/events-test.js |    0
 .../frontend/tests}/acceptance/footer-test.js |    0
 .../tests}/acceptance/four-oh-four-test.js    |    0
 .../frontend/tests}/acceptance/header-test.js |    0
 .../tests}/acceptance/instructorgroup-test.js |    0
 .../acceptance/instructorgroups-test.js       |    0
 .../learner-group/bulk-assignment-test.js     |    0
 .../tests}/acceptance/learnergroup-test.js    |    0
 .../tests}/acceptance/learnergroups-test.js   |    0
 .../frontend/tests}/acceptance/login-test.js  |    0
 .../acceptance/pending-user-updates-test.js   |    0
 .../program-year/competencies-test.js         |    0
 .../program-year/leadership-test.js           |    0
 .../program-year/objectives-test.js           |    0
 .../program-year/objectiveterms-test.js       |    0
 .../acceptance/program-year/terms-test.js     |    0
 .../acceptance/program/leadership-test.js     |    0
 .../acceptance/program/overview-test.js       |    0
 .../program/programyear-list-test.js          |    0
 .../program/publicationcheck-test.js          |    0
 .../tests}/acceptance/programs-test.js        |    0
 .../tests}/acceptance/reports/subject-test.js |    0
 .../acceptance/reports/subjects-test.js       |    0
 .../school/session-attributes-test.js         |    0
 .../acceptance/school/session-types-test.js   |    0
 .../frontend/tests}/acceptance/search-test.js |    0
 .../frontend/tests}/acceptance/user-test.js   |    0
 .../frontend/tests}/acceptance/users-test.js  |    0
 .../tests}/acceptance/weeklyevents-test.js    |    0
 .../frontend/tests}/helpers/flash-message.js  |    0
 .../frontend/tests}/helpers/index.js          |    0
 {tests => packages/frontend/tests}/index.html |    0
 .../components/assign-students-test.js        |    0
 .../back-to-admin-dashboard-test.js           |    0
 .../components/bulk-new-users-test.js         |    0
 .../competency-title-editor-test.js           |    0
 .../components/connection-status-test.js      |    0
 .../components/course-search-result-test.js   |    0
 .../components/courses/list-item-test.js      |    0
 .../components/courses/list-test.js           |    0
 .../components/courses/new-test.js            |    0
 .../components/courses/root-test.js           |    0
 .../leadership-expanded-test.js               |    0
 .../curriculum-inventory/new-report-test.js   |    0
 .../new-sequence-block-test.js                |    0
 .../report-details-test.js                    |    0
 .../report-header-test.js                     |    0
 .../report-list-item-test.js                  |    0
 .../curriculum-inventory/report-list-test.js  |    0
 .../report-overview-test.js                   |    0
 .../report-rollover-test.js                   |    0
 .../curriculum-inventory/reports-test.js      |    0
 .../sequence-block-details-test.js            |    0
 .../sequence-block-header-test.js             |    0
 .../sequence-block-list-item-test.js          |    0
 .../sequence-block-list-test.js               |    0
 .../sequence-block-overview-test.js           |    0
 .../sequence-block-session-list-test.js       |    0
 .../sequence-block-session-manager-test.js    |    0
 .../verification-preview-header-test.js       |    0
 .../verification-preview-table1-test.js       |    0
 .../verification-preview-table2-test.js       |    0
 .../verification-preview-table3a-test.js      |    0
 .../verification-preview-table3b-test.js      |    0
 .../verification-preview-table4-test.js       |    0
 .../verification-preview-table5-test.js       |    0
 .../verification-preview-table6-test.js       |    0
 .../verification-preview-table7-test.js       |    0
 .../verification-preview-table8-test.js       |    0
 .../verification-preview-test.js              |    0
 .../components/dashboard-loading-test.js      |    0
 .../components/error-display-test.js          |    0
 .../components/flash-messages-test.js         |    0
 .../components/global-search-box-test.js      |    0
 .../components/global-search-tags-test.js     |    0
 .../components/global-search-test.js          |    0
 .../components/ilios-header-test.js           |    0
 .../components/ilios-navigation-test.js       |    0
 .../components/ilios-users-test.js            |    0
 .../instructor-group/courses-test.js          |    0
 .../instructor-group/header-test.js           |    0
 .../instructor-manager-test.js                |    0
 .../components/instructor-group/root-test.js  |    0
 .../components/instructor-group/users-test.js |    0
 .../instructor-groups/list-item-test.js       |    0
 .../components/instructor-groups/list-test.js |    0
 .../instructor-groups/loading-test.js         |    0
 .../components/instructor-groups/new-test.js  |    0
 .../components/instructor-groups/root-test.js |    0
 .../components/learner-group/calendar-test.js |    0
 .../learner-group/cohort-user-manager-test.js |    0
 .../components/learner-group/header-test.js   |    0
 .../instructor-group-members-list-test.js     |    0
 .../learner-group/instructor-manager-test.js  |    0
 .../learner-group/list-item-test.js           |    0
 .../components/learner-group/list-test.js     |    0
 .../components/learner-group/members-test.js  |    0
 .../learner-group/new-multiple-test.js        |    0
 .../learner-group/new-single-test.js          |    0
 .../components/learner-group/new-test.js      |    0
 .../components/learner-group/root-test.js     |    0
 .../learner-group/user-manager-test.js        |    0
 .../components/learner-groups/root-test.js    |    0
 .../components/link-to-with-action-test.js    |    0
 .../components/locale-chooser-test.js         |    0
 .../integration/components/login-form-test.js |    0
 .../components/manage-users-summary-test.js   |    0
 .../integration/components/my-profile-test.js |    0
 .../components/new-competency-test.js         |    0
 .../components/new-directory-user-test.js     |    0
 .../integration/components/new-user-test.js   |    0
 .../components/pagination-links-test.js       |    0
 .../pending-single-user-update-test.js        |    0
 .../pending-updates-summary-test.js           |    0
 .../program-year/collapsed-objectives-test.js |    0
 .../program-year/competencies-test.js         |    0
 .../program-year/competency-list-item-test.js |    0
 .../components/program-year/courses-test.js   |    0
 .../components/program-year/header-test.js    |    0
 .../program-year/leadership-expanded-test.js  |    0
 .../components/program-year/list-item-test.js |    0
 .../components/program-year/list-test.js      |    0
 .../manage-objective-competency-test.js       |    0
 .../manage-objective-descriptors-test.js      |    0
 .../managed-competency-list-item-test.js      |    0
 .../components/program-year/new-test.js       |    0
 .../objective-list-item-competency-test.js    |    0
 .../objective-list-item-descriptors-test.js   |    0
 .../objective-list-item-expanded-test.js      |    0
 .../program-year/objective-list-item-test.js  |    0
 .../objective-list-loading-test.js            |    0
 .../program-year/objective-list-test.js       |    0
 .../program-year/objectives-test.js           |    0
 .../components/program-year/overview-test.js  |    0
 .../program-year/visualize-objectives-test.js |    0
 .../components/program/header-test.js         |    0
 .../program/leadership-expanded-test.js       |    0
 .../components/program/new-test.js            |    0
 .../components/programs/list-item-test.js     |    0
 .../components/programs/list-test.js          |    0
 .../components/programs/root-test.js          |    0
 .../components/reports/list-loading-test.js   |    0
 .../components/reports/list-test.js           |    0
 .../components/reports/new-subject-test.js    |    0
 .../components/reports/root-test.js           |    0
 .../reports/subject-results-test.js           |    0
 .../components/reports/subject-test.js        |    0
 .../reports/subject/competency-test.js        |    0
 .../components/reports/subject/course-test.js |    0
 .../reports/subject/instructor-group-test.js  |    0
 .../reports/subject/instructor-test.js        |    0
 .../reports/subject/learning-material-test.js |    0
 .../reports/subject/mesh-term-test.js         |    0
 .../reports/subject/new/competency-test.js    |    0
 .../reports/subject/new/course-test.js        |    0
 .../subject/new/instructor-group-test.js      |    0
 .../reports/subject/new/instructor-test.js    |    0
 .../subject/new/learning-material-test.js     |    0
 .../reports/subject/new/mesh-term-test.js     |    0
 .../reports/subject/new/program-test.js       |    0
 .../reports/subject/new/program-year-test.js  |    0
 .../reports/subject/new/search/input-test.js  |    1 -
 .../reports/subject/new/session-test.js       |    0
 .../reports/subject/new/session-type-test.js  |    0
 .../reports/subject/new/term-test.js          |    0
 .../reports/subject/program-test.js           |    0
 .../reports/subject/program-year-test.js      |    0
 .../reports/subject/session-test.js           |    0
 .../reports/subject/session-type-test.js      |    0
 .../components/reports/subject/term-test.js   |    0
 .../components/reports/table-row-test.js      |    0
 .../components/reports/table-test.js          |    0
 .../school-competencies-collapsed-test.js     |    0
 .../school-competencies-expanded-test.js      |    0
 ...school-competencies-list-item-pcrs-test.js |    0
 .../school-competencies-list-item-test.js     |    0
 .../school-competencies-list-test.js          |    0
 .../school-competencies-manager-test.js       |    0
 .../school-competencies-pcrs-mapper-test.js   |    0
 ...ulum-inventory-institution-details-test.js |    0
 ...ulum-inventory-institution-manager-test.js |    0
 .../school-leadership-expanded-test.js        |    0
 .../components/school-list-test.js            |    0
 .../components/school-manager-test.js         |    0
 .../school-new-vocabulary-form-test.js        |    0
 ...chool-session-attributes-collapsed-test.js |    0
 ...school-session-attributes-expanded-test.js |    0
 .../school-session-attributes-manager-test.js |    0
 .../school-session-attributes-test.js         |    0
 .../school-session-type-form-test.js          |    0
 .../school-session-type-manager-test.js       |    0
 .../school-session-types-collapsed-test.js    |    0
 .../school-session-types-expanded-test.js     |    0
 .../school-session-types-list-item-test.js    |    0
 .../school-session-types-list-test.js         |    0
 .../school-vocabularies-collapsed-test.js     |    0
 .../school-vocabularies-expanded-test.js      |    0
 .../school-vocabularies-list-test.js          |    0
 .../school-vocabulary-manager-test.js         |    0
 .../school-vocabulary-new-term-test.js        |    0
 .../school-vocabulary-term-manager-test.js    |    0
 ...ession-type-visualize-vocabularies-test.js |    0
 .../session-type-visualize-vocabulary-test.js |    0
 ...sualizer-session-type-vocabularies-test.js |    0
 ...visualizer-session-type-vocabulary-test.js |    0
 .../unassigned-students-summary-test.js       |    0
 .../components/update-notification-test.js    |    0
 .../integration/components/user-list-test.js  |    0
 .../integration/components/user-menu-test.js  |    0
 .../components/user-profile-bio-test.js       |    0
 .../components/user-profile-calendar-test.js  |    0
 .../user-profile-cohorts-details-test.js      |    0
 .../user-profile-cohorts-manager-test.js      |    0
 .../components/user-profile-cohorts-test.js   |    0
 .../components/user-profile-ics-test.js       |    0
 .../user-profile-permissions-test.js          |    0
 .../components/user-profile-roles-test.js     |    0
 .../components/user-profile-test.js           |    0
 .../user-profile/learner-group-test.js        |    0
 .../user-profile/learner-groups-test.js       |    0
 ...visualizer-program-year-objectives-test.js |    0
 .../integration/components/yes-no-test.js     |    0
 .../helpers/pcrs-uri-to-number-test.js        |    0
 .../frontend/tests}/pages/assign-students.js  |    0
 .../pages/components/assign-students.js       |    0
 .../components/back-to-admin-dashboard.js     |    0
 .../components/competency-title-editor.js     |    0
 .../pages/components/course-search-result.js  |    0
 .../pages/components/courses/list-item.js     |    0
 .../tests}/pages/components/courses/list.js   |    0
 .../tests}/pages/components/courses/new.js    |    0
 .../tests}/pages/components/courses/root.js   |    0
 .../leadership-collapsed.js                   |    0
 .../leadership-expanded.js                    |    0
 .../curriculum-inventory/new-report.js        |    0
 .../new-sequence-block.js                     |    0
 .../curriculum-inventory/report-details.js    |    0
 .../curriculum-inventory/report-header.js     |    0
 .../curriculum-inventory/report-list-item.js  |    0
 .../curriculum-inventory/report-list.js       |    0
 .../curriculum-inventory/report-overview.js   |    0
 .../curriculum-inventory/report-rollover.js   |    0
 .../curriculum-inventory/reports.js           |    0
 .../sequence-block-details.js                 |    0
 .../sequence-block-header.js                  |    0
 .../sequence-block-list-item.js               |    0
 .../sequence-block-list.js                    |    0
 .../sequence-block-overview.js                |    0
 .../sequence-block-session-list.js            |    0
 .../sequence-block-session-manager.js         |    0
 .../verification-preview-header.js            |    0
 .../verification-preview-table1.js            |    0
 .../verification-preview-table2.js            |    0
 .../verification-preview-table3a.js           |    0
 .../verification-preview-table3b.js           |    0
 .../verification-preview-table4.js            |    0
 .../verification-preview-table5.js            |    0
 .../verification-preview-table6.js            |    0
 .../verification-preview-table7.js            |    0
 .../verification-preview-table8.js            |    0
 .../verification-preview.js                   |    0
 .../tests}/pages/components/flash-messages.js |    0
 .../pages/components/global-search-box.js     |    0
 .../pages/components/global-search-tags.js    |    0
 .../tests}/pages/components/global-search.js  |    0
 .../tests}/pages/components/ilios-header.js   |    0
 .../pages/components/ilios-navigation.js      |    0
 .../tests}/pages/components/ilios-users.js    |    0
 .../components/instructor-group/courses.js    |    0
 .../components/instructor-group/header.js     |    0
 .../instructor-group/instructor-manager.js    |    0
 .../pages/components/instructor-group/root.js |    0
 .../components/instructor-group/users.js      |    0
 .../components/instructor-groups/list-item.js |    0
 .../components/instructor-groups/list.js      |    0
 .../pages/components/instructor-groups/new.js |    0
 .../components/instructor-groups/root.js      |    0
 .../learner-group/bulk-assignment.js          |    0
 .../components/learner-group/calendar.js      |    0
 .../learner-group/cohort-user-manager.js      |    0
 .../pages/components/learner-group/header.js  |    0
 .../instructor-group-members-list.js          |    0
 .../learner-group/instructor-manager.js       |    0
 .../components/learner-group/list-item.js     |    0
 .../pages/components/learner-group/list.js    |    0
 .../pages/components/learner-group/members.js |    0
 .../components/learner-group/new-multiple.js  |    0
 .../components/learner-group/new-single.js    |    0
 .../pages/components/learner-group/new.js     |    0
 .../pages/components/learner-group/root.js    |    0
 .../components/learner-group/user-manager.js  |    0
 .../pages/components/learner-groups/root.js   |    0
 .../tests}/pages/components/locale-chooser.js |    0
 .../tests}/pages/components/login-form.js     |    0
 .../tests}/pages/components/my-profile.js     |    0
 .../tests}/pages/components/new-competency.js |    0
 .../pages/components/new-directory-user.js    |    0
 .../tests}/pages/components/new-user.js       |    0
 .../pages/components/pagination-links.js      |    0
 .../components/pending-single-user-update.js  |    0
 .../components/pending-updates-summary.js     |    0
 .../program-year/collapsed-objectives.js      |    0
 .../components/program-year/competencies.js   |    0
 .../program-year/competency-list-item.js      |    0
 .../pages/components/program-year/courses.js  |    0
 .../pages/components/program-year/details.js  |    0
 .../pages/components/program-year/header.js   |    0
 .../program-year/leadership-expanded.js       |    0
 .../components/program-year/list-item.js      |    0
 .../pages/components/program-year/list.js     |    0
 .../manage-objective-competency.js            |    0
 .../manage-objective-descriptors.js           |    0
 .../managed-competency-list-item.js           |    0
 .../pages/components/program-year/new.js      |    0
 .../objective-list-item-competency.js         |    0
 .../objective-list-item-descriptors.js        |    0
 .../objective-list-item-expanded.js           |    0
 .../program-year/objective-list-item.js       |    0
 .../components/program-year/objective-list.js |    0
 .../components/program-year/objectives.js     |    0
 .../pages/components/program-year/overview.js |    0
 .../program-year/visualize-objectives.js      |    0
 .../tests}/pages/components/program/header.js |    0
 .../components/program/leadership-expanded.js |    0
 .../tests}/pages/components/program/new.js    |    0
 .../pages/components/program/overview.js      |    0
 .../tests}/pages/components/program/root.js   |    0
 .../pages/components/programs/list-item.js    |    0
 .../tests}/pages/components/programs/list.js  |    0
 .../tests}/pages/components/programs/root.js  |    0
 .../tests}/pages/components/reports/list.js   |    0
 .../pages/components/reports/new-subject.js   |    0
 .../pages/components/reports/results.js       |    0
 .../tests}/pages/components/reports/root.js   |    0
 .../pages/components/reports/run-subject.js   |    0
 .../pages/components/reports/subject.js       |    0
 .../components/reports/subject/competency.js  |    0
 .../components/reports/subject/course.js      |    0
 .../reports/subject/instructor-group.js       |    0
 .../components/reports/subject/instructor.js  |    0
 .../reports/subject/learning-material.js      |    0
 .../components/reports/subject/mesh-term.js   |    0
 .../reports/subject/new/competency.js         |    0
 .../components/reports/subject/new/course.js  |    0
 .../reports/subject/new/instructor-group.js   |    0
 .../reports/subject/new/instructor.js         |    0
 .../reports/subject/new/learning-material.js  |    0
 .../reports/subject/new/mesh-term.js          |    0
 .../reports/subject/new/program-year.js       |    0
 .../components/reports/subject/new/program.js |    0
 .../reports/subject/new/search/input.js       |    0
 .../reports/subject/new/session-type.js       |    0
 .../components/reports/subject/new/session.js |    0
 .../components/reports/subject/new/term.js    |    0
 .../reports/subject/program-year.js           |    0
 .../components/reports/subject/program.js     |    0
 .../reports/subject/session-type.js           |    0
 .../components/reports/subject/session.js     |    0
 .../pages/components/reports/subject/term.js  |    0
 .../pages/components/reports/table-row.js     |    0
 .../tests}/pages/components/reports/table.js  |    0
 .../school-competencies-collapsed.js          |    0
 .../school-competencies-expanded.js           |    0
 .../school-competencies-list-item-pcrs.js     |    0
 .../school-competencies-list-item.js          |    0
 .../components/school-competencies-list.js    |    0
 .../components/school-competencies-manager.js |    0
 .../school-competencies-pcrs-mapper.js        |    0
 ...urriculum-inventory-institution-details.js |    0
 ...urriculum-inventory-institution-manager.js |    0
 .../components/school-leadership-expanded.js  |    0
 .../tests}/pages/components/school-list.js    |    0
 .../tests}/pages/components/school-manager.js |    0
 .../components/school-new-vocabulary-form.js  |    0
 .../school-session-attributes-collapsed.js    |    0
 .../school-session-attributes-expanded.js     |    0
 .../school-session-attributes-manager.js      |    0
 .../components/school-session-attributes.js   |    0
 .../components/school-session-type-form.js    |    0
 .../components/school-session-type-manager.js |    0
 .../school-session-types-collapsed.js         |    0
 .../school-session-types-expanded.js          |    0
 .../school-session-types-list-item.js         |    0
 .../components/school-session-types-list.js   |    0
 .../school-vocabularies-collapsed.js          |    0
 .../school-vocabularies-expanded.js           |    0
 .../components/school-vocabularies-list.js    |    0
 .../components/school-vocabulary-manager.js   |    0
 .../components/school-vocabulary-new-term.js  |    0
 .../school-vocabulary-term-manager.js         |    0
 .../session-type-visualize-vocabularies.js    |    0
 .../session-type-visualize-vocabulary.js      |    0
 .../visualizer-session-type-vocabularies.js   |    0
 .../visualizer-session-type-vocabulary.js     |    0
 .../components/unassigned-students-summary.js |    0
 .../tests}/pages/components/user-list.js      |    0
 .../tests}/pages/components/user-menu.js      |    0
 .../pages/components/user-profile-bio.js      |    0
 .../pages/components/user-profile-calendar.js |    0
 .../user-profile-cohorts-details.js           |    0
 .../user-profile-cohorts-manager.js           |    0
 .../pages/components/user-profile-cohorts.js  |    0
 .../pages/components/user-profile-ics.js      |    0
 .../components/user-profile-permissions.js    |    0
 .../pages/components/user-profile-roles.js    |    0
 .../tests}/pages/components/user-profile.js   |    0
 .../components/user-profile/learner-groups.js |    0
 .../visualizer-program-year-objectives.js     |    0
 .../tests}/pages/components/yes-no.js         |    0
 .../frontend/tests}/pages/courses.js          |    0
 .../curriculum-inventory-report-rollover.js   |    0
 .../pages/curriculum-inventory-report.js      |    0
 .../pages/curriculum-inventory-reports.js     |    0
 .../curriculum-inventory-sequence-block.js    |    0
 .../frontend/tests}/pages/dashboard.js        |    0
 .../frontend/tests}/pages/instructor-group.js |    0
 .../tests}/pages/instructor-groups.js         |    0
 .../frontend/tests}/pages/learner-group.js    |    0
 .../frontend/tests}/pages/learner-groups.js   |    0
 .../tests}/pages/pending-user-updates.js      |    0
 .../frontend/tests}/pages/program-year.js     |    0
 .../frontend/tests}/pages/program.js          |    0
 .../frontend/tests}/pages/programs.js         |    0
 .../frontend/tests}/pages/reports-subject.js  |    0
 .../frontend/tests}/pages/reports.js          |    0
 .../frontend/tests}/pages/school.js           |    0
 .../frontend/tests}/pages/search.js           |    0
 .../frontend/tests}/pages/user.js             |    0
 .../frontend/tests}/pages/users.js            |    0
 .../frontend/tests}/test-helper.js            |    0
 .../tests}/unit/adapters/application-test.js  |    0
 .../unit/controllers/admin-dashboard-test.js  |    0
 .../unit/controllers/application-test.js      |    0
 .../unit/controllers/assign-students-test.js  |    0
 .../tests}/unit/controllers/courses-test.js   |    0
 .../curriculum-inventory-report/index-test.js |    0
 .../rollover-test.js                          |    0
 .../curriculum-inventory-reports-test.js      |    0
 ...urriculum-inventory-sequence-block-test.js |    0
 .../controllers/instructor-groups-test.js     |    0
 .../unit/controllers/learner-group-test.js    |    0
 .../unit/controllers/learner-groups-test.js   |    0
 .../controllers/pending-user-updates-test.js  |    0
 .../tests}/unit/controllers/program-test.js   |    0
 .../tests}/unit/controllers/reports-test.js   |    0
 .../unit/controllers/reports/subject.js       |    0
 .../tests}/unit/controllers/school-test.js    |    0
 .../tests}/unit/controllers/search-test.js    |    0
 .../tests}/unit/controllers/user-test.js      |    0
 .../unit/initializers/inflector-test.js       |    0
 .../unit/initializers/metrics-imports-test.js |    0
 .../unit/mixins/live-search-item-test.js      |    0
 .../tests}/unit/services/data-loader-test.js  |    0
 .../tests}/unit/services/graphql-test.js      |    0
 .../unit/services/ilios-metrics-test.js       |    0
 .../tests}/unit/services/reporting-test.js    |    0
 .../tests}/unit/services/session-test.js      |    0
 .../tests}/unit/services/user-events-test.js  |    0
 .../unit/utils/clone-learner-group-test.js    |    0
 .../tests}/unit/utils/count-digits-test.js    |    0
 .../tests}/unit/utils/launch-worker-test.js   |    0
 .../unit/utils/pcrs-uri-to-number-test.js     |    0
 .../tests}/unit/utils/random-string-test.js   |    0
 .../unit/utils/readable-file-size-test.js     |    0
 .../tests}/unit/utils/sort-cohorts-test.js    |    0
 .../frontend/translations}/en-us.yaml         |    0
 .../frontend/translations}/es.yaml            |    0
 .../frontend/translations}/fr.yaml            |    0
 pnpm-lock.yaml                                | 1124 ++++++++---------
 pnpm-workspace.yaml                           |    2 +
 1190 files changed, 801 insertions(+), 1093 deletions(-)
 delete mode 100644 .dockerignore
 delete mode 100644 .github/workflows/asset-size-check.yml
 delete mode 100644 .github/workflows/coverage.yml
 delete mode 100644 .lint-todo
 rename .ember-cli => packages/frontend/.ember-cli (100%)
 create mode 100644 packages/frontend/.gitignore
 rename .nvmrc => packages/frontend/.nvmrc (100%)
 rename .prettierignore => packages/frontend/.prettierignore (100%)
 rename .watchmanconfig => packages/frontend/.watchmanconfig (100%)
 rename {app => packages/frontend/app}/adapters/application.js (100%)
 rename {app => packages/frontend/app}/adapters/school.js (100%)
 rename {app => packages/frontend/app}/app.js (100%)
 rename {app => packages/frontend/app}/breakpoints.js (100%)
 rename {app => packages/frontend/app}/classes/resolve-all-values.js (100%)
 rename {app => packages/frontend/app}/components/.gitkeep (100%)
 rename {app => packages/frontend/app}/components/assign-students.hbs (100%)
 rename {app => packages/frontend/app}/components/assign-students.js (100%)
 rename {app => packages/frontend/app}/components/back-to-admin-dashboard.hbs (100%)
 rename {app => packages/frontend/app}/components/bulk-new-users.hbs (100%)
 rename {app => packages/frontend/app}/components/bulk-new-users.js (100%)
 rename {app => packages/frontend/app}/components/competency-title-editor.hbs (100%)
 rename {app => packages/frontend/app}/components/competency-title-editor.js (100%)
 rename {app => packages/frontend/app}/components/connection-status.hbs (100%)
 rename {app => packages/frontend/app}/components/connection-status.js (100%)
 rename {app => packages/frontend/app}/components/course-search-result.hbs (100%)
 rename {app => packages/frontend/app}/components/course-search-result.js (100%)
 rename {app => packages/frontend/app}/components/courses/list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/courses/list-item.js (100%)
 rename {app => packages/frontend/app}/components/courses/list.hbs (100%)
 rename {app => packages/frontend/app}/components/courses/list.js (100%)
 rename {app => packages/frontend/app}/components/courses/new.hbs (100%)
 rename {app => packages/frontend/app}/components/courses/new.js (100%)
 rename {app => packages/frontend/app}/components/courses/root.hbs (100%)
 rename {app => packages/frontend/app}/components/courses/root.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/leadership-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/leadership-expanded.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/new-report.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/new-report.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/new-sequence-block.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/new-sequence-block.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-details.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-details.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-header.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-header.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-list-item.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-list.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-list.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-overview.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-overview.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-rollover.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/report-rollover.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/reports.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/reports.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-details.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-details.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-header.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-header.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-list-item.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-list.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-list.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-overview.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-overview.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-session-list.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-session-list.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-session-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/sequence-block-session-manager.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-header.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table1.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table2.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table2.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table3a.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table3b.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table4.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table4.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table5.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table5.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table6.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table6.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table7.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table7.js (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview-table8.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview.hbs (100%)
 rename {app => packages/frontend/app}/components/curriculum-inventory/verification-preview.js (100%)
 rename {app => packages/frontend/app}/components/dashboard-loading.hbs (100%)
 rename {app => packages/frontend/app}/components/error-display.hbs (100%)
 rename {app => packages/frontend/app}/components/error-display.js (100%)
 rename {app => packages/frontend/app}/components/flash-messages.hbs (100%)
 rename {app => packages/frontend/app}/components/flash-messages.js (100%)
 rename {app => packages/frontend/app}/components/global-search-box.hbs (100%)
 rename {app => packages/frontend/app}/components/global-search-box.js (100%)
 rename {app => packages/frontend/app}/components/global-search-tags.hbs (100%)
 rename {app => packages/frontend/app}/components/global-search.hbs (100%)
 rename {app => packages/frontend/app}/components/global-search.js (100%)
 rename {app => packages/frontend/app}/components/ilios-header.hbs (100%)
 rename {app => packages/frontend/app}/components/ilios-header.js (100%)
 rename {app => packages/frontend/app}/components/ilios-navigation.hbs (100%)
 rename {app => packages/frontend/app}/components/ilios-navigation.js (100%)
 rename {app => packages/frontend/app}/components/ilios-users.hbs (100%)
 rename {app => packages/frontend/app}/components/ilios-users.js (100%)
 rename {app => packages/frontend/app}/components/instructor-group/courses.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-group/header.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-group/header.js (100%)
 rename {app => packages/frontend/app}/components/instructor-group/instructor-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-group/root.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-group/users.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-group/users.js (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/list-item.js (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/list.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/list.js (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/loading.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/new.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/new.js (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/root.hbs (100%)
 rename {app => packages/frontend/app}/components/instructor-groups/root.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/bulk-assignment.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/bulk-assignment.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/bulk-finalize-users.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/bulk-finalize-users.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/bulk-group-matcher.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/bulk-group-matcher.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/calendar.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/calendar.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/cohort-user-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/cohort-user-manager.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/header.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/header.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/instructor-group-members-list.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/instructor-group-members-list.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/instructor-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/instructor-manager.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/list-item.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/list.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/list.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/members.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/members.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/new-multiple.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/new-multiple.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/new-single.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/new-single.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/new.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/new.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/root.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/root.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/upload-data.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/upload-data.js (100%)
 rename {app => packages/frontend/app}/components/learner-group/user-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-group/user-manager.js (100%)
 rename {app => packages/frontend/app}/components/learner-groups/root.hbs (100%)
 rename {app => packages/frontend/app}/components/learner-groups/root.js (100%)
 rename {app => packages/frontend/app}/components/link-to-with-action.hbs (100%)
 rename {app => packages/frontend/app}/components/link-to-with-action.js (100%)
 rename {app => packages/frontend/app}/components/locale-chooser.hbs (100%)
 rename {app => packages/frontend/app}/components/locale-chooser.js (100%)
 rename {app => packages/frontend/app}/components/login-form.hbs (100%)
 rename {app => packages/frontend/app}/components/login-form.js (100%)
 rename {app => packages/frontend/app}/components/manage-users-summary.hbs (100%)
 rename {app => packages/frontend/app}/components/manage-users-summary.js (100%)
 rename {app => packages/frontend/app}/components/my-profile.hbs (100%)
 rename {app => packages/frontend/app}/components/my-profile.js (100%)
 rename {app => packages/frontend/app}/components/new-competency.hbs (100%)
 rename {app => packages/frontend/app}/components/new-competency.js (100%)
 rename {app => packages/frontend/app}/components/new-directory-user.hbs (100%)
 rename {app => packages/frontend/app}/components/new-directory-user.js (100%)
 rename {app => packages/frontend/app}/components/new-user.hbs (100%)
 rename {app => packages/frontend/app}/components/new-user.js (100%)
 rename {app => packages/frontend/app}/components/pagination-links.hbs (100%)
 rename {app => packages/frontend/app}/components/pagination-links.js (100%)
 rename {app => packages/frontend/app}/components/pending-single-user-update.hbs (100%)
 rename {app => packages/frontend/app}/components/pending-single-user-update.js (100%)
 rename {app => packages/frontend/app}/components/pending-updates-summary.hbs (100%)
 rename {app => packages/frontend/app}/components/pending-updates-summary.js (100%)
 rename {app => packages/frontend/app}/components/program-year/collapsed-objectives.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/collapsed-objectives.js (100%)
 rename {app => packages/frontend/app}/components/program-year/competencies.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/competencies.js (100%)
 rename {app => packages/frontend/app}/components/program-year/competency-list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/competency-list-item.js (100%)
 rename {app => packages/frontend/app}/components/program-year/courses.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/courses.js (100%)
 rename {app => packages/frontend/app}/components/program-year/details.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/header.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/header.js (100%)
 rename {app => packages/frontend/app}/components/program-year/leadership-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/leadership-expanded.js (100%)
 rename {app => packages/frontend/app}/components/program-year/list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/list-item.js (100%)
 rename {app => packages/frontend/app}/components/program-year/list.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/list.js (100%)
 rename {app => packages/frontend/app}/components/program-year/manage-objective-competency.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/manage-objective-descriptors.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/managed-competency-list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/managed-competency-list-item.js (100%)
 rename {app => packages/frontend/app}/components/program-year/new.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/new.js (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list-item-competency.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list-item-descriptors.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list-item-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list-item-expanded.js (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list-item.js (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list-loading.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/objective-list.js (100%)
 rename {app => packages/frontend/app}/components/program-year/objectives.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/objectives.js (100%)
 rename {app => packages/frontend/app}/components/program-year/overview.hbs (100%)
 rename {app => packages/frontend/app}/components/program-year/visualize-objectives.hbs (100%)
 rename {app => packages/frontend/app}/components/program/header.hbs (100%)
 rename {app => packages/frontend/app}/components/program/header.js (100%)
 rename {app => packages/frontend/app}/components/program/leadership-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/program/leadership-expanded.js (100%)
 rename {app => packages/frontend/app}/components/program/new.hbs (100%)
 rename {app => packages/frontend/app}/components/program/new.js (100%)
 rename {app => packages/frontend/app}/components/program/overview.hbs (100%)
 rename {app => packages/frontend/app}/components/program/overview.js (100%)
 rename {app => packages/frontend/app}/components/program/root.hbs (100%)
 rename {app => packages/frontend/app}/components/programs/list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/programs/list-item.js (100%)
 rename {app => packages/frontend/app}/components/programs/list.hbs (100%)
 rename {app => packages/frontend/app}/components/programs/root.hbs (100%)
 rename {app => packages/frontend/app}/components/programs/root.js (100%)
 rename {app => packages/frontend/app}/components/reports/list-loading.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/list.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/list.js (100%)
 rename {app => packages/frontend/app}/components/reports/new-subject.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/new-subject.js (100%)
 rename {app => packages/frontend/app}/components/reports/root.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject-results.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject-results.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/competency.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/competency.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/course.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/course.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/instructor-group.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/instructor-group.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/instructor.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/instructor.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/learning-material.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/learning-material.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/mesh-term.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/mesh-term.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/competency.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/competency.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/course.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/course.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/instructor-group.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/instructor-group.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/instructor.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/instructor.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/learning-material.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/learning-material.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/mesh-term.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/mesh-term.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/program-year.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/program-year.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/program.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/program.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/search/input.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/search/input.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/session-type.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/session-type.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/session.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/session.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/term.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/new/term.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/program-year.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/program-year.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/program.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/program.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/session-type.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/session-type.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/session.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/session.js (100%)
 rename {app => packages/frontend/app}/components/reports/subject/term.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/subject/term.js (100%)
 rename {app => packages/frontend/app}/components/reports/table-row.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/table.hbs (100%)
 rename {app => packages/frontend/app}/components/reports/table.js (100%)
 rename {app => packages/frontend/app}/components/school-competencies-collapsed.hbs (100%)
 rename {app => packages/frontend/app}/components/school-competencies-collapsed.js (100%)
 rename {app => packages/frontend/app}/components/school-competencies-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/school-competencies-expanded.js (100%)
 rename {app => packages/frontend/app}/components/school-competencies-list-item-pcrs.hbs (100%)
 rename {app => packages/frontend/app}/components/school-competencies-list-item-pcrs.js (100%)
 rename {app => packages/frontend/app}/components/school-competencies-list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/school-competencies-list-item.js (100%)
 rename {app => packages/frontend/app}/components/school-competencies-list.hbs (100%)
 rename {app => packages/frontend/app}/components/school-competencies-list.js (100%)
 rename {app => packages/frontend/app}/components/school-competencies-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/school-competencies-manager.js (100%)
 rename {app => packages/frontend/app}/components/school-competencies-pcrs-mapper.hbs (100%)
 rename {app => packages/frontend/app}/components/school-curriculum-inventory-institution-details.hbs (100%)
 rename {app => packages/frontend/app}/components/school-curriculum-inventory-institution-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/school-curriculum-inventory-institution-manager.js (100%)
 rename {app => packages/frontend/app}/components/school-leadership-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/school-leadership-expanded.js (100%)
 rename {app => packages/frontend/app}/components/school-list.hbs (100%)
 rename {app => packages/frontend/app}/components/school-list.js (100%)
 rename {app => packages/frontend/app}/components/school-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/school-manager.js (100%)
 rename {app => packages/frontend/app}/components/school-new-vocabulary-form.hbs (100%)
 rename {app => packages/frontend/app}/components/school-new-vocabulary-form.js (100%)
 rename {app => packages/frontend/app}/components/school-session-attributes-collapsed.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-attributes-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-attributes-expanded.js (100%)
 rename {app => packages/frontend/app}/components/school-session-attributes-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-attributes.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-attributes.js (100%)
 rename {app => packages/frontend/app}/components/school-session-type-form.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-type-form.js (100%)
 rename {app => packages/frontend/app}/components/school-session-type-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-type-manager.js (100%)
 rename {app => packages/frontend/app}/components/school-session-types-collapsed.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-types-collapsed.js (100%)
 rename {app => packages/frontend/app}/components/school-session-types-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-types-expanded.js (100%)
 rename {app => packages/frontend/app}/components/school-session-types-list-item.hbs (100%)
 rename {app => packages/frontend/app}/components/school-session-types-list-item.js (100%)
 rename {app => packages/frontend/app}/components/school-session-types-list.hbs (100%)
 rename {app => packages/frontend/app}/components/school-vocabularies-collapsed.hbs (100%)
 rename {app => packages/frontend/app}/components/school-vocabularies-collapsed.js (100%)
 rename {app => packages/frontend/app}/components/school-vocabularies-expanded.hbs (100%)
 rename {app => packages/frontend/app}/components/school-vocabularies-expanded.js (100%)
 rename {app => packages/frontend/app}/components/school-vocabularies-list.hbs (100%)
 rename {app => packages/frontend/app}/components/school-vocabularies-list.js (100%)
 rename {app => packages/frontend/app}/components/school-vocabulary-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/school-vocabulary-manager.js (100%)
 rename {app => packages/frontend/app}/components/school-vocabulary-new-term.hbs (100%)
 rename {app => packages/frontend/app}/components/school-vocabulary-new-term.js (100%)
 rename {app => packages/frontend/app}/components/school-vocabulary-term-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/school-vocabulary-term-manager.js (100%)
 rename {app => packages/frontend/app}/components/school/session-type-visualize-vocabularies.hbs (100%)
 rename {app => packages/frontend/app}/components/school/session-type-visualize-vocabulary.hbs (100%)
 rename {app => packages/frontend/app}/components/school/visualizer-session-type-vocabularies.hbs (100%)
 rename {app => packages/frontend/app}/components/school/visualizer-session-type-vocabularies.js (100%)
 rename {app => packages/frontend/app}/components/school/visualizer-session-type-vocabulary.hbs (100%)
 rename {app => packages/frontend/app}/components/school/visualizer-session-type-vocabulary.js (100%)
 rename {app => packages/frontend/app}/components/unassigned-students-summary.hbs (100%)
 rename {app => packages/frontend/app}/components/unassigned-students-summary.js (100%)
 rename {app => packages/frontend/app}/components/update-notification.hbs (100%)
 rename {app => packages/frontend/app}/components/update-notification.js (100%)
 rename {app => packages/frontend/app}/components/user-list.hbs (100%)
 rename {app => packages/frontend/app}/components/user-menu.hbs (100%)
 rename {app => packages/frontend/app}/components/user-menu.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-bio.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-bio.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-calendar.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-calendar.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-cohorts-details.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-cohorts-details.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-cohorts-manager.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-cohorts-manager.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-cohorts.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-cohorts.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-ics.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-ics.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-permissions.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-permissions.js (100%)
 rename {app => packages/frontend/app}/components/user-profile-roles.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile-roles.js (100%)
 rename {app => packages/frontend/app}/components/user-profile.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile.js (100%)
 rename {app => packages/frontend/app}/components/user-profile/learner-group.hbs (100%)
 rename {app => packages/frontend/app}/components/user-profile/learner-group.js (100%)
 rename {app => packages/frontend/app}/components/user-profile/learner-groups.hbs (100%)
 rename {app => packages/frontend/app}/components/visualizer-program-year-objectives.hbs (100%)
 rename {app => packages/frontend/app}/components/visualizer-program-year-objectives.js (100%)
 rename {app => packages/frontend/app}/components/yes-no.hbs (100%)
 rename {app => packages/frontend/app}/controllers/admin-dashboard.js (100%)
 rename {app => packages/frontend/app}/controllers/application.js (100%)
 rename {app => packages/frontend/app}/controllers/assign-students.js (100%)
 rename {app => packages/frontend/app}/controllers/courses.js (100%)
 rename {app => packages/frontend/app}/controllers/curriculum-inventory-report/index.js (100%)
 rename {app => packages/frontend/app}/controllers/curriculum-inventory-report/rollover.js (100%)
 rename {app => packages/frontend/app}/controllers/curriculum-inventory-reports.js (100%)
 rename {app => packages/frontend/app}/controllers/curriculum-inventory-sequence-block.js (100%)
 rename {app => packages/frontend/app}/controllers/dashboard/calendar.js (100%)
 rename {app => packages/frontend/app}/controllers/dashboard/materials.js (100%)
 rename {app => packages/frontend/app}/controllers/error.js (100%)
 rename {app => packages/frontend/app}/controllers/instructor-groups.js (100%)
 rename {app => packages/frontend/app}/controllers/learner-group.js (100%)
 rename {app => packages/frontend/app}/controllers/learner-groups.js (100%)
 rename {app => packages/frontend/app}/controllers/myprofile.js (100%)
 rename {app => packages/frontend/app}/controllers/pending-user-updates.js (100%)
 rename {app => packages/frontend/app}/controllers/program-year/index.js (100%)
 rename {app => packages/frontend/app}/controllers/program.js (100%)
 rename {app => packages/frontend/app}/controllers/reports.js (100%)
 rename {app => packages/frontend/app}/controllers/school.js (100%)
 rename {app => packages/frontend/app}/controllers/search.js (100%)
 rename {app => packages/frontend/app}/controllers/subject-report.js (100%)
 rename {app => packages/frontend/app}/controllers/user.js (100%)
 rename {app => packages/frontend/app}/controllers/users.js (100%)
 rename {app => packages/frontend/app}/helpers/.gitkeep (100%)
 rename {app => packages/frontend/app}/helpers/pcrs-uri-to-number.js (100%)
 rename {app => packages/frontend/app}/index.html (100%)
 rename {app => packages/frontend/app}/initializers/inflector.js (100%)
 rename {app => packages/frontend/app}/initializers/metrics-imports.js (100%)
 rename {app => packages/frontend/app}/mixins/live-search-item.js (100%)
 rename {app => packages/frontend/app}/models/.gitkeep (100%)
 rename {app => packages/frontend/app}/router.js (100%)
 rename {app => packages/frontend/app}/routes/admin-dashboard.js (100%)
 rename {app => packages/frontend/app}/routes/application.js (100%)
 rename {app => packages/frontend/app}/routes/assign-students.js (100%)
 rename {app => packages/frontend/app}/routes/courses.js (100%)
 rename {app => packages/frontend/app}/routes/curriculum-inventory-report.js (100%)
 rename {app => packages/frontend/app}/routes/curriculum-inventory-report/index.js (100%)
 rename {app => packages/frontend/app}/routes/curriculum-inventory-report/rollover.js (100%)
 rename {app => packages/frontend/app}/routes/curriculum-inventory-reports.js (100%)
 rename {app => packages/frontend/app}/routes/curriculum-inventory-sequence-block.js (100%)
 rename {app => packages/frontend/app}/routes/dashboard.js (100%)
 rename {app => packages/frontend/app}/routes/dashboard/activities.js (100%)
 rename {app => packages/frontend/app}/routes/dashboard/calendar.js (100%)
 rename {app => packages/frontend/app}/routes/dashboard/index.js (100%)
 rename {app => packages/frontend/app}/routes/dashboard/materials.js (100%)
 rename {app => packages/frontend/app}/routes/dashboard/week.js (100%)
 rename {app => packages/frontend/app}/routes/index.js (100%)
 rename {app => packages/frontend/app}/routes/instructor-group.js (100%)
 rename {app => packages/frontend/app}/routes/instructor-groups.js (100%)
 rename {app => packages/frontend/app}/routes/learner-group.js (100%)
 rename {app => packages/frontend/app}/routes/learner-groups.js (100%)
 rename {app => packages/frontend/app}/routes/login.js (100%)
 rename {app => packages/frontend/app}/routes/logout.js (100%)
 rename {app => packages/frontend/app}/routes/myprofile.js (100%)
 rename {app => packages/frontend/app}/routes/pending-user-updates.js (100%)
 rename {app => packages/frontend/app}/routes/program-year-visualize-objectives.js (100%)
 rename {app => packages/frontend/app}/routes/program-year.js (100%)
 rename {app => packages/frontend/app}/routes/program-year/index.js (100%)
 rename {app => packages/frontend/app}/routes/program.js (100%)
 rename {app => packages/frontend/app}/routes/program/index.js (100%)
 rename {app => packages/frontend/app}/routes/program/publication-check.js (100%)
 rename {app => packages/frontend/app}/routes/programs.js (100%)
 rename {app => packages/frontend/app}/routes/reports.js (100%)
 rename {app => packages/frontend/app}/routes/school.js (100%)
 rename {app => packages/frontend/app}/routes/schools.js (100%)
 rename {app => packages/frontend/app}/routes/search.js (100%)
 rename {app => packages/frontend/app}/routes/session-type-visualize-vocabularies.js (100%)
 rename {app => packages/frontend/app}/routes/session-type-visualize-vocabulary.js (100%)
 rename {app => packages/frontend/app}/routes/subject-report.js (100%)
 rename {app => packages/frontend/app}/routes/user.js (100%)
 rename {app => packages/frontend/app}/routes/users.js (100%)
 rename {app => packages/frontend/app}/routes/verification-preview.js (100%)
 rename {app => packages/frontend/app}/sentry.js (100%)
 rename {app => packages/frontend/app}/services/data-loader.js (100%)
 rename {app => packages/frontend/app}/services/graphql.js (100%)
 rename {app => packages/frontend/app}/services/ilios-metrics.js (100%)
 rename {app => packages/frontend/app}/services/page-title.js (100%)
 rename {app => packages/frontend/app}/services/reporting.js (100%)
 rename {app => packages/frontend/app}/services/session.js (100%)
 rename {app => packages/frontend/app}/session-stores/application.js (100%)
 rename {app => packages/frontend/app}/styles/app.scss (100%)
 rename {app => packages/frontend/app}/styles/components.scss (100%)
 rename {app => packages/frontend/app}/styles/components/admin-dashboard.scss (100%)
 rename {app => packages/frontend/app}/styles/components/api-version-check.scss (100%)
 rename {app => packages/frontend/app}/styles/components/assign-students.scss (100%)
 rename {app => packages/frontend/app}/styles/components/back-to-admin-dashboard.scss (100%)
 rename {app => packages/frontend/app}/styles/components/bulk-new-users.scss (100%)
 rename {app => packages/frontend/app}/styles/components/connection-status.scss (100%)
 rename {app => packages/frontend/app}/styles/components/course-director-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/course-search-result.scss (100%)
 rename {app => packages/frontend/app}/styles/components/courses/list-item.scss (100%)
 rename {app => packages/frontend/app}/styles/components/courses/list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/courses/new.scss (100%)
 rename {app => packages/frontend/app}/styles/components/courses/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/leadership-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/new-report.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/new-sequence-block.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/report-details.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/report-header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/report-overview.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/report-rollover.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/reports-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/sequence-block-header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/sequence-block-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/sequence-block-overview.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/sequence-block-session-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table1.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table2.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table3a.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table3b.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table4.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table5.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table6.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table7.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview-table8.scss (100%)
 rename {app => packages/frontend/app}/styles/components/curriculum-inventory/verification-preview.scss (100%)
 rename {app => packages/frontend/app}/styles/components/dashboard-loading.scss (100%)
 rename {app => packages/frontend/app}/styles/components/error.scss (100%)
 rename {app => packages/frontend/app}/styles/components/filter-tools.scss (100%)
 rename {app => packages/frontend/app}/styles/components/flash-messages.scss (100%)
 rename {app => packages/frontend/app}/styles/components/global-search-box.scss (100%)
 rename {app => packages/frontend/app}/styles/components/global-search.scss (100%)
 rename {app => packages/frontend/app}/styles/components/ilios-footer.scss (100%)
 rename {app => packages/frontend/app}/styles/components/ilios-header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/ilios-logo.scss (100%)
 rename {app => packages/frontend/app}/styles/components/ilios-navigation.scss (100%)
 rename {app => packages/frontend/app}/styles/components/ilios-users.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-group/courses.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-group/header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-group/instructor-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-group/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-group/users.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-groups/loading.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-groups/new.scss (100%)
 rename {app => packages/frontend/app}/styles/components/instructor-groups/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/bulk-assignment.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/calendar.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/cohort-user-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/instructor-group-members-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/instructor-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/members.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/new.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-group/user-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/learner-groups/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/locale-chooser.scss (100%)
 rename {app => packages/frontend/app}/styles/components/login-form.scss (100%)
 rename {app => packages/frontend/app}/styles/components/manage-users-summary.scss (100%)
 rename {app => packages/frontend/app}/styles/components/my-profile.scss (100%)
 rename {app => packages/frontend/app}/styles/components/new-directory-user.scss (100%)
 rename {app => packages/frontend/app}/styles/components/new-user.scss (100%)
 rename {app => packages/frontend/app}/styles/components/pagination-links.scss (100%)
 rename {app => packages/frontend/app}/styles/components/pending-single-user-updates.scss (100%)
 rename {app => packages/frontend/app}/styles/components/pending-user-updates.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-leadership-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-overview.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-publication-check.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/collapsed-objectives.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/competencies.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/courses.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/leadership-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/manage-objective-competency.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/manage-objective-descriptors.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/new.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/objective-list-item-competency.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/objective-list-item-descriptors.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/objective-list-item-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/objective-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/objectives.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program-year/visualize-objectives.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program/header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program/new.scss (100%)
 rename {app => packages/frontend/app}/styles/components/program/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/programs/list-item.scss (100%)
 rename {app => packages/frontend/app}/styles/components/programs/list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/programs/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/programyear-details.scss (100%)
 rename {app => packages/frontend/app}/styles/components/programyear-header.scss (100%)
 rename {app => packages/frontend/app}/styles/components/programyear-overview.scss (100%)
 rename {app => packages/frontend/app}/styles/components/reports/list-loading.scss (100%)
 rename {app => packages/frontend/app}/styles/components/reports/new-subject.scss (100%)
 rename {app => packages/frontend/app}/styles/components/reports/root.scss (100%)
 rename {app => packages/frontend/app}/styles/components/reports/subject.scss (100%)
 rename {app => packages/frontend/app}/styles/components/reports/subjects.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-competencies-collapsed.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-competencies-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-competencies-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-competencies-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-competencies-pcrs-mapper.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-curriculum-inventory-institution-details.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-curriculum-inventory-institution-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-leadership-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-new-vocabulary-form.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-attributes-collapsed.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-attributes-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-type-form.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-type-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-types-collapsed.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-types-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-types-list-item.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-session-types-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-vocabularies-collapsed.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-vocabularies-expanded.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-vocabularies-list.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-vocabulary-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-vocabulary-new-term.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school-vocabulary-term-manager.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school/session-type-visualize-vocabularies.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school/session-type-visualize-vocabulary.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school/visualizer-session-type-vocabularies.scss (100%)
 rename {app => packages/frontend/app}/styles/components/school/visualizer-session-type-vocabulary.scss (100%)
 rename {app => packages/frontend/app}/styles/components/simple-chart-tooltip.scss (100%)
 rename {app => packages/frontend/app}/styles/components/unassigned-students-summary.scss (100%)
 rename {app => packages/frontend/app}/styles/components/update-notification.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-menu.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile-bio.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile-calendar.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile-cohorts.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile-loading.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile-permissions.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile-roles.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile-schools.scss (100%)
 rename {app => packages/frontend/app}/styles/components/user-profile.scss (100%)
 rename {app => packages/frontend/app}/styles/components/visualizer-program-year-objectives.scss (100%)
 rename {app => packages/frontend/app}/styles/components/weekly-events.scss (100%)
 rename {app => packages/frontend/app}/styles/layout/_layout.scss (100%)
 rename {app => packages/frontend/app}/styles/layout/_noscript.scss (100%)
 rename {app => packages/frontend/app}/styles/mixins.scss (100%)
 rename {app => packages/frontend/app}/styles/mixins/admin-blocks.scss (100%)
 rename {app => packages/frontend/app}/styles/mixins/clearfix.scss (100%)
 rename {app => packages/frontend/app}/styles/mixins/header-menu.scss (100%)
 rename {app => packages/frontend/app}/styles/mixins/main-list.scss (100%)
 rename {app => packages/frontend/app}/styles/mixins/verification-preview-table.scss (100%)
 rename {app => packages/frontend/app}/templates/admin-dashboard.hbs (100%)
 rename {app => packages/frontend/app}/templates/application.hbs (100%)
 rename {app => packages/frontend/app}/templates/assign-students.hbs (100%)
 rename {app => packages/frontend/app}/templates/courses.hbs (100%)
 rename {app => packages/frontend/app}/templates/curriculum-inventory-report.hbs (100%)
 rename {app => packages/frontend/app}/templates/curriculum-inventory-report/index.hbs (100%)
 rename {app => packages/frontend/app}/templates/curriculum-inventory-report/rollover.hbs (100%)
 rename {app => packages/frontend/app}/templates/curriculum-inventory-reports.hbs (100%)
 rename {app => packages/frontend/app}/templates/curriculum-inventory-sequence-block.hbs (100%)
 rename {app => packages/frontend/app}/templates/dashboard-loading.hbs (100%)
 rename {app => packages/frontend/app}/templates/dashboard.hbs (100%)
 rename {app => packages/frontend/app}/templates/error.hbs (100%)
 rename {app => packages/frontend/app}/templates/four-oh-four.hbs (100%)
 rename {app => packages/frontend/app}/templates/instructor-group.hbs (100%)
 rename {app => packages/frontend/app}/templates/instructor-groups.hbs (100%)
 rename {app => packages/frontend/app}/templates/learner-group.hbs (100%)
 rename {app => packages/frontend/app}/templates/learner-groups.hbs (100%)
 rename {app => packages/frontend/app}/templates/login.hbs (100%)
 rename {app => packages/frontend/app}/templates/logout.hbs (100%)
 rename {app => packages/frontend/app}/templates/myprofile.hbs (100%)
 rename {app => packages/frontend/app}/templates/pending-user-updates.hbs (100%)
 rename {app => packages/frontend/app}/templates/program-year-visualize-objectives.hbs (100%)
 rename {app => packages/frontend/app}/templates/program-year.hbs (100%)
 rename {app => packages/frontend/app}/templates/program-year/index.hbs (100%)
 rename {app => packages/frontend/app}/templates/program.hbs (100%)
 rename {app => packages/frontend/app}/templates/program/index.hbs (100%)
 rename {app => packages/frontend/app}/templates/program/publication-check.hbs (100%)
 rename {app => packages/frontend/app}/templates/programs.hbs (100%)
 rename {app => packages/frontend/app}/templates/reports.hbs (100%)
 rename {app => packages/frontend/app}/templates/school.hbs (100%)
 rename {app => packages/frontend/app}/templates/schools.hbs (100%)
 rename {app => packages/frontend/app}/templates/search.hbs (100%)
 rename {app => packages/frontend/app}/templates/session-type-visualize-vocabularies.hbs (100%)
 rename {app => packages/frontend/app}/templates/session-type-visualize-vocabulary.hbs (100%)
 rename {app => packages/frontend/app}/templates/subject-report.hbs (100%)
 rename {app => packages/frontend/app}/templates/user.hbs (100%)
 rename {app => packages/frontend/app}/templates/users.hbs (100%)
 rename {app => packages/frontend/app}/templates/verification-preview.hbs (100%)
 rename {app => packages/frontend/app}/utils/clone-learner-group.js (100%)
 rename {app => packages/frontend/app}/utils/count-digits.js (100%)
 rename {app => packages/frontend/app}/utils/create-download-file.js (100%)
 rename {app => packages/frontend/app}/utils/launch-worker.js (100%)
 rename {app => packages/frontend/app}/utils/pcrs-uri-to-number.js (100%)
 rename {app => packages/frontend/app}/utils/random-string.js (100%)
 rename {app => packages/frontend/app}/utils/readable-file-size.js (100%)
 rename {app => packages/frontend/app}/utils/sort-cohorts.js (100%)
 rename {config => packages/frontend/config}/coverage.js (100%)
 rename {config => packages/frontend/config}/dependency-lint.js (100%)
 rename {config => packages/frontend/config}/deploy.js (100%)
 rename {config => packages/frontend/config}/deprecation-workflow.js (100%)
 rename {config => packages/frontend/config}/ember-cli-update.json (100%)
 rename {config => packages/frontend/config}/ember-intl.js (100%)
 rename {config => packages/frontend/config}/ember-try.js (100%)
 rename {config => packages/frontend/config}/environment.js (100%)
 rename {config => packages/frontend/config}/icons.js (100%)
 rename {config => packages/frontend/config}/manifest.js (100%)
 rename {config => packages/frontend/config}/optional-features.json (100%)
 rename {config => packages/frontend/config}/targets.js (100%)
 rename ember-cli-build.js => packages/frontend/ember-cli-build.js (100%)
 rename {lib => packages/frontend/lib}/.eslintrc.js (100%)
 rename {lib => packages/frontend/lib}/ilios-error/index.js (100%)
 rename {lib => packages/frontend/lib}/ilios-error/package.json (100%)
 rename {lib => packages/frontend/lib}/ilios-error/public/style.css (100%)
 rename {lib => packages/frontend/lib}/ilios-loading/index.js (100%)
 rename {lib => packages/frontend/lib}/ilios-loading/package.json (100%)
 rename {lib => packages/frontend/lib}/ilios-loading/public/display-loader.js (100%)
 rename {lib => packages/frontend/lib}/ilios-loading/public/remove-loader-tests.js (100%)
 rename {lib => packages/frontend/lib}/images/sunburst-icon.svg (100%)
 rename {lib => packages/frontend/lib}/images/sunburst.svg (100%)
 rename {mirage => packages/frontend/mirage}/config.js (100%)
 create mode 100644 packages/frontend/package.json
 rename {public => packages/frontend/public}/_redirects (100%)
 rename {public => packages/frontend/public}/assets/images/ilios-logo.svg (100%)
 rename {public => packages/frontend/public}/assets/images/select-down-arrow.png (100%)
 rename {public => packages/frontend/public}/crossdomain.xml (100%)
 rename {public => packages/frontend/public}/favicon.ico (100%)
 rename {public => packages/frontend/public}/fontawesome/brands.svg (100%)
 rename {public => packages/frontend/public}/fontawesome/regular.svg (100%)
 rename {public => packages/frontend/public}/fontawesome/solid.svg (100%)
 rename {public => packages/frontend/public}/robots.txt (100%)
 rename {public => packages/frontend/public}/sw.js (100%)
 rename testem.browserstack.js => packages/frontend/testem.browserstack.js (100%)
 rename testem.js => packages/frontend/testem.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/admin-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/api-version-notice-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/assignstudents-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/courses-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/curriculum-inventory/leadership-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/curriculum-inventory/nested-sequence-blocks-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/curriculum-inventory/report-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/curriculum-inventory/reports-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/curriculum-inventory/rollover-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/curriculum-inventory/sequence-blocks-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/dashboard/accessibility-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/events-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/footer-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/four-oh-four-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/header-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/instructorgroup-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/instructorgroups-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/learner-group/bulk-assignment-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/learnergroup-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/learnergroups-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/login-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/pending-user-updates-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program-year/competencies-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program-year/leadership-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program-year/objectives-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program-year/objectiveterms-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program-year/terms-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program/leadership-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program/overview-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program/programyear-list-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/program/publicationcheck-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/programs-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/reports/subject-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/reports/subjects-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/school/session-attributes-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/school/session-types-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/search-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/user-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/users-test.js (100%)
 rename {tests => packages/frontend/tests}/acceptance/weeklyevents-test.js (100%)
 rename {tests => packages/frontend/tests}/helpers/flash-message.js (100%)
 rename {tests => packages/frontend/tests}/helpers/index.js (100%)
 rename {tests => packages/frontend/tests}/index.html (100%)
 rename {tests => packages/frontend/tests}/integration/components/assign-students-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/back-to-admin-dashboard-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/bulk-new-users-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/competency-title-editor-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/connection-status-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/course-search-result-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/courses/list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/courses/list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/courses/new-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/courses/root-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/leadership-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/new-report-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/new-sequence-block-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/report-details-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/report-header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/report-list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/report-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/report-overview-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/report-rollover-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/reports-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/sequence-block-details-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/sequence-block-header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/sequence-block-list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/sequence-block-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/sequence-block-overview-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/sequence-block-session-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/sequence-block-session-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table1-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table2-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table3a-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table3b-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table4-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table5-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table6-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table7-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-table8-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/curriculum-inventory/verification-preview-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/dashboard-loading-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/error-display-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/flash-messages-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/global-search-box-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/global-search-tags-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/global-search-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/ilios-header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/ilios-navigation-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/ilios-users-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-group/courses-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-group/header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-group/instructor-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-group/root-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-group/users-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-groups/list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-groups/list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-groups/loading-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-groups/new-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/instructor-groups/root-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/calendar-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/cohort-user-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/instructor-group-members-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/instructor-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/members-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/new-multiple-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/new-single-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/new-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/root-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-group/user-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/learner-groups/root-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/link-to-with-action-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/locale-chooser-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/login-form-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/manage-users-summary-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/my-profile-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/new-competency-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/new-directory-user-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/new-user-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/pagination-links-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/pending-single-user-update-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/pending-updates-summary-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/collapsed-objectives-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/competencies-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/competency-list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/courses-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/leadership-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/manage-objective-competency-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/manage-objective-descriptors-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/managed-competency-list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/new-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/objective-list-item-competency-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/objective-list-item-descriptors-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/objective-list-item-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/objective-list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/objective-list-loading-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/objective-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/objectives-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/overview-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program-year/visualize-objectives-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program/header-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program/leadership-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/program/new-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/programs/list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/programs/list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/programs/root-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/list-loading-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/new-subject-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/root-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject-results-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/competency-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/course-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/instructor-group-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/instructor-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/learning-material-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/mesh-term-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/competency-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/course-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/instructor-group-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/instructor-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/learning-material-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/mesh-term-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/program-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/program-year-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/search/input-test.js (99%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/session-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/session-type-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/new/term-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/program-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/program-year-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/session-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/session-type-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/subject/term-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/table-row-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/reports/table-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-competencies-collapsed-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-competencies-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-competencies-list-item-pcrs-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-competencies-list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-competencies-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-competencies-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-competencies-pcrs-mapper-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-curriculum-inventory-institution-details-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-curriculum-inventory-institution-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-leadership-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-new-vocabulary-form-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-attributes-collapsed-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-attributes-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-attributes-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-attributes-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-type-form-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-type-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-types-collapsed-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-types-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-types-list-item-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-session-types-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-vocabularies-collapsed-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-vocabularies-expanded-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-vocabularies-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-vocabulary-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-vocabulary-new-term-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school-vocabulary-term-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school/session-type-visualize-vocabularies-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school/session-type-visualize-vocabulary-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school/visualizer-session-type-vocabularies-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/school/visualizer-session-type-vocabulary-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/unassigned-students-summary-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/update-notification-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-list-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-menu-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-bio-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-calendar-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-cohorts-details-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-cohorts-manager-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-cohorts-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-ics-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-permissions-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-roles-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile/learner-group-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/user-profile/learner-groups-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/visualizer-program-year-objectives-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/components/yes-no-test.js (100%)
 rename {tests => packages/frontend/tests}/integration/helpers/pcrs-uri-to-number-test.js (100%)
 rename {tests => packages/frontend/tests}/pages/assign-students.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/assign-students.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/back-to-admin-dashboard.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/competency-title-editor.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/course-search-result.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/courses/list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/courses/list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/courses/new.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/courses/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/leadership-collapsed.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/leadership-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/new-report.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/new-sequence-block.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/report-details.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/report-header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/report-list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/report-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/report-overview.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/report-rollover.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/reports.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/sequence-block-details.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/sequence-block-header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/sequence-block-list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/sequence-block-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/sequence-block-overview.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/sequence-block-session-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/sequence-block-session-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table1.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table2.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table3a.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table3b.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table4.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table5.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table6.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table7.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview-table8.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/curriculum-inventory/verification-preview.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/flash-messages.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/global-search-box.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/global-search-tags.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/global-search.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/ilios-header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/ilios-navigation.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/ilios-users.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-group/courses.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-group/header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-group/instructor-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-group/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-group/users.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-groups/list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-groups/list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-groups/new.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/instructor-groups/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/bulk-assignment.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/calendar.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/cohort-user-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/instructor-group-members-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/instructor-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/members.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/new-multiple.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/new-single.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/new.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-group/user-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/learner-groups/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/locale-chooser.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/login-form.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/my-profile.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/new-competency.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/new-directory-user.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/new-user.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/pagination-links.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/pending-single-user-update.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/pending-updates-summary.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/collapsed-objectives.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/competencies.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/competency-list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/courses.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/details.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/leadership-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/manage-objective-competency.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/manage-objective-descriptors.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/managed-competency-list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/new.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/objective-list-item-competency.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/objective-list-item-descriptors.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/objective-list-item-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/objective-list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/objective-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/objectives.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/overview.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program-year/visualize-objectives.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program/header.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program/leadership-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program/new.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program/overview.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/program/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/programs/list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/programs/list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/programs/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/new-subject.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/results.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/root.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/run-subject.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/competency.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/course.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/instructor-group.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/instructor.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/learning-material.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/mesh-term.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/competency.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/course.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/instructor-group.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/instructor.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/learning-material.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/mesh-term.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/program-year.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/program.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/search/input.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/session-type.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/session.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/new/term.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/program-year.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/program.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/session-type.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/session.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/subject/term.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/table-row.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/reports/table.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-competencies-collapsed.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-competencies-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-competencies-list-item-pcrs.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-competencies-list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-competencies-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-competencies-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-competencies-pcrs-mapper.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-curriculum-inventory-institution-details.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-curriculum-inventory-institution-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-leadership-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-new-vocabulary-form.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-attributes-collapsed.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-attributes-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-attributes-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-attributes.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-type-form.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-type-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-types-collapsed.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-types-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-types-list-item.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-session-types-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-vocabularies-collapsed.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-vocabularies-expanded.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-vocabularies-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-vocabulary-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-vocabulary-new-term.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school-vocabulary-term-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school/session-type-visualize-vocabularies.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school/session-type-visualize-vocabulary.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school/visualizer-session-type-vocabularies.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/school/visualizer-session-type-vocabulary.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/unassigned-students-summary.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-list.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-menu.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-bio.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-calendar.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-cohorts-details.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-cohorts-manager.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-cohorts.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-ics.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-permissions.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile-roles.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/user-profile/learner-groups.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/visualizer-program-year-objectives.js (100%)
 rename {tests => packages/frontend/tests}/pages/components/yes-no.js (100%)
 rename {tests => packages/frontend/tests}/pages/courses.js (100%)
 rename {tests => packages/frontend/tests}/pages/curriculum-inventory-report-rollover.js (100%)
 rename {tests => packages/frontend/tests}/pages/curriculum-inventory-report.js (100%)
 rename {tests => packages/frontend/tests}/pages/curriculum-inventory-reports.js (100%)
 rename {tests => packages/frontend/tests}/pages/curriculum-inventory-sequence-block.js (100%)
 rename {tests => packages/frontend/tests}/pages/dashboard.js (100%)
 rename {tests => packages/frontend/tests}/pages/instructor-group.js (100%)
 rename {tests => packages/frontend/tests}/pages/instructor-groups.js (100%)
 rename {tests => packages/frontend/tests}/pages/learner-group.js (100%)
 rename {tests => packages/frontend/tests}/pages/learner-groups.js (100%)
 rename {tests => packages/frontend/tests}/pages/pending-user-updates.js (100%)
 rename {tests => packages/frontend/tests}/pages/program-year.js (100%)
 rename {tests => packages/frontend/tests}/pages/program.js (100%)
 rename {tests => packages/frontend/tests}/pages/programs.js (100%)
 rename {tests => packages/frontend/tests}/pages/reports-subject.js (100%)
 rename {tests => packages/frontend/tests}/pages/reports.js (100%)
 rename {tests => packages/frontend/tests}/pages/school.js (100%)
 rename {tests => packages/frontend/tests}/pages/search.js (100%)
 rename {tests => packages/frontend/tests}/pages/user.js (100%)
 rename {tests => packages/frontend/tests}/pages/users.js (100%)
 rename {tests => packages/frontend/tests}/test-helper.js (100%)
 rename {tests => packages/frontend/tests}/unit/adapters/application-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/admin-dashboard-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/application-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/assign-students-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/courses-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/curriculum-inventory-report/index-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/curriculum-inventory-report/rollover-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/curriculum-inventory-reports-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/curriculum-inventory-sequence-block-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/instructor-groups-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/learner-group-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/learner-groups-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/pending-user-updates-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/program-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/reports-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/reports/subject.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/school-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/search-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/controllers/user-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/initializers/inflector-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/initializers/metrics-imports-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/mixins/live-search-item-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/services/data-loader-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/services/graphql-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/services/ilios-metrics-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/services/reporting-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/services/session-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/services/user-events-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/utils/clone-learner-group-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/utils/count-digits-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/utils/launch-worker-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/utils/pcrs-uri-to-number-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/utils/random-string-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/utils/readable-file-size-test.js (100%)
 rename {tests => packages/frontend/tests}/unit/utils/sort-cohorts-test.js (100%)
 rename {translations => packages/frontend/translations}/en-us.yaml (100%)
 rename {translations => packages/frontend/translations}/es.yaml (100%)
 rename {translations => packages/frontend/translations}/fr.yaml (100%)
 create mode 100644 pnpm-workspace.yaml

diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index bff303ed8d..0000000000
--- a/.dockerignore
+++ /dev/null
@@ -1,11 +0,0 @@
-.dockerignore
-.env
-.git
-.gitignore
-.gitattributes
-.travis.yml
-bower_components
-Dockerfile
-dist
-node_modules
-tmp
diff --git a/.eslintignore b/.eslintignore
index 9385391f21..ef8a2c97b1 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,13 +1,13 @@
 # unconventional js
-/blueprints/*/files/
+/packages/*/blueprints/*/files/
 
 # compiled output
-/dist/
+/packages/*/dist/
 
 # misc
-/coverage/
+/packages/*/coverage/
 !.*
 .*/
 
 # ember-try
-/.node_modules.ember-try/
+/packages/*/.node_modules.ember-try/
diff --git a/.eslintrc.js b/.eslintrc.js
index 5990a6f69a..f623b2ec2c 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -35,13 +35,13 @@ module.exports = {
         './.prettierrc.js',
         './.stylelintrc.js',
         './.template-lintrc.js',
-        './ember-cli-build.js',
-        './testem.js',
-        './testem.browserstack.js',
-        './blueprints/*/index.js',
-        './config/**/*.js',
-        './lib/*/index.js',
-        './server/**/*.js',
+        './packages/frontend/lib/*/index.js',
+        './packages/*/ember-cli-build.js',
+        './packages/*/index.js',
+        './packages/*/testem.js',
+        './packages/frontend/testem.browserstack.js',
+        './packages/*/blueprints/*/index.js',
+        './packages/*/config/**/*.js',
       ],
       parserOptions: {
         sourceType: 'script',
diff --git a/.github/workflows/asset-size-check.yml b/.github/workflows/asset-size-check.yml
deleted file mode 100644
index 35462987a3..0000000000
--- a/.github/workflows/asset-size-check.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-name: Ember Asset Sizes
-
-on: [pull_request]
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v4
-      with:
-        fetch-depth: 0
-    - uses: pnpm/action-setup@v2
-      with:
-        version: 8
-    - uses: mainmatter/ember-asset-size-action@v3
-      with:
-        repo-token: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml
index 238053ee12..a4ab74a211 100644
--- a/.github/workflows/auto-merge.yml
+++ b/.github/workflows/auto-merge.yml
@@ -9,7 +9,6 @@ jobs:
     strategy:
       matrix:
         safe-dependency:
-        - "@ilios/ember-template-lint-plugin"
         - "@sentry/ember"
         - "browserslist"
         - "caniuse-db"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index fcaf14be9f..088f859dcb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -78,7 +78,7 @@ jobs:
       - name: install dependencies
         run: pnpm install
       - name: test build
-        run: pnpm run build
+        run: pnpm run --filter frontend build
 
   browserstack-test:
     name: Browserstack ${{ matrix.launcher }}
@@ -114,10 +114,10 @@ jobs:
           # The Job ID + Run ID isn't unique across matrix runs and will fail when run simultaneously
           BROWSERSTACK_LOCAL_ID_SUFFIX: ${{ matrix.launcher }}
         run: |
-          pnpm run browserstack:connect
-          pnpm run test:ember:browserstack --launch=${{ matrix.launcher }}
-          pnpm run browserstack:disconnect
-          pnpm run browserstack:results
+          pnpm run --filter frontend browserstack:connect
+          pnpm run --filter frontend test:ember:browserstack --launch=${{ matrix.launcher }}
+          pnpm run --filter frontend browserstack:disconnect
+          pnpm run --filter frontend browserstack:results
 
   firefox-test:
     name: Browser Tests (Firefox)
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
deleted file mode 100644
index 5469526407..0000000000
--- a/.github/workflows/coverage.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-name: Report Code Coverage
-
-on:
-  schedule:
-    - cron: '15 18 * * 5' # weekly, on Friday night
-
-env:
-  SW_DISABLED: true
-  COVERAGE: true
-  CC_TEST_REPORTER_ID: 8c510ad3aa4b1a2a3d504dfdbcc5605e7966c019dc1e9b68a815de50b946ebc6
-
-jobs:
-  test:
-    name: Test and Calculate Coverage
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v4
-    - uses: pnpm/action-setup@v2
-      with:
-        version: 8
-    - uses: actions/setup-node@v4
-      with:
-        node-version: 18
-        cache: pnpm
-    - name: install dependencies
-      run: pnpm install
-    - name: calculate
-      uses: paambaati/codeclimate-action@v5.0.0
-      with:
-        coverageCommand: pnpm run test:ember
diff --git a/.github/workflows/deploy-pr.yml b/.github/workflows/deploy-pr.yml
index ccb12ae8a7..5f25ac48ea 100644
--- a/.github/workflows/deploy-pr.yml
+++ b/.github/workflows/deploy-pr.yml
@@ -25,6 +25,7 @@ jobs:
         cache: pnpm
     - run: pnpm install
     - name: Ember CLI Deploy
+      working-directory: ./packages/frontend
       run: node_modules/.bin/ember deploy pr-preview
       env:
         AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml
index 2217dd7b22..c6891ef016 100644
--- a/.github/workflows/deploy-production.yml
+++ b/.github/workflows/deploy-production.yml
@@ -25,7 +25,7 @@ jobs:
         cache: pnpm
     - run: pnpm install
     - name: Ember CLI Deploy
-      run: pnpm run deploy:production
+      run: pnpm run --filter frontend deploy:production
       env:
         AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
         AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -37,7 +37,7 @@ jobs:
         export SENTRY_RELEASE=$(sentry-cli releases propose-version)
         sentry-cli releases new $SENTRY_RELEASE
         sentry-cli releases set-commits --auto $SENTRY_RELEASE
-        sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps tmp/deploy-dist/
+        sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps packages/frontend/tmp/deploy-dist/
         sentry-cli releases finalize $SENTRY_RELEASE
       env:
         SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml
index ae589c6992..22e95b1db3 100644
--- a/.github/workflows/deploy-staging.yml
+++ b/.github/workflows/deploy-staging.yml
@@ -23,7 +23,7 @@ jobs:
         cache: pnpm
     - run: pnpm install
     - name: Ember CLI Deploy
-      run: pnpm run deploy:staging
+      run: pnpm run --filter frontend deploy:staging
       env:
         AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
         AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
diff --git a/.github/workflows/percy.yml b/.github/workflows/percy.yml
index 6169df0172..5d0467f8db 100644
--- a/.github/workflows/percy.yml
+++ b/.github/workflows/percy.yml
@@ -1,14 +1,8 @@
 name: Percy Visual Tests
 
 on:
-  push:
-    tags:
-      - '*'
   pull_request_target:
     types: [labeled,opened,reopened,synchronize]
-  schedule:
-    - cron: "15 23 * * 2,4" # T,Th in the afternoon (UTC)
-  workflow_dispatch:
 
 concurrency:
   group: percy-${{ github.head_ref || github.ref }}
@@ -28,6 +22,8 @@ jobs:
     timeout-minutes: 20
     steps:
       - uses: actions/checkout@v4
+        with:
+          ref: "${{ github.event.pull_request.merge_commit_sha }}"
       - uses: pnpm/action-setup@v2
         with:
           version: 8
@@ -37,7 +33,7 @@ jobs:
           cache: pnpm
       - run: pnpm install
       - name: Run Percy Tests
-        run: pnpm run percy:test
+        run: pnpm run --filter frontend test:percy
       - uses: act10ns/slack@v2
         if: failure()
         with:
diff --git a/.github/workflows/tag_version.yaml b/.github/workflows/tag_version.yaml
index d9decf7ee0..84e3517c38 100644
--- a/.github/workflows/tag_version.yaml
+++ b/.github/workflows/tag_version.yaml
@@ -14,13 +14,9 @@ jobs:
     - uses: actions/checkout@v4
       with:
           token: ${{ secrets.ZORGBORT_TOKEN }}
-    - uses: pnpm/action-setup@v2
-      with:
-        version: 8
     - uses: actions/setup-node@v4
       with:
         node-version: 18
-        cache: pnpm
     - name: Validate releaseType
       run: npx in-string-list ${{ github.event.inputs.releaseType }} major,minor,patch
     - name: Setup Git
@@ -28,6 +24,15 @@ jobs:
         git config user.name Zorgbort
         git config user.email info@iliosproject.org
     - name: Increment Version
-      run: pnpm version ${{ github.event.inputs.releaseType }}
+      working-directory: ./packages/frontend
+      run: npx versionup --level ${{ github.event.inputs.releaseType }}
+    - run: |
+        NEW_TAG=`node -p "require('./packages/frontend/package.json').version"`
+        echo ${NEW_TAG}
+        echo "new_tag=${NEW_TAG}" >> $GITHUB_ENV
+    - name: Tag Version
+      run: |
+        git commit -a -m "${{env.new_tag}}"
+        git tag v${{env.new_tag}} -m "Tagging the v${{env.new_tag}} ${{ github.event.inputs.releaseType }} release"
     - name: Push Changes
       run: git push --follow-tags
diff --git a/.gitignore b/.gitignore
index ec4a7500d6..dbe5764f0e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,32 +1,21 @@
-# compiled output
-/dist/
-/declarations/
+# See https://help.github.com/ignore-files/ for more about ignoring files.
 
 # dependencies
-/node_modules/
+node_modules/
 
 # misc
-/.env*
-/.pnp*
-/.eslintcache
-/coverage/
-/npm-debug.log*
-/testem.log
-/yarn-error.log
-
-lcov.dat
-sauce-example.log
+.env*
+.pnp*
+.pnpm-debug.log
+.sass-cache
+.eslintcache
+coverage/
+npm-debug.log*
+yarn-error.log
 
 # ember-try
 /.node_modules.ember-try/
-/npm-shrinkwrap.json.ember-try
 /package.json.ember-try
 /package-lock.json.ember-try
 /yarn.lock.ember-try
-
-# broccoli-debug
-/DEBUG/
-
-#browserstack via ember-cli-browserstack
-browserstack-local.pid
-local.log
+/pnpm-lock.ember-try.yaml
diff --git a/.lint-todo b/.lint-todo
deleted file mode 100644
index 7f02d68266..0000000000
--- a/.lint-todo
+++ /dev/null
@@ -1,234 +0,0 @@
-
-
-
-
-add|ember-template-lint|require-presentational-children|35|8|35|8|d5438b84487c5f3a6d6727f799488c66694e4bf2|1651017600000|1653609600000|1656201600000|app/components/course-search-result.hbs
-
-
-
-
-
-add|ember-template-lint|require-presentational-children|43|12|43|12|1feaae191a43b2433bfe69681dafa9bd2dbb6e82|1651017600000|1653609600000|1656201600000|app/components/global-search-box.hbs
-
-
-
-
-
-
-
-
-
-
-
-add|ember-template-lint|require-presentational-children|20|6|20|6|c5a6187196130cc3296ef3dbc64ee5f5ff5a6395|1651017600000|1653609600000|1656201600000|app/components/learnergroup-calendar.hbs
-add|ember-template-lint|require-presentational-children|26|6|26|6|3c5ff50ddbfccb95d877794d169e2184b81b0ebf|1651017600000|1653609600000|1656201600000|app/components/learnergroup-calendar.hbs
-
-
-add|ember-template-lint|require-presentational-children|41|16|41|16|2c0e802f8870a246522160f8ad9fe3f2df82700c|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-add|ember-template-lint|require-presentational-children|42|16|42|16|303798bf2d7c802f21c8b927d79c6346d0a1e1de|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-add|ember-template-lint|require-presentational-children|59|18|59|18|b2d395a69c0dff6cdfc1c7c3b342eaa4b0ef6c11|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-add|ember-template-lint|require-presentational-children|61|18|61|18|303798bf2d7c802f21c8b927d79c6346d0a1e1de|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-add|ember-template-lint|require-presentational-children|99|22|99|22|e8094c6dbfd595a75379e0286c29dedcbf62b6b4|1651017600000|1653609600000|1656201600000|app/components/learnergroup-list.hbs
-add|ember-template-lint|require-presentational-children|101|22|101|22|42b77ab3c30aae7685c4eedbe560b320edee253a|1651017600000|1653609600000|1656201600000|app/components/learnergroup-list.hbs
-
-
-
-
-
-
-
-add|ember-template-lint|no-autofocus-attribute|28|12|28|12|438b3b105276037fc1f0594dc46e727083aac033|1651017600000|1653609600000|1656201600000|app/components/login-form.hbs
-add|ember-template-lint|require-presentational-children|87|18|87|18|dc45dbaa985b505809e1ca441660e5429048c991|1651017600000|1653609600000|1656201600000|app/components/manage-users-summary.hbs
-
-
-
-
-add|ember-template-lint|require-presentational-children|115|18|115|18|47480b0614fb4959cd48a90d954d0b1e4ea073a8|1651017600000|1653609600000|1656201600000|app/components/new-myreport.hbs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-add|ember-template-lint|require-presentational-children|56|20|56|20|5ef9a660f2f0ea94861c3f3088bd67e5193f67d0|1651017600000|1653609600000|1656201600000|app/components/school-vocabularies-list.hbs
-add|ember-template-lint|require-presentational-children|54|14|54|14|876dfcb3439c0efbb46426d7ce6521438ec8e7b4|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-manager.hbs
-add|ember-template-lint|require-presentational-children|68|16|68|16|9de6755d3f9bb4aaa14f43907369578da5f4ec16|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-manager.hbs
-add|ember-template-lint|require-presentational-children|71|16|71|16|d0d2264f1f8e728171b7d15f7a7e343feaf1053b|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-manager.hbs
-
-add|ember-template-lint|require-presentational-children|111|14|111|14|876dfcb3439c0efbb46426d7ce6521438ec8e7b4|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-term-manager.hbs
-add|ember-template-lint|require-presentational-children|125|16|125|16|9de6755d3f9bb4aaa14f43907369578da5f4ec16|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-term-manager.hbs
-add|ember-template-lint|require-presentational-children|128|16|128|16|d0d2264f1f8e728171b7d15f7a7e343feaf1053b|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-term-manager.hbs
-
-
-
-
-
-add|ember-template-lint|require-presentational-children|11|6|11|6|c5a6187196130cc3296ef3dbc64ee5f5ff5a6395|1651017600000|1653609600000|1656201600000|app/components/user-profile-calendar.hbs
-add|ember-template-lint|require-presentational-children|17|6|17|6|3c5ff50ddbfccb95d877794d169e2184b81b0ebf|1651017600000|1653609600000|1656201600000|app/components/user-profile-calendar.hbs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-add|ember-template-lint|require-presentational-children|82|22|82|22|f07284d49443646868d889410613ebc7e7cef466|1651017600000|1653609600000|1656201600000|app/templates/pending-user-updates.hbs
-add|ember-template-lint|require-presentational-children|97|20|97|20|345afd41538c6cc791ec540186f8fc2980a305bd|1651017600000|1653609600000|1656201600000|app/templates/pending-user-updates.hbs
-add|ember-template-lint|require-presentational-children|111|20|111|20|bc1ecd33f126e9535e0f0b112c3289aa39fdf1d6|1651017600000|1653609600000|1656201600000|app/templates/pending-user-updates.hbs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-add|ember-template-lint|require-presentational-children|12|4|12|4|9ff73b7ab2d2a3ab215e112d343dd44b1cba517a|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/report-list-item.hbs
-add|ember-template-lint|require-presentational-children|78|8|78|8|cc092ac2c6e1080bdd07204035b20eddb4b41522|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/report-list-item.hbs
-
-add|ember-template-lint|require-presentational-children|33|14|33|14|6f5bd03b03df627ce9978a56bf5bca456c9b901a|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/report-overview.hbs
-
-
-
-
-add|ember-template-lint|require-presentational-children|55|8|55|8|42b77ab3c30aae7685c4eedbe560b320edee253a|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/sequence-block-list-item.hbs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-add|ember-template-lint|require-presentational-children|89|8|89|8|42b77ab3c30aae7685c4eedbe560b320edee253a|1651017600000|1653609600000|1656201600000|app/components/program-year/objective-list-item.hbs
-
-
-
-
-
-
-
-
-
-
-
-
-remove|ember-template-lint|require-presentational-children|89|8|89|8|42b77ab3c30aae7685c4eedbe560b320edee253a|1651017600000|1653609600000|1656201600000|app/components/program-year/objective-list-item.hbs
-remove|ember-template-lint|require-presentational-children|78|8|78|8|cc092ac2c6e1080bdd07204035b20eddb4b41522|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/report-list-item.hbs
-remove|ember-template-lint|require-presentational-children|20|6|20|6|c5a6187196130cc3296ef3dbc64ee5f5ff5a6395|1651017600000|1653609600000|1656201600000|app/components/learnergroup-calendar.hbs
-remove|ember-template-lint|require-presentational-children|26|6|26|6|3c5ff50ddbfccb95d877794d169e2184b81b0ebf|1651017600000|1653609600000|1656201600000|app/components/learnergroup-calendar.hbs
-remove|ember-template-lint|require-presentational-children|41|16|41|16|2c0e802f8870a246522160f8ad9fe3f2df82700c|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-remove|ember-template-lint|require-presentational-children|42|16|42|16|303798bf2d7c802f21c8b927d79c6346d0a1e1de|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-remove|ember-template-lint|require-presentational-children|59|18|59|18|b2d395a69c0dff6cdfc1c7c3b342eaa4b0ef6c11|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-remove|ember-template-lint|require-presentational-children|61|18|61|18|303798bf2d7c802f21c8b927d79c6346d0a1e1de|1651017600000|1653609600000|1656201600000|app/components/learnergroup-instructor-manager.hbs
-remove|ember-template-lint|require-presentational-children|99|22|99|22|e8094c6dbfd595a75379e0286c29dedcbf62b6b4|1651017600000|1653609600000|1656201600000|app/components/learnergroup-list.hbs
-remove|ember-template-lint|require-presentational-children|101|22|101|22|42b77ab3c30aae7685c4eedbe560b320edee253a|1651017600000|1653609600000|1656201600000|app/components/learnergroup-list.hbs
-remove|ember-template-lint|no-autofocus-attribute|28|12|28|12|438b3b105276037fc1f0594dc46e727083aac033|1651017600000|1653609600000|1656201600000|app/components/login-form.hbs
-remove|ember-template-lint|require-presentational-children|87|18|87|18|dc45dbaa985b505809e1ca441660e5429048c991|1651017600000|1653609600000|1656201600000|app/components/manage-users-summary.hbs
-remove|ember-template-lint|require-presentational-children|115|18|115|18|47480b0614fb4959cd48a90d954d0b1e4ea073a8|1651017600000|1653609600000|1656201600000|app/components/new-myreport.hbs
-remove|ember-template-lint|require-presentational-children|56|20|56|20|5ef9a660f2f0ea94861c3f3088bd67e5193f67d0|1651017600000|1653609600000|1656201600000|app/components/school-vocabularies-list.hbs
-remove|ember-template-lint|require-presentational-children|54|14|54|14|876dfcb3439c0efbb46426d7ce6521438ec8e7b4|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-manager.hbs
-remove|ember-template-lint|require-presentational-children|68|16|68|16|9de6755d3f9bb4aaa14f43907369578da5f4ec16|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-manager.hbs
-remove|ember-template-lint|require-presentational-children|71|16|71|16|d0d2264f1f8e728171b7d15f7a7e343feaf1053b|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-manager.hbs
-remove|ember-template-lint|require-presentational-children|111|14|111|14|876dfcb3439c0efbb46426d7ce6521438ec8e7b4|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-term-manager.hbs
-remove|ember-template-lint|require-presentational-children|125|16|125|16|9de6755d3f9bb4aaa14f43907369578da5f4ec16|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-term-manager.hbs
-remove|ember-template-lint|require-presentational-children|128|16|128|16|d0d2264f1f8e728171b7d15f7a7e343feaf1053b|1651017600000|1653609600000|1656201600000|app/components/school-vocabulary-term-manager.hbs
-remove|ember-template-lint|require-presentational-children|11|6|11|6|c5a6187196130cc3296ef3dbc64ee5f5ff5a6395|1651017600000|1653609600000|1656201600000|app/components/user-profile-calendar.hbs
-remove|ember-template-lint|require-presentational-children|17|6|17|6|3c5ff50ddbfccb95d877794d169e2184b81b0ebf|1651017600000|1653609600000|1656201600000|app/components/user-profile-calendar.hbs
-remove|ember-template-lint|require-presentational-children|82|22|82|22|f07284d49443646868d889410613ebc7e7cef466|1651017600000|1653609600000|1656201600000|app/templates/pending-user-updates.hbs
-remove|ember-template-lint|require-presentational-children|97|20|97|20|345afd41538c6cc791ec540186f8fc2980a305bd|1651017600000|1653609600000|1656201600000|app/templates/pending-user-updates.hbs
-remove|ember-template-lint|require-presentational-children|111|20|111|20|bc1ecd33f126e9535e0f0b112c3289aa39fdf1d6|1651017600000|1653609600000|1656201600000|app/templates/pending-user-updates.hbs
-remove|ember-template-lint|require-presentational-children|12|4|12|4|9ff73b7ab2d2a3ab215e112d343dd44b1cba517a|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/report-list-item.hbs
-remove|ember-template-lint|require-presentational-children|33|14|33|14|6f5bd03b03df627ce9978a56bf5bca456c9b901a|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/report-overview.hbs
-remove|ember-template-lint|require-presentational-children|55|8|55|8|42b77ab3c30aae7685c4eedbe560b320edee253a|1651017600000|1653609600000|1656201600000|app/components/curriculum-inventory/sequence-block-list-item.hbs
-remove|ember-template-lint|require-presentational-children|43|12|43|12|1feaae191a43b2433bfe69681dafa9bd2dbb6e82|1651017600000|1653609600000|1656201600000|app/components/global-search-box.hbs
-remove|ember-template-lint|require-presentational-children|35|8|35|8|d5438b84487c5f3a6d6727f799488c66694e4bf2|1651017600000|1653609600000|1656201600000|app/components/course-search-result.hbs
diff --git a/.stylelintignore b/.stylelintignore
index a0cf71cbd1..19ee307fb5 100644
--- a/.stylelintignore
+++ b/.stylelintignore
@@ -1,8 +1,5 @@
-# unconventional files
-/blueprints/*/files/
-
 # compiled output
-/dist/
+**/dist/
 
 # addons
-/.node_modules.ember-try/
+**/.node_modules.ember-try/
diff --git a/.template-lintrc.js b/.template-lintrc.js
index 9b9ee1c831..9c2a5a4643 100644
--- a/.template-lintrc.js
+++ b/.template-lintrc.js
@@ -1,13 +1,11 @@
 'use strict';
 
 module.exports = {
-  plugins: ['@ilios/ember-template-lint-plugin'],
-  extends: 'ilios:recommended',
+  extends: 'recommended',
   rules: {
     'no-implicit-this': {
       //our helpers which do not take arguments have to be listed here
       allow: ['noop'],
     },
   },
-  ignore: ['tests/integration/**'],
 };
diff --git a/package.json b/package.json
index 4154f09a03..207df353b3 100644
--- a/package.json
+++ b/package.json
@@ -1,169 +1,41 @@
 {
-  "name": "frontend",
-  "version": "38.0.0",
-  "description": "Curriculum Management System for the Health Professions",
-  "repository": "https://github.com/ilios/frontend",
+  "private": true,
   "license": "MIT",
-  "author": "",
-  "directories": {
-    "doc": "doc",
-    "test": "tests"
-  },
+  "author": "The Ilios Team (info@iliosproject.org)",
   "scripts": {
-    "build": "ember build --environment=production",
-    "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"",
+    "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"",
     "lint:css": "stylelint \"**/*.scss\"",
-    "lint:css:fix": "concurrently \"pnpm:lint:css -- --fix\"",
-    "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"",
+    "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"",
+    "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"",
     "lint:hbs": "ember-template-lint .",
     "lint:hbs:fix": "ember-template-lint . --fix",
     "lint:js": "eslint . --cache",
     "lint:js:fix": "eslint . --fix",
-    "start": "ember serve",
-    "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\"",
-    "test:ember": "ember test",
-    "percy:test": "percy exec -- pnpm run test:ember",
-    "deploy:production": "ember deploy production --activate",
-    "deploy:staging": "ember deploy staging --activate",
-    "deploy:test": "ember deploy development",
-    "test:ember:browserstack": "ember test --test-port=7774 --host=127.0.0.1 --config-file=testem.browserstack.js",
-    "browserstack:connect": "ember browserstack:connect",
-    "browserstack:disconnect": "ember browserstack:disconnect",
-    "browserstack:results": "ember browserstack:results",
+    "start": "pnpm --filter frontend start",
+    "test:frontend": "pnpm run --filter frontend test",
+    "test": "pnpm --filter '*' test",
+    "test:ember": "pnpm --filter '*' test:ember",
     "preinstall": "npx only-allow pnpm"
   },
   "devDependencies": {
-    "@babel/core": "^7.22.20",
-    "@babel/eslint-parser": "7.23.3",
-    "@babel/plugin-proposal-decorators": "^7.22.15",
-    "@ember/edition-utils": "^1.2.0",
-    "@ember/optional-features": "^2.0.0",
-    "@ember/string": "^3.1.1",
-    "@ember/test-helpers": "^3.2.0",
-    "@embroider/compat": "~3.4.4",
-    "@embroider/core": "~3.4.4",
-    "@embroider/macros": "^1.13.5",
-    "@embroider/router": "^2.1.6",
-    "@embroider/webpack": "~3.2.2",
-    "@glimmer/component": "^1.1.2",
-    "@glimmer/tracking": "^1.1.2",
-    "@ilios/ember-template-lint-plugin": "^3.0.0",
-    "@percy/cli": "^1.27.7",
-    "@percy/ember": "^4.2.0",
-    "@sentry/ember": "7.99.0",
-    "broccoli-asset-rev": "^3.0.0",
-    "broccoli-file-creator": "^2.1.1",
-    "broccoli-merge-trees": "^4.2.0",
-    "browserslist": "^4.22.1",
-    "caniuse-db": "^1.0.30001583",
-    "class-validator": "^0.14.0",
-    "concurrently": "^8.2.1",
-    "ember-a11y-refocus": "3.0.2",
-    "ember-a11y-testing": "^6.1.1",
-    "ember-ajax": "^5.1.2",
-    "ember-async-data": "^1.0.3",
-    "ember-auto-import": "^2.4.3",
-    "ember-cli": "~5.3.0",
-    "ember-cli-app-version": "^6.0.1",
-    "ember-cli-babel": "^8.0.0",
-    "ember-cli-browserstack": "^3.0.0",
-    "ember-cli-bundle-analyzer": "^1.0.0",
-    "ember-cli-clean-css": "^3.0.0",
-    "ember-cli-code-coverage": "^v2.0.3",
-    "ember-cli-dependency-checker": "^3.3.2",
-    "ember-cli-dependency-lint": "2.0.1",
-    "ember-cli-deploy": "2.0.0",
-    "ember-cli-deploy-archive": "1.0.0",
-    "ember-cli-deploy-brotli": "^0.4.0",
-    "ember-cli-deploy-build": "3.0.0",
-    "ember-cli-deploy-cloudfront": "^5.0.0",
-    "ember-cli-deploy-display-revisions": "3.0.0",
-    "ember-cli-deploy-gzip": "^3.0.0",
-    "ember-cli-deploy-json-config": "1.0.1",
-    "ember-cli-deploy-revision-data": "3.0.0",
-    "ember-cli-deploy-s3-index": "3.0.0",
-    "ember-cli-deprecation-workflow": "2.2.0",
-    "ember-cli-htmlbars": "^6.3.0",
-    "ember-cli-image-transformer": "^7.0.0",
-    "ember-cli-inject-live-reload": "^2.1.0",
-    "ember-cli-mirage": "^3.0.2",
-    "ember-cli-new-version": "^4.1.0",
-    "ember-cli-page-object": "^2.2.1",
-    "ember-cli-sass": "^11.0.1",
-    "ember-cli-server-variables": "3.0.0",
-    "ember-cli-sri": "^2.1.1",
-    "ember-cli-terser": "^4.0.2",
-    "ember-focus-trap": "^1.1.0",
-    "ember-load-initializers": "^2.1.2",
-    "ember-metrics": "1.5.2",
-    "ember-modifier": "^4.1.0",
-    "ember-moment": "^10.0.0",
-    "ember-noscript": "^4.1.0",
-    "ember-page-title": "^8.0.0",
-    "ember-qunit": "^8.0.1",
-    "ember-resolver": "^11.0.1",
-    "ember-responsive": "^5.0.0",
-    "ember-source": "~5.3.0",
-    "ember-template-lint": "^5.11.2",
-    "ember-web-app": "^5.0.0",
-    "eslint": "^8.49.0",
-    "eslint-config-prettier": "^9.0.0",
+    "concurrently": "^8.2.0",
+    "ember-template-lint": "^5.13.0",
+    "eslint": "^8.55.0",
+    "eslint-config-prettier": "^9.1.0",
     "eslint-plugin-ember": "^11.11.1",
-    "eslint-plugin-n": "^16.1.0",
-    "eslint-plugin-prettier": "^5.0.0",
-    "eslint-plugin-qunit": "^8.0.0",
-    "file-saver": "^2.0.5",
-    "ilios-common": "^87.1.0",
-    "loader.js": "^4.7.0",
-    "luxon": "^3.4.4",
-    "miragejs": "^0.1.48",
-    "mockdate": "^3.0.5",
-    "moment-timezone": "^0.5.42",
-    "pad": "^3.2.0",
-    "papaparse": "^5.4.1",
-    "pre-commit": "^1.2.2",
-    "prettier": "^3.0.3",
-    "query-string": "^8.1.0",
-    "qunit": "^2.19.4",
-    "qunit-dom": "^2.0.0",
-    "sass": "^1.70.0",
-    "scroll-into-view": "^1.16.2",
-    "striptags": "^3.2.0",
-    "stylelint": "^15.10.3",
-    "stylelint-config-recommended-scss": "^13.1.0",
+    "eslint-plugin-n": "^16.4.0",
+    "eslint-plugin-prettier": "^5.0.1",
+    "eslint-plugin-qunit": "^8.0.1",
+    "prettier": "^3.1.1",
+    "stylelint": "^15.11.0",
     "stylelint-config-standard": "^34.0.0",
-    "stylelint-prettier": "^4.0.2",
-    "stylelint-scss": "^5.3.2",
-    "terser-webpack-plugin": "^5.3.9",
-    "testem-failure-only-reporter": "^1.0.0",
-    "tracked-built-ins": "^3.2.0",
-    "validator": "^13.11.0",
-    "webpack": "^5.88.2",
-    "webpack-bundle-analyzer": "^4.10.1",
-    "webpack-retry-chunk-load-plugin": "^3.0.0",
-    "zxcvbn": "^4.4.2"
+    "stylelint-config-recommended-scss": "^13.0.0",
+    "stylelint-prettier": "^4.1.0",
+    "stylelint-scss": "^5.0.0"
   },
   "engines": {
     "node": ">= 18",
     "yarn": "use pnpm",
     "npm": "use pnpm"
-  },
-  "ember": {
-    "edition": "octane"
-  },
-  "ember-addon": {
-    "paths": [
-      "lib/ilios-error",
-      "lib/ilios-loading"
-    ]
-  },
-  "pre-commit": [
-    "lint"
-  ],
-  "private": true,
-  "dependencies": {
-    "ember-auto-import": "^2.6.3",
-    "moment": "^2.30.1",
-    "moment-timezone": "^0.5.42"
   }
 }
diff --git a/.ember-cli b/packages/frontend/.ember-cli
similarity index 100%
rename from .ember-cli
rename to packages/frontend/.ember-cli
diff --git a/packages/frontend/.gitignore b/packages/frontend/.gitignore
new file mode 100644
index 0000000000..ec4a7500d6
--- /dev/null
+++ b/packages/frontend/.gitignore
@@ -0,0 +1,32 @@
+# compiled output
+/dist/
+/declarations/
+
+# dependencies
+/node_modules/
+
+# misc
+/.env*
+/.pnp*
+/.eslintcache
+/coverage/
+/npm-debug.log*
+/testem.log
+/yarn-error.log
+
+lcov.dat
+sauce-example.log
+
+# ember-try
+/.node_modules.ember-try/
+/npm-shrinkwrap.json.ember-try
+/package.json.ember-try
+/package-lock.json.ember-try
+/yarn.lock.ember-try
+
+# broccoli-debug
+/DEBUG/
+
+#browserstack via ember-cli-browserstack
+browserstack-local.pid
+local.log
diff --git a/.nvmrc b/packages/frontend/.nvmrc
similarity index 100%
rename from .nvmrc
rename to packages/frontend/.nvmrc
diff --git a/.prettierignore b/packages/frontend/.prettierignore
similarity index 100%
rename from .prettierignore
rename to packages/frontend/.prettierignore
diff --git a/.watchmanconfig b/packages/frontend/.watchmanconfig
similarity index 100%
rename from .watchmanconfig
rename to packages/frontend/.watchmanconfig
diff --git a/app/adapters/application.js b/packages/frontend/app/adapters/application.js
similarity index 100%
rename from app/adapters/application.js
rename to packages/frontend/app/adapters/application.js
diff --git a/app/adapters/school.js b/packages/frontend/app/adapters/school.js
similarity index 100%
rename from app/adapters/school.js
rename to packages/frontend/app/adapters/school.js
diff --git a/app/app.js b/packages/frontend/app/app.js
similarity index 100%
rename from app/app.js
rename to packages/frontend/app/app.js
diff --git a/app/breakpoints.js b/packages/frontend/app/breakpoints.js
similarity index 100%
rename from app/breakpoints.js
rename to packages/frontend/app/breakpoints.js
diff --git a/app/classes/resolve-all-values.js b/packages/frontend/app/classes/resolve-all-values.js
similarity index 100%
rename from app/classes/resolve-all-values.js
rename to packages/frontend/app/classes/resolve-all-values.js
diff --git a/app/components/.gitkeep b/packages/frontend/app/components/.gitkeep
similarity index 100%
rename from app/components/.gitkeep
rename to packages/frontend/app/components/.gitkeep
diff --git a/app/components/assign-students.hbs b/packages/frontend/app/components/assign-students.hbs
similarity index 100%
rename from app/components/assign-students.hbs
rename to packages/frontend/app/components/assign-students.hbs
diff --git a/app/components/assign-students.js b/packages/frontend/app/components/assign-students.js
similarity index 100%
rename from app/components/assign-students.js
rename to packages/frontend/app/components/assign-students.js
diff --git a/app/components/back-to-admin-dashboard.hbs b/packages/frontend/app/components/back-to-admin-dashboard.hbs
similarity index 100%
rename from app/components/back-to-admin-dashboard.hbs
rename to packages/frontend/app/components/back-to-admin-dashboard.hbs
diff --git a/app/components/bulk-new-users.hbs b/packages/frontend/app/components/bulk-new-users.hbs
similarity index 100%
rename from app/components/bulk-new-users.hbs
rename to packages/frontend/app/components/bulk-new-users.hbs
diff --git a/app/components/bulk-new-users.js b/packages/frontend/app/components/bulk-new-users.js
similarity index 100%
rename from app/components/bulk-new-users.js
rename to packages/frontend/app/components/bulk-new-users.js
diff --git a/app/components/competency-title-editor.hbs b/packages/frontend/app/components/competency-title-editor.hbs
similarity index 100%
rename from app/components/competency-title-editor.hbs
rename to packages/frontend/app/components/competency-title-editor.hbs
diff --git a/app/components/competency-title-editor.js b/packages/frontend/app/components/competency-title-editor.js
similarity index 100%
rename from app/components/competency-title-editor.js
rename to packages/frontend/app/components/competency-title-editor.js
diff --git a/app/components/connection-status.hbs b/packages/frontend/app/components/connection-status.hbs
similarity index 100%
rename from app/components/connection-status.hbs
rename to packages/frontend/app/components/connection-status.hbs
diff --git a/app/components/connection-status.js b/packages/frontend/app/components/connection-status.js
similarity index 100%
rename from app/components/connection-status.js
rename to packages/frontend/app/components/connection-status.js
diff --git a/app/components/course-search-result.hbs b/packages/frontend/app/components/course-search-result.hbs
similarity index 100%
rename from app/components/course-search-result.hbs
rename to packages/frontend/app/components/course-search-result.hbs
diff --git a/app/components/course-search-result.js b/packages/frontend/app/components/course-search-result.js
similarity index 100%
rename from app/components/course-search-result.js
rename to packages/frontend/app/components/course-search-result.js
diff --git a/app/components/courses/list-item.hbs b/packages/frontend/app/components/courses/list-item.hbs
similarity index 100%
rename from app/components/courses/list-item.hbs
rename to packages/frontend/app/components/courses/list-item.hbs
diff --git a/app/components/courses/list-item.js b/packages/frontend/app/components/courses/list-item.js
similarity index 100%
rename from app/components/courses/list-item.js
rename to packages/frontend/app/components/courses/list-item.js
diff --git a/app/components/courses/list.hbs b/packages/frontend/app/components/courses/list.hbs
similarity index 100%
rename from app/components/courses/list.hbs
rename to packages/frontend/app/components/courses/list.hbs
diff --git a/app/components/courses/list.js b/packages/frontend/app/components/courses/list.js
similarity index 100%
rename from app/components/courses/list.js
rename to packages/frontend/app/components/courses/list.js
diff --git a/app/components/courses/new.hbs b/packages/frontend/app/components/courses/new.hbs
similarity index 100%
rename from app/components/courses/new.hbs
rename to packages/frontend/app/components/courses/new.hbs
diff --git a/app/components/courses/new.js b/packages/frontend/app/components/courses/new.js
similarity index 100%
rename from app/components/courses/new.js
rename to packages/frontend/app/components/courses/new.js
diff --git a/app/components/courses/root.hbs b/packages/frontend/app/components/courses/root.hbs
similarity index 100%
rename from app/components/courses/root.hbs
rename to packages/frontend/app/components/courses/root.hbs
diff --git a/app/components/courses/root.js b/packages/frontend/app/components/courses/root.js
similarity index 100%
rename from app/components/courses/root.js
rename to packages/frontend/app/components/courses/root.js
diff --git a/app/components/curriculum-inventory/leadership-expanded.hbs b/packages/frontend/app/components/curriculum-inventory/leadership-expanded.hbs
similarity index 100%
rename from app/components/curriculum-inventory/leadership-expanded.hbs
rename to packages/frontend/app/components/curriculum-inventory/leadership-expanded.hbs
diff --git a/app/components/curriculum-inventory/leadership-expanded.js b/packages/frontend/app/components/curriculum-inventory/leadership-expanded.js
similarity index 100%
rename from app/components/curriculum-inventory/leadership-expanded.js
rename to packages/frontend/app/components/curriculum-inventory/leadership-expanded.js
diff --git a/app/components/curriculum-inventory/new-report.hbs b/packages/frontend/app/components/curriculum-inventory/new-report.hbs
similarity index 100%
rename from app/components/curriculum-inventory/new-report.hbs
rename to packages/frontend/app/components/curriculum-inventory/new-report.hbs
diff --git a/app/components/curriculum-inventory/new-report.js b/packages/frontend/app/components/curriculum-inventory/new-report.js
similarity index 100%
rename from app/components/curriculum-inventory/new-report.js
rename to packages/frontend/app/components/curriculum-inventory/new-report.js
diff --git a/app/components/curriculum-inventory/new-sequence-block.hbs b/packages/frontend/app/components/curriculum-inventory/new-sequence-block.hbs
similarity index 100%
rename from app/components/curriculum-inventory/new-sequence-block.hbs
rename to packages/frontend/app/components/curriculum-inventory/new-sequence-block.hbs
diff --git a/app/components/curriculum-inventory/new-sequence-block.js b/packages/frontend/app/components/curriculum-inventory/new-sequence-block.js
similarity index 100%
rename from app/components/curriculum-inventory/new-sequence-block.js
rename to packages/frontend/app/components/curriculum-inventory/new-sequence-block.js
diff --git a/app/components/curriculum-inventory/report-details.hbs b/packages/frontend/app/components/curriculum-inventory/report-details.hbs
similarity index 100%
rename from app/components/curriculum-inventory/report-details.hbs
rename to packages/frontend/app/components/curriculum-inventory/report-details.hbs
diff --git a/app/components/curriculum-inventory/report-details.js b/packages/frontend/app/components/curriculum-inventory/report-details.js
similarity index 100%
rename from app/components/curriculum-inventory/report-details.js
rename to packages/frontend/app/components/curriculum-inventory/report-details.js
diff --git a/app/components/curriculum-inventory/report-header.hbs b/packages/frontend/app/components/curriculum-inventory/report-header.hbs
similarity index 100%
rename from app/components/curriculum-inventory/report-header.hbs
rename to packages/frontend/app/components/curriculum-inventory/report-header.hbs
diff --git a/app/components/curriculum-inventory/report-header.js b/packages/frontend/app/components/curriculum-inventory/report-header.js
similarity index 100%
rename from app/components/curriculum-inventory/report-header.js
rename to packages/frontend/app/components/curriculum-inventory/report-header.js
diff --git a/app/components/curriculum-inventory/report-list-item.hbs b/packages/frontend/app/components/curriculum-inventory/report-list-item.hbs
similarity index 100%
rename from app/components/curriculum-inventory/report-list-item.hbs
rename to packages/frontend/app/components/curriculum-inventory/report-list-item.hbs
diff --git a/app/components/curriculum-inventory/report-list-item.js b/packages/frontend/app/components/curriculum-inventory/report-list-item.js
similarity index 100%
rename from app/components/curriculum-inventory/report-list-item.js
rename to packages/frontend/app/components/curriculum-inventory/report-list-item.js
diff --git a/app/components/curriculum-inventory/report-list.hbs b/packages/frontend/app/components/curriculum-inventory/report-list.hbs
similarity index 100%
rename from app/components/curriculum-inventory/report-list.hbs
rename to packages/frontend/app/components/curriculum-inventory/report-list.hbs
diff --git a/app/components/curriculum-inventory/report-list.js b/packages/frontend/app/components/curriculum-inventory/report-list.js
similarity index 100%
rename from app/components/curriculum-inventory/report-list.js
rename to packages/frontend/app/components/curriculum-inventory/report-list.js
diff --git a/app/components/curriculum-inventory/report-overview.hbs b/packages/frontend/app/components/curriculum-inventory/report-overview.hbs
similarity index 100%
rename from app/components/curriculum-inventory/report-overview.hbs
rename to packages/frontend/app/components/curriculum-inventory/report-overview.hbs
diff --git a/app/components/curriculum-inventory/report-overview.js b/packages/frontend/app/components/curriculum-inventory/report-overview.js
similarity index 100%
rename from app/components/curriculum-inventory/report-overview.js
rename to packages/frontend/app/components/curriculum-inventory/report-overview.js
diff --git a/app/components/curriculum-inventory/report-rollover.hbs b/packages/frontend/app/components/curriculum-inventory/report-rollover.hbs
similarity index 100%
rename from app/components/curriculum-inventory/report-rollover.hbs
rename to packages/frontend/app/components/curriculum-inventory/report-rollover.hbs
diff --git a/app/components/curriculum-inventory/report-rollover.js b/packages/frontend/app/components/curriculum-inventory/report-rollover.js
similarity index 100%
rename from app/components/curriculum-inventory/report-rollover.js
rename to packages/frontend/app/components/curriculum-inventory/report-rollover.js
diff --git a/app/components/curriculum-inventory/reports.hbs b/packages/frontend/app/components/curriculum-inventory/reports.hbs
similarity index 100%
rename from app/components/curriculum-inventory/reports.hbs
rename to packages/frontend/app/components/curriculum-inventory/reports.hbs
diff --git a/app/components/curriculum-inventory/reports.js b/packages/frontend/app/components/curriculum-inventory/reports.js
similarity index 100%
rename from app/components/curriculum-inventory/reports.js
rename to packages/frontend/app/components/curriculum-inventory/reports.js
diff --git a/app/components/curriculum-inventory/sequence-block-details.hbs b/packages/frontend/app/components/curriculum-inventory/sequence-block-details.hbs
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-details.hbs
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-details.hbs
diff --git a/app/components/curriculum-inventory/sequence-block-details.js b/packages/frontend/app/components/curriculum-inventory/sequence-block-details.js
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-details.js
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-details.js
diff --git a/app/components/curriculum-inventory/sequence-block-header.hbs b/packages/frontend/app/components/curriculum-inventory/sequence-block-header.hbs
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-header.hbs
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-header.hbs
diff --git a/app/components/curriculum-inventory/sequence-block-header.js b/packages/frontend/app/components/curriculum-inventory/sequence-block-header.js
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-header.js
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-header.js
diff --git a/app/components/curriculum-inventory/sequence-block-list-item.hbs b/packages/frontend/app/components/curriculum-inventory/sequence-block-list-item.hbs
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-list-item.hbs
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-list-item.hbs
diff --git a/app/components/curriculum-inventory/sequence-block-list-item.js b/packages/frontend/app/components/curriculum-inventory/sequence-block-list-item.js
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-list-item.js
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-list-item.js
diff --git a/app/components/curriculum-inventory/sequence-block-list.hbs b/packages/frontend/app/components/curriculum-inventory/sequence-block-list.hbs
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-list.hbs
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-list.hbs
diff --git a/app/components/curriculum-inventory/sequence-block-list.js b/packages/frontend/app/components/curriculum-inventory/sequence-block-list.js
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-list.js
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-list.js
diff --git a/app/components/curriculum-inventory/sequence-block-overview.hbs b/packages/frontend/app/components/curriculum-inventory/sequence-block-overview.hbs
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-overview.hbs
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-overview.hbs
diff --git a/app/components/curriculum-inventory/sequence-block-overview.js b/packages/frontend/app/components/curriculum-inventory/sequence-block-overview.js
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-overview.js
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-overview.js
diff --git a/app/components/curriculum-inventory/sequence-block-session-list.hbs b/packages/frontend/app/components/curriculum-inventory/sequence-block-session-list.hbs
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-session-list.hbs
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-session-list.hbs
diff --git a/app/components/curriculum-inventory/sequence-block-session-list.js b/packages/frontend/app/components/curriculum-inventory/sequence-block-session-list.js
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-session-list.js
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-session-list.js
diff --git a/app/components/curriculum-inventory/sequence-block-session-manager.hbs b/packages/frontend/app/components/curriculum-inventory/sequence-block-session-manager.hbs
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-session-manager.hbs
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-session-manager.hbs
diff --git a/app/components/curriculum-inventory/sequence-block-session-manager.js b/packages/frontend/app/components/curriculum-inventory/sequence-block-session-manager.js
similarity index 100%
rename from app/components/curriculum-inventory/sequence-block-session-manager.js
rename to packages/frontend/app/components/curriculum-inventory/sequence-block-session-manager.js
diff --git a/app/components/curriculum-inventory/verification-preview-header.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-header.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-header.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-header.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table1.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table1.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table1.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table1.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table2.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table2.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table2.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table2.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table2.js b/packages/frontend/app/components/curriculum-inventory/verification-preview-table2.js
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table2.js
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table2.js
diff --git a/app/components/curriculum-inventory/verification-preview-table3a.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table3a.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table3a.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table3a.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table3b.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table3b.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table3b.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table3b.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table4.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table4.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table4.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table4.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table4.js b/packages/frontend/app/components/curriculum-inventory/verification-preview-table4.js
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table4.js
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table4.js
diff --git a/app/components/curriculum-inventory/verification-preview-table5.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table5.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table5.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table5.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table5.js b/packages/frontend/app/components/curriculum-inventory/verification-preview-table5.js
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table5.js
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table5.js
diff --git a/app/components/curriculum-inventory/verification-preview-table6.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table6.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table6.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table6.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table6.js b/packages/frontend/app/components/curriculum-inventory/verification-preview-table6.js
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table6.js
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table6.js
diff --git a/app/components/curriculum-inventory/verification-preview-table7.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table7.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table7.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table7.hbs
diff --git a/app/components/curriculum-inventory/verification-preview-table7.js b/packages/frontend/app/components/curriculum-inventory/verification-preview-table7.js
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table7.js
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table7.js
diff --git a/app/components/curriculum-inventory/verification-preview-table8.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview-table8.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview-table8.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview-table8.hbs
diff --git a/app/components/curriculum-inventory/verification-preview.hbs b/packages/frontend/app/components/curriculum-inventory/verification-preview.hbs
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview.hbs
rename to packages/frontend/app/components/curriculum-inventory/verification-preview.hbs
diff --git a/app/components/curriculum-inventory/verification-preview.js b/packages/frontend/app/components/curriculum-inventory/verification-preview.js
similarity index 100%
rename from app/components/curriculum-inventory/verification-preview.js
rename to packages/frontend/app/components/curriculum-inventory/verification-preview.js
diff --git a/app/components/dashboard-loading.hbs b/packages/frontend/app/components/dashboard-loading.hbs
similarity index 100%
rename from app/components/dashboard-loading.hbs
rename to packages/frontend/app/components/dashboard-loading.hbs
diff --git a/app/components/error-display.hbs b/packages/frontend/app/components/error-display.hbs
similarity index 100%
rename from app/components/error-display.hbs
rename to packages/frontend/app/components/error-display.hbs
diff --git a/app/components/error-display.js b/packages/frontend/app/components/error-display.js
similarity index 100%
rename from app/components/error-display.js
rename to packages/frontend/app/components/error-display.js
diff --git a/app/components/flash-messages.hbs b/packages/frontend/app/components/flash-messages.hbs
similarity index 100%
rename from app/components/flash-messages.hbs
rename to packages/frontend/app/components/flash-messages.hbs
diff --git a/app/components/flash-messages.js b/packages/frontend/app/components/flash-messages.js
similarity index 100%
rename from app/components/flash-messages.js
rename to packages/frontend/app/components/flash-messages.js
diff --git a/app/components/global-search-box.hbs b/packages/frontend/app/components/global-search-box.hbs
similarity index 100%
rename from app/components/global-search-box.hbs
rename to packages/frontend/app/components/global-search-box.hbs
diff --git a/app/components/global-search-box.js b/packages/frontend/app/components/global-search-box.js
similarity index 100%
rename from app/components/global-search-box.js
rename to packages/frontend/app/components/global-search-box.js
diff --git a/app/components/global-search-tags.hbs b/packages/frontend/app/components/global-search-tags.hbs
similarity index 100%
rename from app/components/global-search-tags.hbs
rename to packages/frontend/app/components/global-search-tags.hbs
diff --git a/app/components/global-search.hbs b/packages/frontend/app/components/global-search.hbs
similarity index 100%
rename from app/components/global-search.hbs
rename to packages/frontend/app/components/global-search.hbs
diff --git a/app/components/global-search.js b/packages/frontend/app/components/global-search.js
similarity index 100%
rename from app/components/global-search.js
rename to packages/frontend/app/components/global-search.js
diff --git a/app/components/ilios-header.hbs b/packages/frontend/app/components/ilios-header.hbs
similarity index 100%
rename from app/components/ilios-header.hbs
rename to packages/frontend/app/components/ilios-header.hbs
diff --git a/app/components/ilios-header.js b/packages/frontend/app/components/ilios-header.js
similarity index 100%
rename from app/components/ilios-header.js
rename to packages/frontend/app/components/ilios-header.js
diff --git a/app/components/ilios-navigation.hbs b/packages/frontend/app/components/ilios-navigation.hbs
similarity index 100%
rename from app/components/ilios-navigation.hbs
rename to packages/frontend/app/components/ilios-navigation.hbs
diff --git a/app/components/ilios-navigation.js b/packages/frontend/app/components/ilios-navigation.js
similarity index 100%
rename from app/components/ilios-navigation.js
rename to packages/frontend/app/components/ilios-navigation.js
diff --git a/app/components/ilios-users.hbs b/packages/frontend/app/components/ilios-users.hbs
similarity index 100%
rename from app/components/ilios-users.hbs
rename to packages/frontend/app/components/ilios-users.hbs
diff --git a/app/components/ilios-users.js b/packages/frontend/app/components/ilios-users.js
similarity index 100%
rename from app/components/ilios-users.js
rename to packages/frontend/app/components/ilios-users.js
diff --git a/app/components/instructor-group/courses.hbs b/packages/frontend/app/components/instructor-group/courses.hbs
similarity index 100%
rename from app/components/instructor-group/courses.hbs
rename to packages/frontend/app/components/instructor-group/courses.hbs
diff --git a/app/components/instructor-group/header.hbs b/packages/frontend/app/components/instructor-group/header.hbs
similarity index 100%
rename from app/components/instructor-group/header.hbs
rename to packages/frontend/app/components/instructor-group/header.hbs
diff --git a/app/components/instructor-group/header.js b/packages/frontend/app/components/instructor-group/header.js
similarity index 100%
rename from app/components/instructor-group/header.js
rename to packages/frontend/app/components/instructor-group/header.js
diff --git a/app/components/instructor-group/instructor-manager.hbs b/packages/frontend/app/components/instructor-group/instructor-manager.hbs
similarity index 100%
rename from app/components/instructor-group/instructor-manager.hbs
rename to packages/frontend/app/components/instructor-group/instructor-manager.hbs
diff --git a/app/components/instructor-group/root.hbs b/packages/frontend/app/components/instructor-group/root.hbs
similarity index 100%
rename from app/components/instructor-group/root.hbs
rename to packages/frontend/app/components/instructor-group/root.hbs
diff --git a/app/components/instructor-group/users.hbs b/packages/frontend/app/components/instructor-group/users.hbs
similarity index 100%
rename from app/components/instructor-group/users.hbs
rename to packages/frontend/app/components/instructor-group/users.hbs
diff --git a/app/components/instructor-group/users.js b/packages/frontend/app/components/instructor-group/users.js
similarity index 100%
rename from app/components/instructor-group/users.js
rename to packages/frontend/app/components/instructor-group/users.js
diff --git a/app/components/instructor-groups/list-item.hbs b/packages/frontend/app/components/instructor-groups/list-item.hbs
similarity index 100%
rename from app/components/instructor-groups/list-item.hbs
rename to packages/frontend/app/components/instructor-groups/list-item.hbs
diff --git a/app/components/instructor-groups/list-item.js b/packages/frontend/app/components/instructor-groups/list-item.js
similarity index 100%
rename from app/components/instructor-groups/list-item.js
rename to packages/frontend/app/components/instructor-groups/list-item.js
diff --git a/app/components/instructor-groups/list.hbs b/packages/frontend/app/components/instructor-groups/list.hbs
similarity index 100%
rename from app/components/instructor-groups/list.hbs
rename to packages/frontend/app/components/instructor-groups/list.hbs
diff --git a/app/components/instructor-groups/list.js b/packages/frontend/app/components/instructor-groups/list.js
similarity index 100%
rename from app/components/instructor-groups/list.js
rename to packages/frontend/app/components/instructor-groups/list.js
diff --git a/app/components/instructor-groups/loading.hbs b/packages/frontend/app/components/instructor-groups/loading.hbs
similarity index 100%
rename from app/components/instructor-groups/loading.hbs
rename to packages/frontend/app/components/instructor-groups/loading.hbs
diff --git a/app/components/instructor-groups/new.hbs b/packages/frontend/app/components/instructor-groups/new.hbs
similarity index 100%
rename from app/components/instructor-groups/new.hbs
rename to packages/frontend/app/components/instructor-groups/new.hbs
diff --git a/app/components/instructor-groups/new.js b/packages/frontend/app/components/instructor-groups/new.js
similarity index 100%
rename from app/components/instructor-groups/new.js
rename to packages/frontend/app/components/instructor-groups/new.js
diff --git a/app/components/instructor-groups/root.hbs b/packages/frontend/app/components/instructor-groups/root.hbs
similarity index 100%
rename from app/components/instructor-groups/root.hbs
rename to packages/frontend/app/components/instructor-groups/root.hbs
diff --git a/app/components/instructor-groups/root.js b/packages/frontend/app/components/instructor-groups/root.js
similarity index 100%
rename from app/components/instructor-groups/root.js
rename to packages/frontend/app/components/instructor-groups/root.js
diff --git a/app/components/learner-group/bulk-assignment.hbs b/packages/frontend/app/components/learner-group/bulk-assignment.hbs
similarity index 100%
rename from app/components/learner-group/bulk-assignment.hbs
rename to packages/frontend/app/components/learner-group/bulk-assignment.hbs
diff --git a/app/components/learner-group/bulk-assignment.js b/packages/frontend/app/components/learner-group/bulk-assignment.js
similarity index 100%
rename from app/components/learner-group/bulk-assignment.js
rename to packages/frontend/app/components/learner-group/bulk-assignment.js
diff --git a/app/components/learner-group/bulk-finalize-users.hbs b/packages/frontend/app/components/learner-group/bulk-finalize-users.hbs
similarity index 100%
rename from app/components/learner-group/bulk-finalize-users.hbs
rename to packages/frontend/app/components/learner-group/bulk-finalize-users.hbs
diff --git a/app/components/learner-group/bulk-finalize-users.js b/packages/frontend/app/components/learner-group/bulk-finalize-users.js
similarity index 100%
rename from app/components/learner-group/bulk-finalize-users.js
rename to packages/frontend/app/components/learner-group/bulk-finalize-users.js
diff --git a/app/components/learner-group/bulk-group-matcher.hbs b/packages/frontend/app/components/learner-group/bulk-group-matcher.hbs
similarity index 100%
rename from app/components/learner-group/bulk-group-matcher.hbs
rename to packages/frontend/app/components/learner-group/bulk-group-matcher.hbs
diff --git a/app/components/learner-group/bulk-group-matcher.js b/packages/frontend/app/components/learner-group/bulk-group-matcher.js
similarity index 100%
rename from app/components/learner-group/bulk-group-matcher.js
rename to packages/frontend/app/components/learner-group/bulk-group-matcher.js
diff --git a/app/components/learner-group/calendar.hbs b/packages/frontend/app/components/learner-group/calendar.hbs
similarity index 100%
rename from app/components/learner-group/calendar.hbs
rename to packages/frontend/app/components/learner-group/calendar.hbs
diff --git a/app/components/learner-group/calendar.js b/packages/frontend/app/components/learner-group/calendar.js
similarity index 100%
rename from app/components/learner-group/calendar.js
rename to packages/frontend/app/components/learner-group/calendar.js
diff --git a/app/components/learner-group/cohort-user-manager.hbs b/packages/frontend/app/components/learner-group/cohort-user-manager.hbs
similarity index 100%
rename from app/components/learner-group/cohort-user-manager.hbs
rename to packages/frontend/app/components/learner-group/cohort-user-manager.hbs
diff --git a/app/components/learner-group/cohort-user-manager.js b/packages/frontend/app/components/learner-group/cohort-user-manager.js
similarity index 100%
rename from app/components/learner-group/cohort-user-manager.js
rename to packages/frontend/app/components/learner-group/cohort-user-manager.js
diff --git a/app/components/learner-group/header.hbs b/packages/frontend/app/components/learner-group/header.hbs
similarity index 100%
rename from app/components/learner-group/header.hbs
rename to packages/frontend/app/components/learner-group/header.hbs
diff --git a/app/components/learner-group/header.js b/packages/frontend/app/components/learner-group/header.js
similarity index 100%
rename from app/components/learner-group/header.js
rename to packages/frontend/app/components/learner-group/header.js
diff --git a/app/components/learner-group/instructor-group-members-list.hbs b/packages/frontend/app/components/learner-group/instructor-group-members-list.hbs
similarity index 100%
rename from app/components/learner-group/instructor-group-members-list.hbs
rename to packages/frontend/app/components/learner-group/instructor-group-members-list.hbs
diff --git a/app/components/learner-group/instructor-group-members-list.js b/packages/frontend/app/components/learner-group/instructor-group-members-list.js
similarity index 100%
rename from app/components/learner-group/instructor-group-members-list.js
rename to packages/frontend/app/components/learner-group/instructor-group-members-list.js
diff --git a/app/components/learner-group/instructor-manager.hbs b/packages/frontend/app/components/learner-group/instructor-manager.hbs
similarity index 100%
rename from app/components/learner-group/instructor-manager.hbs
rename to packages/frontend/app/components/learner-group/instructor-manager.hbs
diff --git a/app/components/learner-group/instructor-manager.js b/packages/frontend/app/components/learner-group/instructor-manager.js
similarity index 100%
rename from app/components/learner-group/instructor-manager.js
rename to packages/frontend/app/components/learner-group/instructor-manager.js
diff --git a/app/components/learner-group/list-item.hbs b/packages/frontend/app/components/learner-group/list-item.hbs
similarity index 100%
rename from app/components/learner-group/list-item.hbs
rename to packages/frontend/app/components/learner-group/list-item.hbs
diff --git a/app/components/learner-group/list-item.js b/packages/frontend/app/components/learner-group/list-item.js
similarity index 100%
rename from app/components/learner-group/list-item.js
rename to packages/frontend/app/components/learner-group/list-item.js
diff --git a/app/components/learner-group/list.hbs b/packages/frontend/app/components/learner-group/list.hbs
similarity index 100%
rename from app/components/learner-group/list.hbs
rename to packages/frontend/app/components/learner-group/list.hbs
diff --git a/app/components/learner-group/list.js b/packages/frontend/app/components/learner-group/list.js
similarity index 100%
rename from app/components/learner-group/list.js
rename to packages/frontend/app/components/learner-group/list.js
diff --git a/app/components/learner-group/members.hbs b/packages/frontend/app/components/learner-group/members.hbs
similarity index 100%
rename from app/components/learner-group/members.hbs
rename to packages/frontend/app/components/learner-group/members.hbs
diff --git a/app/components/learner-group/members.js b/packages/frontend/app/components/learner-group/members.js
similarity index 100%
rename from app/components/learner-group/members.js
rename to packages/frontend/app/components/learner-group/members.js
diff --git a/app/components/learner-group/new-multiple.hbs b/packages/frontend/app/components/learner-group/new-multiple.hbs
similarity index 100%
rename from app/components/learner-group/new-multiple.hbs
rename to packages/frontend/app/components/learner-group/new-multiple.hbs
diff --git a/app/components/learner-group/new-multiple.js b/packages/frontend/app/components/learner-group/new-multiple.js
similarity index 100%
rename from app/components/learner-group/new-multiple.js
rename to packages/frontend/app/components/learner-group/new-multiple.js
diff --git a/app/components/learner-group/new-single.hbs b/packages/frontend/app/components/learner-group/new-single.hbs
similarity index 100%
rename from app/components/learner-group/new-single.hbs
rename to packages/frontend/app/components/learner-group/new-single.hbs
diff --git a/app/components/learner-group/new-single.js b/packages/frontend/app/components/learner-group/new-single.js
similarity index 100%
rename from app/components/learner-group/new-single.js
rename to packages/frontend/app/components/learner-group/new-single.js
diff --git a/app/components/learner-group/new.hbs b/packages/frontend/app/components/learner-group/new.hbs
similarity index 100%
rename from app/components/learner-group/new.hbs
rename to packages/frontend/app/components/learner-group/new.hbs
diff --git a/app/components/learner-group/new.js b/packages/frontend/app/components/learner-group/new.js
similarity index 100%
rename from app/components/learner-group/new.js
rename to packages/frontend/app/components/learner-group/new.js
diff --git a/app/components/learner-group/root.hbs b/packages/frontend/app/components/learner-group/root.hbs
similarity index 100%
rename from app/components/learner-group/root.hbs
rename to packages/frontend/app/components/learner-group/root.hbs
diff --git a/app/components/learner-group/root.js b/packages/frontend/app/components/learner-group/root.js
similarity index 100%
rename from app/components/learner-group/root.js
rename to packages/frontend/app/components/learner-group/root.js
diff --git a/app/components/learner-group/upload-data.hbs b/packages/frontend/app/components/learner-group/upload-data.hbs
similarity index 100%
rename from app/components/learner-group/upload-data.hbs
rename to packages/frontend/app/components/learner-group/upload-data.hbs
diff --git a/app/components/learner-group/upload-data.js b/packages/frontend/app/components/learner-group/upload-data.js
similarity index 100%
rename from app/components/learner-group/upload-data.js
rename to packages/frontend/app/components/learner-group/upload-data.js
diff --git a/app/components/learner-group/user-manager.hbs b/packages/frontend/app/components/learner-group/user-manager.hbs
similarity index 100%
rename from app/components/learner-group/user-manager.hbs
rename to packages/frontend/app/components/learner-group/user-manager.hbs
diff --git a/app/components/learner-group/user-manager.js b/packages/frontend/app/components/learner-group/user-manager.js
similarity index 100%
rename from app/components/learner-group/user-manager.js
rename to packages/frontend/app/components/learner-group/user-manager.js
diff --git a/app/components/learner-groups/root.hbs b/packages/frontend/app/components/learner-groups/root.hbs
similarity index 100%
rename from app/components/learner-groups/root.hbs
rename to packages/frontend/app/components/learner-groups/root.hbs
diff --git a/app/components/learner-groups/root.js b/packages/frontend/app/components/learner-groups/root.js
similarity index 100%
rename from app/components/learner-groups/root.js
rename to packages/frontend/app/components/learner-groups/root.js
diff --git a/app/components/link-to-with-action.hbs b/packages/frontend/app/components/link-to-with-action.hbs
similarity index 100%
rename from app/components/link-to-with-action.hbs
rename to packages/frontend/app/components/link-to-with-action.hbs
diff --git a/app/components/link-to-with-action.js b/packages/frontend/app/components/link-to-with-action.js
similarity index 100%
rename from app/components/link-to-with-action.js
rename to packages/frontend/app/components/link-to-with-action.js
diff --git a/app/components/locale-chooser.hbs b/packages/frontend/app/components/locale-chooser.hbs
similarity index 100%
rename from app/components/locale-chooser.hbs
rename to packages/frontend/app/components/locale-chooser.hbs
diff --git a/app/components/locale-chooser.js b/packages/frontend/app/components/locale-chooser.js
similarity index 100%
rename from app/components/locale-chooser.js
rename to packages/frontend/app/components/locale-chooser.js
diff --git a/app/components/login-form.hbs b/packages/frontend/app/components/login-form.hbs
similarity index 100%
rename from app/components/login-form.hbs
rename to packages/frontend/app/components/login-form.hbs
diff --git a/app/components/login-form.js b/packages/frontend/app/components/login-form.js
similarity index 100%
rename from app/components/login-form.js
rename to packages/frontend/app/components/login-form.js
diff --git a/app/components/manage-users-summary.hbs b/packages/frontend/app/components/manage-users-summary.hbs
similarity index 100%
rename from app/components/manage-users-summary.hbs
rename to packages/frontend/app/components/manage-users-summary.hbs
diff --git a/app/components/manage-users-summary.js b/packages/frontend/app/components/manage-users-summary.js
similarity index 100%
rename from app/components/manage-users-summary.js
rename to packages/frontend/app/components/manage-users-summary.js
diff --git a/app/components/my-profile.hbs b/packages/frontend/app/components/my-profile.hbs
similarity index 100%
rename from app/components/my-profile.hbs
rename to packages/frontend/app/components/my-profile.hbs
diff --git a/app/components/my-profile.js b/packages/frontend/app/components/my-profile.js
similarity index 100%
rename from app/components/my-profile.js
rename to packages/frontend/app/components/my-profile.js
diff --git a/app/components/new-competency.hbs b/packages/frontend/app/components/new-competency.hbs
similarity index 100%
rename from app/components/new-competency.hbs
rename to packages/frontend/app/components/new-competency.hbs
diff --git a/app/components/new-competency.js b/packages/frontend/app/components/new-competency.js
similarity index 100%
rename from app/components/new-competency.js
rename to packages/frontend/app/components/new-competency.js
diff --git a/app/components/new-directory-user.hbs b/packages/frontend/app/components/new-directory-user.hbs
similarity index 100%
rename from app/components/new-directory-user.hbs
rename to packages/frontend/app/components/new-directory-user.hbs
diff --git a/app/components/new-directory-user.js b/packages/frontend/app/components/new-directory-user.js
similarity index 100%
rename from app/components/new-directory-user.js
rename to packages/frontend/app/components/new-directory-user.js
diff --git a/app/components/new-user.hbs b/packages/frontend/app/components/new-user.hbs
similarity index 100%
rename from app/components/new-user.hbs
rename to packages/frontend/app/components/new-user.hbs
diff --git a/app/components/new-user.js b/packages/frontend/app/components/new-user.js
similarity index 100%
rename from app/components/new-user.js
rename to packages/frontend/app/components/new-user.js
diff --git a/app/components/pagination-links.hbs b/packages/frontend/app/components/pagination-links.hbs
similarity index 100%
rename from app/components/pagination-links.hbs
rename to packages/frontend/app/components/pagination-links.hbs
diff --git a/app/components/pagination-links.js b/packages/frontend/app/components/pagination-links.js
similarity index 100%
rename from app/components/pagination-links.js
rename to packages/frontend/app/components/pagination-links.js
diff --git a/app/components/pending-single-user-update.hbs b/packages/frontend/app/components/pending-single-user-update.hbs
similarity index 100%
rename from app/components/pending-single-user-update.hbs
rename to packages/frontend/app/components/pending-single-user-update.hbs
diff --git a/app/components/pending-single-user-update.js b/packages/frontend/app/components/pending-single-user-update.js
similarity index 100%
rename from app/components/pending-single-user-update.js
rename to packages/frontend/app/components/pending-single-user-update.js
diff --git a/app/components/pending-updates-summary.hbs b/packages/frontend/app/components/pending-updates-summary.hbs
similarity index 100%
rename from app/components/pending-updates-summary.hbs
rename to packages/frontend/app/components/pending-updates-summary.hbs
diff --git a/app/components/pending-updates-summary.js b/packages/frontend/app/components/pending-updates-summary.js
similarity index 100%
rename from app/components/pending-updates-summary.js
rename to packages/frontend/app/components/pending-updates-summary.js
diff --git a/app/components/program-year/collapsed-objectives.hbs b/packages/frontend/app/components/program-year/collapsed-objectives.hbs
similarity index 100%
rename from app/components/program-year/collapsed-objectives.hbs
rename to packages/frontend/app/components/program-year/collapsed-objectives.hbs
diff --git a/app/components/program-year/collapsed-objectives.js b/packages/frontend/app/components/program-year/collapsed-objectives.js
similarity index 100%
rename from app/components/program-year/collapsed-objectives.js
rename to packages/frontend/app/components/program-year/collapsed-objectives.js
diff --git a/app/components/program-year/competencies.hbs b/packages/frontend/app/components/program-year/competencies.hbs
similarity index 100%
rename from app/components/program-year/competencies.hbs
rename to packages/frontend/app/components/program-year/competencies.hbs
diff --git a/app/components/program-year/competencies.js b/packages/frontend/app/components/program-year/competencies.js
similarity index 100%
rename from app/components/program-year/competencies.js
rename to packages/frontend/app/components/program-year/competencies.js
diff --git a/app/components/program-year/competency-list-item.hbs b/packages/frontend/app/components/program-year/competency-list-item.hbs
similarity index 100%
rename from app/components/program-year/competency-list-item.hbs
rename to packages/frontend/app/components/program-year/competency-list-item.hbs
diff --git a/app/components/program-year/competency-list-item.js b/packages/frontend/app/components/program-year/competency-list-item.js
similarity index 100%
rename from app/components/program-year/competency-list-item.js
rename to packages/frontend/app/components/program-year/competency-list-item.js
diff --git a/app/components/program-year/courses.hbs b/packages/frontend/app/components/program-year/courses.hbs
similarity index 100%
rename from app/components/program-year/courses.hbs
rename to packages/frontend/app/components/program-year/courses.hbs
diff --git a/app/components/program-year/courses.js b/packages/frontend/app/components/program-year/courses.js
similarity index 100%
rename from app/components/program-year/courses.js
rename to packages/frontend/app/components/program-year/courses.js
diff --git a/app/components/program-year/details.hbs b/packages/frontend/app/components/program-year/details.hbs
similarity index 100%
rename from app/components/program-year/details.hbs
rename to packages/frontend/app/components/program-year/details.hbs
diff --git a/app/components/program-year/header.hbs b/packages/frontend/app/components/program-year/header.hbs
similarity index 100%
rename from app/components/program-year/header.hbs
rename to packages/frontend/app/components/program-year/header.hbs
diff --git a/app/components/program-year/header.js b/packages/frontend/app/components/program-year/header.js
similarity index 100%
rename from app/components/program-year/header.js
rename to packages/frontend/app/components/program-year/header.js
diff --git a/app/components/program-year/leadership-expanded.hbs b/packages/frontend/app/components/program-year/leadership-expanded.hbs
similarity index 100%
rename from app/components/program-year/leadership-expanded.hbs
rename to packages/frontend/app/components/program-year/leadership-expanded.hbs
diff --git a/app/components/program-year/leadership-expanded.js b/packages/frontend/app/components/program-year/leadership-expanded.js
similarity index 100%
rename from app/components/program-year/leadership-expanded.js
rename to packages/frontend/app/components/program-year/leadership-expanded.js
diff --git a/app/components/program-year/list-item.hbs b/packages/frontend/app/components/program-year/list-item.hbs
similarity index 100%
rename from app/components/program-year/list-item.hbs
rename to packages/frontend/app/components/program-year/list-item.hbs
diff --git a/app/components/program-year/list-item.js b/packages/frontend/app/components/program-year/list-item.js
similarity index 100%
rename from app/components/program-year/list-item.js
rename to packages/frontend/app/components/program-year/list-item.js
diff --git a/app/components/program-year/list.hbs b/packages/frontend/app/components/program-year/list.hbs
similarity index 100%
rename from app/components/program-year/list.hbs
rename to packages/frontend/app/components/program-year/list.hbs
diff --git a/app/components/program-year/list.js b/packages/frontend/app/components/program-year/list.js
similarity index 100%
rename from app/components/program-year/list.js
rename to packages/frontend/app/components/program-year/list.js
diff --git a/app/components/program-year/manage-objective-competency.hbs b/packages/frontend/app/components/program-year/manage-objective-competency.hbs
similarity index 100%
rename from app/components/program-year/manage-objective-competency.hbs
rename to packages/frontend/app/components/program-year/manage-objective-competency.hbs
diff --git a/app/components/program-year/manage-objective-descriptors.hbs b/packages/frontend/app/components/program-year/manage-objective-descriptors.hbs
similarity index 100%
rename from app/components/program-year/manage-objective-descriptors.hbs
rename to packages/frontend/app/components/program-year/manage-objective-descriptors.hbs
diff --git a/app/components/program-year/managed-competency-list-item.hbs b/packages/frontend/app/components/program-year/managed-competency-list-item.hbs
similarity index 100%
rename from app/components/program-year/managed-competency-list-item.hbs
rename to packages/frontend/app/components/program-year/managed-competency-list-item.hbs
diff --git a/app/components/program-year/managed-competency-list-item.js b/packages/frontend/app/components/program-year/managed-competency-list-item.js
similarity index 100%
rename from app/components/program-year/managed-competency-list-item.js
rename to packages/frontend/app/components/program-year/managed-competency-list-item.js
diff --git a/app/components/program-year/new.hbs b/packages/frontend/app/components/program-year/new.hbs
similarity index 100%
rename from app/components/program-year/new.hbs
rename to packages/frontend/app/components/program-year/new.hbs
diff --git a/app/components/program-year/new.js b/packages/frontend/app/components/program-year/new.js
similarity index 100%
rename from app/components/program-year/new.js
rename to packages/frontend/app/components/program-year/new.js
diff --git a/app/components/program-year/objective-list-item-competency.hbs b/packages/frontend/app/components/program-year/objective-list-item-competency.hbs
similarity index 100%
rename from app/components/program-year/objective-list-item-competency.hbs
rename to packages/frontend/app/components/program-year/objective-list-item-competency.hbs
diff --git a/app/components/program-year/objective-list-item-descriptors.hbs b/packages/frontend/app/components/program-year/objective-list-item-descriptors.hbs
similarity index 100%
rename from app/components/program-year/objective-list-item-descriptors.hbs
rename to packages/frontend/app/components/program-year/objective-list-item-descriptors.hbs
diff --git a/app/components/program-year/objective-list-item-expanded.hbs b/packages/frontend/app/components/program-year/objective-list-item-expanded.hbs
similarity index 100%
rename from app/components/program-year/objective-list-item-expanded.hbs
rename to packages/frontend/app/components/program-year/objective-list-item-expanded.hbs
diff --git a/app/components/program-year/objective-list-item-expanded.js b/packages/frontend/app/components/program-year/objective-list-item-expanded.js
similarity index 100%
rename from app/components/program-year/objective-list-item-expanded.js
rename to packages/frontend/app/components/program-year/objective-list-item-expanded.js
diff --git a/app/components/program-year/objective-list-item.hbs b/packages/frontend/app/components/program-year/objective-list-item.hbs
similarity index 100%
rename from app/components/program-year/objective-list-item.hbs
rename to packages/frontend/app/components/program-year/objective-list-item.hbs
diff --git a/app/components/program-year/objective-list-item.js b/packages/frontend/app/components/program-year/objective-list-item.js
similarity index 100%
rename from app/components/program-year/objective-list-item.js
rename to packages/frontend/app/components/program-year/objective-list-item.js
diff --git a/app/components/program-year/objective-list-loading.hbs b/packages/frontend/app/components/program-year/objective-list-loading.hbs
similarity index 100%
rename from app/components/program-year/objective-list-loading.hbs
rename to packages/frontend/app/components/program-year/objective-list-loading.hbs
diff --git a/app/components/program-year/objective-list.hbs b/packages/frontend/app/components/program-year/objective-list.hbs
similarity index 100%
rename from app/components/program-year/objective-list.hbs
rename to packages/frontend/app/components/program-year/objective-list.hbs
diff --git a/app/components/program-year/objective-list.js b/packages/frontend/app/components/program-year/objective-list.js
similarity index 100%
rename from app/components/program-year/objective-list.js
rename to packages/frontend/app/components/program-year/objective-list.js
diff --git a/app/components/program-year/objectives.hbs b/packages/frontend/app/components/program-year/objectives.hbs
similarity index 100%
rename from app/components/program-year/objectives.hbs
rename to packages/frontend/app/components/program-year/objectives.hbs
diff --git a/app/components/program-year/objectives.js b/packages/frontend/app/components/program-year/objectives.js
similarity index 100%
rename from app/components/program-year/objectives.js
rename to packages/frontend/app/components/program-year/objectives.js
diff --git a/app/components/program-year/overview.hbs b/packages/frontend/app/components/program-year/overview.hbs
similarity index 100%
rename from app/components/program-year/overview.hbs
rename to packages/frontend/app/components/program-year/overview.hbs
diff --git a/app/components/program-year/visualize-objectives.hbs b/packages/frontend/app/components/program-year/visualize-objectives.hbs
similarity index 100%
rename from app/components/program-year/visualize-objectives.hbs
rename to packages/frontend/app/components/program-year/visualize-objectives.hbs
diff --git a/app/components/program/header.hbs b/packages/frontend/app/components/program/header.hbs
similarity index 100%
rename from app/components/program/header.hbs
rename to packages/frontend/app/components/program/header.hbs
diff --git a/app/components/program/header.js b/packages/frontend/app/components/program/header.js
similarity index 100%
rename from app/components/program/header.js
rename to packages/frontend/app/components/program/header.js
diff --git a/app/components/program/leadership-expanded.hbs b/packages/frontend/app/components/program/leadership-expanded.hbs
similarity index 100%
rename from app/components/program/leadership-expanded.hbs
rename to packages/frontend/app/components/program/leadership-expanded.hbs
diff --git a/app/components/program/leadership-expanded.js b/packages/frontend/app/components/program/leadership-expanded.js
similarity index 100%
rename from app/components/program/leadership-expanded.js
rename to packages/frontend/app/components/program/leadership-expanded.js
diff --git a/app/components/program/new.hbs b/packages/frontend/app/components/program/new.hbs
similarity index 100%
rename from app/components/program/new.hbs
rename to packages/frontend/app/components/program/new.hbs
diff --git a/app/components/program/new.js b/packages/frontend/app/components/program/new.js
similarity index 100%
rename from app/components/program/new.js
rename to packages/frontend/app/components/program/new.js
diff --git a/app/components/program/overview.hbs b/packages/frontend/app/components/program/overview.hbs
similarity index 100%
rename from app/components/program/overview.hbs
rename to packages/frontend/app/components/program/overview.hbs
diff --git a/app/components/program/overview.js b/packages/frontend/app/components/program/overview.js
similarity index 100%
rename from app/components/program/overview.js
rename to packages/frontend/app/components/program/overview.js
diff --git a/app/components/program/root.hbs b/packages/frontend/app/components/program/root.hbs
similarity index 100%
rename from app/components/program/root.hbs
rename to packages/frontend/app/components/program/root.hbs
diff --git a/app/components/programs/list-item.hbs b/packages/frontend/app/components/programs/list-item.hbs
similarity index 100%
rename from app/components/programs/list-item.hbs
rename to packages/frontend/app/components/programs/list-item.hbs
diff --git a/app/components/programs/list-item.js b/packages/frontend/app/components/programs/list-item.js
similarity index 100%
rename from app/components/programs/list-item.js
rename to packages/frontend/app/components/programs/list-item.js
diff --git a/app/components/programs/list.hbs b/packages/frontend/app/components/programs/list.hbs
similarity index 100%
rename from app/components/programs/list.hbs
rename to packages/frontend/app/components/programs/list.hbs
diff --git a/app/components/programs/root.hbs b/packages/frontend/app/components/programs/root.hbs
similarity index 100%
rename from app/components/programs/root.hbs
rename to packages/frontend/app/components/programs/root.hbs
diff --git a/app/components/programs/root.js b/packages/frontend/app/components/programs/root.js
similarity index 100%
rename from app/components/programs/root.js
rename to packages/frontend/app/components/programs/root.js
diff --git a/app/components/reports/list-loading.hbs b/packages/frontend/app/components/reports/list-loading.hbs
similarity index 100%
rename from app/components/reports/list-loading.hbs
rename to packages/frontend/app/components/reports/list-loading.hbs
diff --git a/app/components/reports/list.hbs b/packages/frontend/app/components/reports/list.hbs
similarity index 100%
rename from app/components/reports/list.hbs
rename to packages/frontend/app/components/reports/list.hbs
diff --git a/app/components/reports/list.js b/packages/frontend/app/components/reports/list.js
similarity index 100%
rename from app/components/reports/list.js
rename to packages/frontend/app/components/reports/list.js
diff --git a/app/components/reports/new-subject.hbs b/packages/frontend/app/components/reports/new-subject.hbs
similarity index 100%
rename from app/components/reports/new-subject.hbs
rename to packages/frontend/app/components/reports/new-subject.hbs
diff --git a/app/components/reports/new-subject.js b/packages/frontend/app/components/reports/new-subject.js
similarity index 100%
rename from app/components/reports/new-subject.js
rename to packages/frontend/app/components/reports/new-subject.js
diff --git a/app/components/reports/root.hbs b/packages/frontend/app/components/reports/root.hbs
similarity index 100%
rename from app/components/reports/root.hbs
rename to packages/frontend/app/components/reports/root.hbs
diff --git a/app/components/reports/subject-results.hbs b/packages/frontend/app/components/reports/subject-results.hbs
similarity index 100%
rename from app/components/reports/subject-results.hbs
rename to packages/frontend/app/components/reports/subject-results.hbs
diff --git a/app/components/reports/subject-results.js b/packages/frontend/app/components/reports/subject-results.js
similarity index 100%
rename from app/components/reports/subject-results.js
rename to packages/frontend/app/components/reports/subject-results.js
diff --git a/app/components/reports/subject.hbs b/packages/frontend/app/components/reports/subject.hbs
similarity index 100%
rename from app/components/reports/subject.hbs
rename to packages/frontend/app/components/reports/subject.hbs
diff --git a/app/components/reports/subject.js b/packages/frontend/app/components/reports/subject.js
similarity index 100%
rename from app/components/reports/subject.js
rename to packages/frontend/app/components/reports/subject.js
diff --git a/app/components/reports/subject/competency.hbs b/packages/frontend/app/components/reports/subject/competency.hbs
similarity index 100%
rename from app/components/reports/subject/competency.hbs
rename to packages/frontend/app/components/reports/subject/competency.hbs
diff --git a/app/components/reports/subject/competency.js b/packages/frontend/app/components/reports/subject/competency.js
similarity index 100%
rename from app/components/reports/subject/competency.js
rename to packages/frontend/app/components/reports/subject/competency.js
diff --git a/app/components/reports/subject/course.hbs b/packages/frontend/app/components/reports/subject/course.hbs
similarity index 100%
rename from app/components/reports/subject/course.hbs
rename to packages/frontend/app/components/reports/subject/course.hbs
diff --git a/app/components/reports/subject/course.js b/packages/frontend/app/components/reports/subject/course.js
similarity index 100%
rename from app/components/reports/subject/course.js
rename to packages/frontend/app/components/reports/subject/course.js
diff --git a/app/components/reports/subject/instructor-group.hbs b/packages/frontend/app/components/reports/subject/instructor-group.hbs
similarity index 100%
rename from app/components/reports/subject/instructor-group.hbs
rename to packages/frontend/app/components/reports/subject/instructor-group.hbs
diff --git a/app/components/reports/subject/instructor-group.js b/packages/frontend/app/components/reports/subject/instructor-group.js
similarity index 100%
rename from app/components/reports/subject/instructor-group.js
rename to packages/frontend/app/components/reports/subject/instructor-group.js
diff --git a/app/components/reports/subject/instructor.hbs b/packages/frontend/app/components/reports/subject/instructor.hbs
similarity index 100%
rename from app/components/reports/subject/instructor.hbs
rename to packages/frontend/app/components/reports/subject/instructor.hbs
diff --git a/app/components/reports/subject/instructor.js b/packages/frontend/app/components/reports/subject/instructor.js
similarity index 100%
rename from app/components/reports/subject/instructor.js
rename to packages/frontend/app/components/reports/subject/instructor.js
diff --git a/app/components/reports/subject/learning-material.hbs b/packages/frontend/app/components/reports/subject/learning-material.hbs
similarity index 100%
rename from app/components/reports/subject/learning-material.hbs
rename to packages/frontend/app/components/reports/subject/learning-material.hbs
diff --git a/app/components/reports/subject/learning-material.js b/packages/frontend/app/components/reports/subject/learning-material.js
similarity index 100%
rename from app/components/reports/subject/learning-material.js
rename to packages/frontend/app/components/reports/subject/learning-material.js
diff --git a/app/components/reports/subject/mesh-term.hbs b/packages/frontend/app/components/reports/subject/mesh-term.hbs
similarity index 100%
rename from app/components/reports/subject/mesh-term.hbs
rename to packages/frontend/app/components/reports/subject/mesh-term.hbs
diff --git a/app/components/reports/subject/mesh-term.js b/packages/frontend/app/components/reports/subject/mesh-term.js
similarity index 100%
rename from app/components/reports/subject/mesh-term.js
rename to packages/frontend/app/components/reports/subject/mesh-term.js
diff --git a/app/components/reports/subject/new/competency.hbs b/packages/frontend/app/components/reports/subject/new/competency.hbs
similarity index 100%
rename from app/components/reports/subject/new/competency.hbs
rename to packages/frontend/app/components/reports/subject/new/competency.hbs
diff --git a/app/components/reports/subject/new/competency.js b/packages/frontend/app/components/reports/subject/new/competency.js
similarity index 100%
rename from app/components/reports/subject/new/competency.js
rename to packages/frontend/app/components/reports/subject/new/competency.js
diff --git a/app/components/reports/subject/new/course.hbs b/packages/frontend/app/components/reports/subject/new/course.hbs
similarity index 100%
rename from app/components/reports/subject/new/course.hbs
rename to packages/frontend/app/components/reports/subject/new/course.hbs
diff --git a/app/components/reports/subject/new/course.js b/packages/frontend/app/components/reports/subject/new/course.js
similarity index 100%
rename from app/components/reports/subject/new/course.js
rename to packages/frontend/app/components/reports/subject/new/course.js
diff --git a/app/components/reports/subject/new/instructor-group.hbs b/packages/frontend/app/components/reports/subject/new/instructor-group.hbs
similarity index 100%
rename from app/components/reports/subject/new/instructor-group.hbs
rename to packages/frontend/app/components/reports/subject/new/instructor-group.hbs
diff --git a/app/components/reports/subject/new/instructor-group.js b/packages/frontend/app/components/reports/subject/new/instructor-group.js
similarity index 100%
rename from app/components/reports/subject/new/instructor-group.js
rename to packages/frontend/app/components/reports/subject/new/instructor-group.js
diff --git a/app/components/reports/subject/new/instructor.hbs b/packages/frontend/app/components/reports/subject/new/instructor.hbs
similarity index 100%
rename from app/components/reports/subject/new/instructor.hbs
rename to packages/frontend/app/components/reports/subject/new/instructor.hbs
diff --git a/app/components/reports/subject/new/instructor.js b/packages/frontend/app/components/reports/subject/new/instructor.js
similarity index 100%
rename from app/components/reports/subject/new/instructor.js
rename to packages/frontend/app/components/reports/subject/new/instructor.js
diff --git a/app/components/reports/subject/new/learning-material.hbs b/packages/frontend/app/components/reports/subject/new/learning-material.hbs
similarity index 100%
rename from app/components/reports/subject/new/learning-material.hbs
rename to packages/frontend/app/components/reports/subject/new/learning-material.hbs
diff --git a/app/components/reports/subject/new/learning-material.js b/packages/frontend/app/components/reports/subject/new/learning-material.js
similarity index 100%
rename from app/components/reports/subject/new/learning-material.js
rename to packages/frontend/app/components/reports/subject/new/learning-material.js
diff --git a/app/components/reports/subject/new/mesh-term.hbs b/packages/frontend/app/components/reports/subject/new/mesh-term.hbs
similarity index 100%
rename from app/components/reports/subject/new/mesh-term.hbs
rename to packages/frontend/app/components/reports/subject/new/mesh-term.hbs
diff --git a/app/components/reports/subject/new/mesh-term.js b/packages/frontend/app/components/reports/subject/new/mesh-term.js
similarity index 100%
rename from app/components/reports/subject/new/mesh-term.js
rename to packages/frontend/app/components/reports/subject/new/mesh-term.js
diff --git a/app/components/reports/subject/new/program-year.hbs b/packages/frontend/app/components/reports/subject/new/program-year.hbs
similarity index 100%
rename from app/components/reports/subject/new/program-year.hbs
rename to packages/frontend/app/components/reports/subject/new/program-year.hbs
diff --git a/app/components/reports/subject/new/program-year.js b/packages/frontend/app/components/reports/subject/new/program-year.js
similarity index 100%
rename from app/components/reports/subject/new/program-year.js
rename to packages/frontend/app/components/reports/subject/new/program-year.js
diff --git a/app/components/reports/subject/new/program.hbs b/packages/frontend/app/components/reports/subject/new/program.hbs
similarity index 100%
rename from app/components/reports/subject/new/program.hbs
rename to packages/frontend/app/components/reports/subject/new/program.hbs
diff --git a/app/components/reports/subject/new/program.js b/packages/frontend/app/components/reports/subject/new/program.js
similarity index 100%
rename from app/components/reports/subject/new/program.js
rename to packages/frontend/app/components/reports/subject/new/program.js
diff --git a/app/components/reports/subject/new/search/input.hbs b/packages/frontend/app/components/reports/subject/new/search/input.hbs
similarity index 100%
rename from app/components/reports/subject/new/search/input.hbs
rename to packages/frontend/app/components/reports/subject/new/search/input.hbs
diff --git a/app/components/reports/subject/new/search/input.js b/packages/frontend/app/components/reports/subject/new/search/input.js
similarity index 100%
rename from app/components/reports/subject/new/search/input.js
rename to packages/frontend/app/components/reports/subject/new/search/input.js
diff --git a/app/components/reports/subject/new/session-type.hbs b/packages/frontend/app/components/reports/subject/new/session-type.hbs
similarity index 100%
rename from app/components/reports/subject/new/session-type.hbs
rename to packages/frontend/app/components/reports/subject/new/session-type.hbs
diff --git a/app/components/reports/subject/new/session-type.js b/packages/frontend/app/components/reports/subject/new/session-type.js
similarity index 100%
rename from app/components/reports/subject/new/session-type.js
rename to packages/frontend/app/components/reports/subject/new/session-type.js
diff --git a/app/components/reports/subject/new/session.hbs b/packages/frontend/app/components/reports/subject/new/session.hbs
similarity index 100%
rename from app/components/reports/subject/new/session.hbs
rename to packages/frontend/app/components/reports/subject/new/session.hbs
diff --git a/app/components/reports/subject/new/session.js b/packages/frontend/app/components/reports/subject/new/session.js
similarity index 100%
rename from app/components/reports/subject/new/session.js
rename to packages/frontend/app/components/reports/subject/new/session.js
diff --git a/app/components/reports/subject/new/term.hbs b/packages/frontend/app/components/reports/subject/new/term.hbs
similarity index 100%
rename from app/components/reports/subject/new/term.hbs
rename to packages/frontend/app/components/reports/subject/new/term.hbs
diff --git a/app/components/reports/subject/new/term.js b/packages/frontend/app/components/reports/subject/new/term.js
similarity index 100%
rename from app/components/reports/subject/new/term.js
rename to packages/frontend/app/components/reports/subject/new/term.js
diff --git a/app/components/reports/subject/program-year.hbs b/packages/frontend/app/components/reports/subject/program-year.hbs
similarity index 100%
rename from app/components/reports/subject/program-year.hbs
rename to packages/frontend/app/components/reports/subject/program-year.hbs
diff --git a/app/components/reports/subject/program-year.js b/packages/frontend/app/components/reports/subject/program-year.js
similarity index 100%
rename from app/components/reports/subject/program-year.js
rename to packages/frontend/app/components/reports/subject/program-year.js
diff --git a/app/components/reports/subject/program.hbs b/packages/frontend/app/components/reports/subject/program.hbs
similarity index 100%
rename from app/components/reports/subject/program.hbs
rename to packages/frontend/app/components/reports/subject/program.hbs
diff --git a/app/components/reports/subject/program.js b/packages/frontend/app/components/reports/subject/program.js
similarity index 100%
rename from app/components/reports/subject/program.js
rename to packages/frontend/app/components/reports/subject/program.js
diff --git a/app/components/reports/subject/session-type.hbs b/packages/frontend/app/components/reports/subject/session-type.hbs
similarity index 100%
rename from app/components/reports/subject/session-type.hbs
rename to packages/frontend/app/components/reports/subject/session-type.hbs
diff --git a/app/components/reports/subject/session-type.js b/packages/frontend/app/components/reports/subject/session-type.js
similarity index 100%
rename from app/components/reports/subject/session-type.js
rename to packages/frontend/app/components/reports/subject/session-type.js
diff --git a/app/components/reports/subject/session.hbs b/packages/frontend/app/components/reports/subject/session.hbs
similarity index 100%
rename from app/components/reports/subject/session.hbs
rename to packages/frontend/app/components/reports/subject/session.hbs
diff --git a/app/components/reports/subject/session.js b/packages/frontend/app/components/reports/subject/session.js
similarity index 100%
rename from app/components/reports/subject/session.js
rename to packages/frontend/app/components/reports/subject/session.js
diff --git a/app/components/reports/subject/term.hbs b/packages/frontend/app/components/reports/subject/term.hbs
similarity index 100%
rename from app/components/reports/subject/term.hbs
rename to packages/frontend/app/components/reports/subject/term.hbs
diff --git a/app/components/reports/subject/term.js b/packages/frontend/app/components/reports/subject/term.js
similarity index 100%
rename from app/components/reports/subject/term.js
rename to packages/frontend/app/components/reports/subject/term.js
diff --git a/app/components/reports/table-row.hbs b/packages/frontend/app/components/reports/table-row.hbs
similarity index 100%
rename from app/components/reports/table-row.hbs
rename to packages/frontend/app/components/reports/table-row.hbs
diff --git a/app/components/reports/table.hbs b/packages/frontend/app/components/reports/table.hbs
similarity index 100%
rename from app/components/reports/table.hbs
rename to packages/frontend/app/components/reports/table.hbs
diff --git a/app/components/reports/table.js b/packages/frontend/app/components/reports/table.js
similarity index 100%
rename from app/components/reports/table.js
rename to packages/frontend/app/components/reports/table.js
diff --git a/app/components/school-competencies-collapsed.hbs b/packages/frontend/app/components/school-competencies-collapsed.hbs
similarity index 100%
rename from app/components/school-competencies-collapsed.hbs
rename to packages/frontend/app/components/school-competencies-collapsed.hbs
diff --git a/app/components/school-competencies-collapsed.js b/packages/frontend/app/components/school-competencies-collapsed.js
similarity index 100%
rename from app/components/school-competencies-collapsed.js
rename to packages/frontend/app/components/school-competencies-collapsed.js
diff --git a/app/components/school-competencies-expanded.hbs b/packages/frontend/app/components/school-competencies-expanded.hbs
similarity index 100%
rename from app/components/school-competencies-expanded.hbs
rename to packages/frontend/app/components/school-competencies-expanded.hbs
diff --git a/app/components/school-competencies-expanded.js b/packages/frontend/app/components/school-competencies-expanded.js
similarity index 100%
rename from app/components/school-competencies-expanded.js
rename to packages/frontend/app/components/school-competencies-expanded.js
diff --git a/app/components/school-competencies-list-item-pcrs.hbs b/packages/frontend/app/components/school-competencies-list-item-pcrs.hbs
similarity index 100%
rename from app/components/school-competencies-list-item-pcrs.hbs
rename to packages/frontend/app/components/school-competencies-list-item-pcrs.hbs
diff --git a/app/components/school-competencies-list-item-pcrs.js b/packages/frontend/app/components/school-competencies-list-item-pcrs.js
similarity index 100%
rename from app/components/school-competencies-list-item-pcrs.js
rename to packages/frontend/app/components/school-competencies-list-item-pcrs.js
diff --git a/app/components/school-competencies-list-item.hbs b/packages/frontend/app/components/school-competencies-list-item.hbs
similarity index 100%
rename from app/components/school-competencies-list-item.hbs
rename to packages/frontend/app/components/school-competencies-list-item.hbs
diff --git a/app/components/school-competencies-list-item.js b/packages/frontend/app/components/school-competencies-list-item.js
similarity index 100%
rename from app/components/school-competencies-list-item.js
rename to packages/frontend/app/components/school-competencies-list-item.js
diff --git a/app/components/school-competencies-list.hbs b/packages/frontend/app/components/school-competencies-list.hbs
similarity index 100%
rename from app/components/school-competencies-list.hbs
rename to packages/frontend/app/components/school-competencies-list.hbs
diff --git a/app/components/school-competencies-list.js b/packages/frontend/app/components/school-competencies-list.js
similarity index 100%
rename from app/components/school-competencies-list.js
rename to packages/frontend/app/components/school-competencies-list.js
diff --git a/app/components/school-competencies-manager.hbs b/packages/frontend/app/components/school-competencies-manager.hbs
similarity index 100%
rename from app/components/school-competencies-manager.hbs
rename to packages/frontend/app/components/school-competencies-manager.hbs
diff --git a/app/components/school-competencies-manager.js b/packages/frontend/app/components/school-competencies-manager.js
similarity index 100%
rename from app/components/school-competencies-manager.js
rename to packages/frontend/app/components/school-competencies-manager.js
diff --git a/app/components/school-competencies-pcrs-mapper.hbs b/packages/frontend/app/components/school-competencies-pcrs-mapper.hbs
similarity index 100%
rename from app/components/school-competencies-pcrs-mapper.hbs
rename to packages/frontend/app/components/school-competencies-pcrs-mapper.hbs
diff --git a/app/components/school-curriculum-inventory-institution-details.hbs b/packages/frontend/app/components/school-curriculum-inventory-institution-details.hbs
similarity index 100%
rename from app/components/school-curriculum-inventory-institution-details.hbs
rename to packages/frontend/app/components/school-curriculum-inventory-institution-details.hbs
diff --git a/app/components/school-curriculum-inventory-institution-manager.hbs b/packages/frontend/app/components/school-curriculum-inventory-institution-manager.hbs
similarity index 100%
rename from app/components/school-curriculum-inventory-institution-manager.hbs
rename to packages/frontend/app/components/school-curriculum-inventory-institution-manager.hbs
diff --git a/app/components/school-curriculum-inventory-institution-manager.js b/packages/frontend/app/components/school-curriculum-inventory-institution-manager.js
similarity index 100%
rename from app/components/school-curriculum-inventory-institution-manager.js
rename to packages/frontend/app/components/school-curriculum-inventory-institution-manager.js
diff --git a/app/components/school-leadership-expanded.hbs b/packages/frontend/app/components/school-leadership-expanded.hbs
similarity index 100%
rename from app/components/school-leadership-expanded.hbs
rename to packages/frontend/app/components/school-leadership-expanded.hbs
diff --git a/app/components/school-leadership-expanded.js b/packages/frontend/app/components/school-leadership-expanded.js
similarity index 100%
rename from app/components/school-leadership-expanded.js
rename to packages/frontend/app/components/school-leadership-expanded.js
diff --git a/app/components/school-list.hbs b/packages/frontend/app/components/school-list.hbs
similarity index 100%
rename from app/components/school-list.hbs
rename to packages/frontend/app/components/school-list.hbs
diff --git a/app/components/school-list.js b/packages/frontend/app/components/school-list.js
similarity index 100%
rename from app/components/school-list.js
rename to packages/frontend/app/components/school-list.js
diff --git a/app/components/school-manager.hbs b/packages/frontend/app/components/school-manager.hbs
similarity index 100%
rename from app/components/school-manager.hbs
rename to packages/frontend/app/components/school-manager.hbs
diff --git a/app/components/school-manager.js b/packages/frontend/app/components/school-manager.js
similarity index 100%
rename from app/components/school-manager.js
rename to packages/frontend/app/components/school-manager.js
diff --git a/app/components/school-new-vocabulary-form.hbs b/packages/frontend/app/components/school-new-vocabulary-form.hbs
similarity index 100%
rename from app/components/school-new-vocabulary-form.hbs
rename to packages/frontend/app/components/school-new-vocabulary-form.hbs
diff --git a/app/components/school-new-vocabulary-form.js b/packages/frontend/app/components/school-new-vocabulary-form.js
similarity index 100%
rename from app/components/school-new-vocabulary-form.js
rename to packages/frontend/app/components/school-new-vocabulary-form.js
diff --git a/app/components/school-session-attributes-collapsed.hbs b/packages/frontend/app/components/school-session-attributes-collapsed.hbs
similarity index 100%
rename from app/components/school-session-attributes-collapsed.hbs
rename to packages/frontend/app/components/school-session-attributes-collapsed.hbs
diff --git a/app/components/school-session-attributes-expanded.hbs b/packages/frontend/app/components/school-session-attributes-expanded.hbs
similarity index 100%
rename from app/components/school-session-attributes-expanded.hbs
rename to packages/frontend/app/components/school-session-attributes-expanded.hbs
diff --git a/app/components/school-session-attributes-expanded.js b/packages/frontend/app/components/school-session-attributes-expanded.js
similarity index 100%
rename from app/components/school-session-attributes-expanded.js
rename to packages/frontend/app/components/school-session-attributes-expanded.js
diff --git a/app/components/school-session-attributes-manager.hbs b/packages/frontend/app/components/school-session-attributes-manager.hbs
similarity index 100%
rename from app/components/school-session-attributes-manager.hbs
rename to packages/frontend/app/components/school-session-attributes-manager.hbs
diff --git a/app/components/school-session-attributes.hbs b/packages/frontend/app/components/school-session-attributes.hbs
similarity index 100%
rename from app/components/school-session-attributes.hbs
rename to packages/frontend/app/components/school-session-attributes.hbs
diff --git a/app/components/school-session-attributes.js b/packages/frontend/app/components/school-session-attributes.js
similarity index 100%
rename from app/components/school-session-attributes.js
rename to packages/frontend/app/components/school-session-attributes.js
diff --git a/app/components/school-session-type-form.hbs b/packages/frontend/app/components/school-session-type-form.hbs
similarity index 100%
rename from app/components/school-session-type-form.hbs
rename to packages/frontend/app/components/school-session-type-form.hbs
diff --git a/app/components/school-session-type-form.js b/packages/frontend/app/components/school-session-type-form.js
similarity index 100%
rename from app/components/school-session-type-form.js
rename to packages/frontend/app/components/school-session-type-form.js
diff --git a/app/components/school-session-type-manager.hbs b/packages/frontend/app/components/school-session-type-manager.hbs
similarity index 100%
rename from app/components/school-session-type-manager.hbs
rename to packages/frontend/app/components/school-session-type-manager.hbs
diff --git a/app/components/school-session-type-manager.js b/packages/frontend/app/components/school-session-type-manager.js
similarity index 100%
rename from app/components/school-session-type-manager.js
rename to packages/frontend/app/components/school-session-type-manager.js
diff --git a/app/components/school-session-types-collapsed.hbs b/packages/frontend/app/components/school-session-types-collapsed.hbs
similarity index 100%
rename from app/components/school-session-types-collapsed.hbs
rename to packages/frontend/app/components/school-session-types-collapsed.hbs
diff --git a/app/components/school-session-types-collapsed.js b/packages/frontend/app/components/school-session-types-collapsed.js
similarity index 100%
rename from app/components/school-session-types-collapsed.js
rename to packages/frontend/app/components/school-session-types-collapsed.js
diff --git a/app/components/school-session-types-expanded.hbs b/packages/frontend/app/components/school-session-types-expanded.hbs
similarity index 100%
rename from app/components/school-session-types-expanded.hbs
rename to packages/frontend/app/components/school-session-types-expanded.hbs
diff --git a/app/components/school-session-types-expanded.js b/packages/frontend/app/components/school-session-types-expanded.js
similarity index 100%
rename from app/components/school-session-types-expanded.js
rename to packages/frontend/app/components/school-session-types-expanded.js
diff --git a/app/components/school-session-types-list-item.hbs b/packages/frontend/app/components/school-session-types-list-item.hbs
similarity index 100%
rename from app/components/school-session-types-list-item.hbs
rename to packages/frontend/app/components/school-session-types-list-item.hbs
diff --git a/app/components/school-session-types-list-item.js b/packages/frontend/app/components/school-session-types-list-item.js
similarity index 100%
rename from app/components/school-session-types-list-item.js
rename to packages/frontend/app/components/school-session-types-list-item.js
diff --git a/app/components/school-session-types-list.hbs b/packages/frontend/app/components/school-session-types-list.hbs
similarity index 100%
rename from app/components/school-session-types-list.hbs
rename to packages/frontend/app/components/school-session-types-list.hbs
diff --git a/app/components/school-vocabularies-collapsed.hbs b/packages/frontend/app/components/school-vocabularies-collapsed.hbs
similarity index 100%
rename from app/components/school-vocabularies-collapsed.hbs
rename to packages/frontend/app/components/school-vocabularies-collapsed.hbs
diff --git a/app/components/school-vocabularies-collapsed.js b/packages/frontend/app/components/school-vocabularies-collapsed.js
similarity index 100%
rename from app/components/school-vocabularies-collapsed.js
rename to packages/frontend/app/components/school-vocabularies-collapsed.js
diff --git a/app/components/school-vocabularies-expanded.hbs b/packages/frontend/app/components/school-vocabularies-expanded.hbs
similarity index 100%
rename from app/components/school-vocabularies-expanded.hbs
rename to packages/frontend/app/components/school-vocabularies-expanded.hbs
diff --git a/app/components/school-vocabularies-expanded.js b/packages/frontend/app/components/school-vocabularies-expanded.js
similarity index 100%
rename from app/components/school-vocabularies-expanded.js
rename to packages/frontend/app/components/school-vocabularies-expanded.js
diff --git a/app/components/school-vocabularies-list.hbs b/packages/frontend/app/components/school-vocabularies-list.hbs
similarity index 100%
rename from app/components/school-vocabularies-list.hbs
rename to packages/frontend/app/components/school-vocabularies-list.hbs
diff --git a/app/components/school-vocabularies-list.js b/packages/frontend/app/components/school-vocabularies-list.js
similarity index 100%
rename from app/components/school-vocabularies-list.js
rename to packages/frontend/app/components/school-vocabularies-list.js
diff --git a/app/components/school-vocabulary-manager.hbs b/packages/frontend/app/components/school-vocabulary-manager.hbs
similarity index 100%
rename from app/components/school-vocabulary-manager.hbs
rename to packages/frontend/app/components/school-vocabulary-manager.hbs
diff --git a/app/components/school-vocabulary-manager.js b/packages/frontend/app/components/school-vocabulary-manager.js
similarity index 100%
rename from app/components/school-vocabulary-manager.js
rename to packages/frontend/app/components/school-vocabulary-manager.js
diff --git a/app/components/school-vocabulary-new-term.hbs b/packages/frontend/app/components/school-vocabulary-new-term.hbs
similarity index 100%
rename from app/components/school-vocabulary-new-term.hbs
rename to packages/frontend/app/components/school-vocabulary-new-term.hbs
diff --git a/app/components/school-vocabulary-new-term.js b/packages/frontend/app/components/school-vocabulary-new-term.js
similarity index 100%
rename from app/components/school-vocabulary-new-term.js
rename to packages/frontend/app/components/school-vocabulary-new-term.js
diff --git a/app/components/school-vocabulary-term-manager.hbs b/packages/frontend/app/components/school-vocabulary-term-manager.hbs
similarity index 100%
rename from app/components/school-vocabulary-term-manager.hbs
rename to packages/frontend/app/components/school-vocabulary-term-manager.hbs
diff --git a/app/components/school-vocabulary-term-manager.js b/packages/frontend/app/components/school-vocabulary-term-manager.js
similarity index 100%
rename from app/components/school-vocabulary-term-manager.js
rename to packages/frontend/app/components/school-vocabulary-term-manager.js
diff --git a/app/components/school/session-type-visualize-vocabularies.hbs b/packages/frontend/app/components/school/session-type-visualize-vocabularies.hbs
similarity index 100%
rename from app/components/school/session-type-visualize-vocabularies.hbs
rename to packages/frontend/app/components/school/session-type-visualize-vocabularies.hbs
diff --git a/app/components/school/session-type-visualize-vocabulary.hbs b/packages/frontend/app/components/school/session-type-visualize-vocabulary.hbs
similarity index 100%
rename from app/components/school/session-type-visualize-vocabulary.hbs
rename to packages/frontend/app/components/school/session-type-visualize-vocabulary.hbs
diff --git a/app/components/school/visualizer-session-type-vocabularies.hbs b/packages/frontend/app/components/school/visualizer-session-type-vocabularies.hbs
similarity index 100%
rename from app/components/school/visualizer-session-type-vocabularies.hbs
rename to packages/frontend/app/components/school/visualizer-session-type-vocabularies.hbs
diff --git a/app/components/school/visualizer-session-type-vocabularies.js b/packages/frontend/app/components/school/visualizer-session-type-vocabularies.js
similarity index 100%
rename from app/components/school/visualizer-session-type-vocabularies.js
rename to packages/frontend/app/components/school/visualizer-session-type-vocabularies.js
diff --git a/app/components/school/visualizer-session-type-vocabulary.hbs b/packages/frontend/app/components/school/visualizer-session-type-vocabulary.hbs
similarity index 100%
rename from app/components/school/visualizer-session-type-vocabulary.hbs
rename to packages/frontend/app/components/school/visualizer-session-type-vocabulary.hbs
diff --git a/app/components/school/visualizer-session-type-vocabulary.js b/packages/frontend/app/components/school/visualizer-session-type-vocabulary.js
similarity index 100%
rename from app/components/school/visualizer-session-type-vocabulary.js
rename to packages/frontend/app/components/school/visualizer-session-type-vocabulary.js
diff --git a/app/components/unassigned-students-summary.hbs b/packages/frontend/app/components/unassigned-students-summary.hbs
similarity index 100%
rename from app/components/unassigned-students-summary.hbs
rename to packages/frontend/app/components/unassigned-students-summary.hbs
diff --git a/app/components/unassigned-students-summary.js b/packages/frontend/app/components/unassigned-students-summary.js
similarity index 100%
rename from app/components/unassigned-students-summary.js
rename to packages/frontend/app/components/unassigned-students-summary.js
diff --git a/app/components/update-notification.hbs b/packages/frontend/app/components/update-notification.hbs
similarity index 100%
rename from app/components/update-notification.hbs
rename to packages/frontend/app/components/update-notification.hbs
diff --git a/app/components/update-notification.js b/packages/frontend/app/components/update-notification.js
similarity index 100%
rename from app/components/update-notification.js
rename to packages/frontend/app/components/update-notification.js
diff --git a/app/components/user-list.hbs b/packages/frontend/app/components/user-list.hbs
similarity index 100%
rename from app/components/user-list.hbs
rename to packages/frontend/app/components/user-list.hbs
diff --git a/app/components/user-menu.hbs b/packages/frontend/app/components/user-menu.hbs
similarity index 100%
rename from app/components/user-menu.hbs
rename to packages/frontend/app/components/user-menu.hbs
diff --git a/app/components/user-menu.js b/packages/frontend/app/components/user-menu.js
similarity index 100%
rename from app/components/user-menu.js
rename to packages/frontend/app/components/user-menu.js
diff --git a/app/components/user-profile-bio.hbs b/packages/frontend/app/components/user-profile-bio.hbs
similarity index 100%
rename from app/components/user-profile-bio.hbs
rename to packages/frontend/app/components/user-profile-bio.hbs
diff --git a/app/components/user-profile-bio.js b/packages/frontend/app/components/user-profile-bio.js
similarity index 100%
rename from app/components/user-profile-bio.js
rename to packages/frontend/app/components/user-profile-bio.js
diff --git a/app/components/user-profile-calendar.hbs b/packages/frontend/app/components/user-profile-calendar.hbs
similarity index 100%
rename from app/components/user-profile-calendar.hbs
rename to packages/frontend/app/components/user-profile-calendar.hbs
diff --git a/app/components/user-profile-calendar.js b/packages/frontend/app/components/user-profile-calendar.js
similarity index 100%
rename from app/components/user-profile-calendar.js
rename to packages/frontend/app/components/user-profile-calendar.js
diff --git a/app/components/user-profile-cohorts-details.hbs b/packages/frontend/app/components/user-profile-cohorts-details.hbs
similarity index 100%
rename from app/components/user-profile-cohorts-details.hbs
rename to packages/frontend/app/components/user-profile-cohorts-details.hbs
diff --git a/app/components/user-profile-cohorts-details.js b/packages/frontend/app/components/user-profile-cohorts-details.js
similarity index 100%
rename from app/components/user-profile-cohorts-details.js
rename to packages/frontend/app/components/user-profile-cohorts-details.js
diff --git a/app/components/user-profile-cohorts-manager.hbs b/packages/frontend/app/components/user-profile-cohorts-manager.hbs
similarity index 100%
rename from app/components/user-profile-cohorts-manager.hbs
rename to packages/frontend/app/components/user-profile-cohorts-manager.hbs
diff --git a/app/components/user-profile-cohorts-manager.js b/packages/frontend/app/components/user-profile-cohorts-manager.js
similarity index 100%
rename from app/components/user-profile-cohorts-manager.js
rename to packages/frontend/app/components/user-profile-cohorts-manager.js
diff --git a/app/components/user-profile-cohorts.hbs b/packages/frontend/app/components/user-profile-cohorts.hbs
similarity index 100%
rename from app/components/user-profile-cohorts.hbs
rename to packages/frontend/app/components/user-profile-cohorts.hbs
diff --git a/app/components/user-profile-cohorts.js b/packages/frontend/app/components/user-profile-cohorts.js
similarity index 100%
rename from app/components/user-profile-cohorts.js
rename to packages/frontend/app/components/user-profile-cohorts.js
diff --git a/app/components/user-profile-ics.hbs b/packages/frontend/app/components/user-profile-ics.hbs
similarity index 100%
rename from app/components/user-profile-ics.hbs
rename to packages/frontend/app/components/user-profile-ics.hbs
diff --git a/app/components/user-profile-ics.js b/packages/frontend/app/components/user-profile-ics.js
similarity index 100%
rename from app/components/user-profile-ics.js
rename to packages/frontend/app/components/user-profile-ics.js
diff --git a/app/components/user-profile-permissions.hbs b/packages/frontend/app/components/user-profile-permissions.hbs
similarity index 100%
rename from app/components/user-profile-permissions.hbs
rename to packages/frontend/app/components/user-profile-permissions.hbs
diff --git a/app/components/user-profile-permissions.js b/packages/frontend/app/components/user-profile-permissions.js
similarity index 100%
rename from app/components/user-profile-permissions.js
rename to packages/frontend/app/components/user-profile-permissions.js
diff --git a/app/components/user-profile-roles.hbs b/packages/frontend/app/components/user-profile-roles.hbs
similarity index 100%
rename from app/components/user-profile-roles.hbs
rename to packages/frontend/app/components/user-profile-roles.hbs
diff --git a/app/components/user-profile-roles.js b/packages/frontend/app/components/user-profile-roles.js
similarity index 100%
rename from app/components/user-profile-roles.js
rename to packages/frontend/app/components/user-profile-roles.js
diff --git a/app/components/user-profile.hbs b/packages/frontend/app/components/user-profile.hbs
similarity index 100%
rename from app/components/user-profile.hbs
rename to packages/frontend/app/components/user-profile.hbs
diff --git a/app/components/user-profile.js b/packages/frontend/app/components/user-profile.js
similarity index 100%
rename from app/components/user-profile.js
rename to packages/frontend/app/components/user-profile.js
diff --git a/app/components/user-profile/learner-group.hbs b/packages/frontend/app/components/user-profile/learner-group.hbs
similarity index 100%
rename from app/components/user-profile/learner-group.hbs
rename to packages/frontend/app/components/user-profile/learner-group.hbs
diff --git a/app/components/user-profile/learner-group.js b/packages/frontend/app/components/user-profile/learner-group.js
similarity index 100%
rename from app/components/user-profile/learner-group.js
rename to packages/frontend/app/components/user-profile/learner-group.js
diff --git a/app/components/user-profile/learner-groups.hbs b/packages/frontend/app/components/user-profile/learner-groups.hbs
similarity index 100%
rename from app/components/user-profile/learner-groups.hbs
rename to packages/frontend/app/components/user-profile/learner-groups.hbs
diff --git a/app/components/visualizer-program-year-objectives.hbs b/packages/frontend/app/components/visualizer-program-year-objectives.hbs
similarity index 100%
rename from app/components/visualizer-program-year-objectives.hbs
rename to packages/frontend/app/components/visualizer-program-year-objectives.hbs
diff --git a/app/components/visualizer-program-year-objectives.js b/packages/frontend/app/components/visualizer-program-year-objectives.js
similarity index 100%
rename from app/components/visualizer-program-year-objectives.js
rename to packages/frontend/app/components/visualizer-program-year-objectives.js
diff --git a/app/components/yes-no.hbs b/packages/frontend/app/components/yes-no.hbs
similarity index 100%
rename from app/components/yes-no.hbs
rename to packages/frontend/app/components/yes-no.hbs
diff --git a/app/controllers/admin-dashboard.js b/packages/frontend/app/controllers/admin-dashboard.js
similarity index 100%
rename from app/controllers/admin-dashboard.js
rename to packages/frontend/app/controllers/admin-dashboard.js
diff --git a/app/controllers/application.js b/packages/frontend/app/controllers/application.js
similarity index 100%
rename from app/controllers/application.js
rename to packages/frontend/app/controllers/application.js
diff --git a/app/controllers/assign-students.js b/packages/frontend/app/controllers/assign-students.js
similarity index 100%
rename from app/controllers/assign-students.js
rename to packages/frontend/app/controllers/assign-students.js
diff --git a/app/controllers/courses.js b/packages/frontend/app/controllers/courses.js
similarity index 100%
rename from app/controllers/courses.js
rename to packages/frontend/app/controllers/courses.js
diff --git a/app/controllers/curriculum-inventory-report/index.js b/packages/frontend/app/controllers/curriculum-inventory-report/index.js
similarity index 100%
rename from app/controllers/curriculum-inventory-report/index.js
rename to packages/frontend/app/controllers/curriculum-inventory-report/index.js
diff --git a/app/controllers/curriculum-inventory-report/rollover.js b/packages/frontend/app/controllers/curriculum-inventory-report/rollover.js
similarity index 100%
rename from app/controllers/curriculum-inventory-report/rollover.js
rename to packages/frontend/app/controllers/curriculum-inventory-report/rollover.js
diff --git a/app/controllers/curriculum-inventory-reports.js b/packages/frontend/app/controllers/curriculum-inventory-reports.js
similarity index 100%
rename from app/controllers/curriculum-inventory-reports.js
rename to packages/frontend/app/controllers/curriculum-inventory-reports.js
diff --git a/app/controllers/curriculum-inventory-sequence-block.js b/packages/frontend/app/controllers/curriculum-inventory-sequence-block.js
similarity index 100%
rename from app/controllers/curriculum-inventory-sequence-block.js
rename to packages/frontend/app/controllers/curriculum-inventory-sequence-block.js
diff --git a/app/controllers/dashboard/calendar.js b/packages/frontend/app/controllers/dashboard/calendar.js
similarity index 100%
rename from app/controllers/dashboard/calendar.js
rename to packages/frontend/app/controllers/dashboard/calendar.js
diff --git a/app/controllers/dashboard/materials.js b/packages/frontend/app/controllers/dashboard/materials.js
similarity index 100%
rename from app/controllers/dashboard/materials.js
rename to packages/frontend/app/controllers/dashboard/materials.js
diff --git a/app/controllers/error.js b/packages/frontend/app/controllers/error.js
similarity index 100%
rename from app/controllers/error.js
rename to packages/frontend/app/controllers/error.js
diff --git a/app/controllers/instructor-groups.js b/packages/frontend/app/controllers/instructor-groups.js
similarity index 100%
rename from app/controllers/instructor-groups.js
rename to packages/frontend/app/controllers/instructor-groups.js
diff --git a/app/controllers/learner-group.js b/packages/frontend/app/controllers/learner-group.js
similarity index 100%
rename from app/controllers/learner-group.js
rename to packages/frontend/app/controllers/learner-group.js
diff --git a/app/controllers/learner-groups.js b/packages/frontend/app/controllers/learner-groups.js
similarity index 100%
rename from app/controllers/learner-groups.js
rename to packages/frontend/app/controllers/learner-groups.js
diff --git a/app/controllers/myprofile.js b/packages/frontend/app/controllers/myprofile.js
similarity index 100%
rename from app/controllers/myprofile.js
rename to packages/frontend/app/controllers/myprofile.js
diff --git a/app/controllers/pending-user-updates.js b/packages/frontend/app/controllers/pending-user-updates.js
similarity index 100%
rename from app/controllers/pending-user-updates.js
rename to packages/frontend/app/controllers/pending-user-updates.js
diff --git a/app/controllers/program-year/index.js b/packages/frontend/app/controllers/program-year/index.js
similarity index 100%
rename from app/controllers/program-year/index.js
rename to packages/frontend/app/controllers/program-year/index.js
diff --git a/app/controllers/program.js b/packages/frontend/app/controllers/program.js
similarity index 100%
rename from app/controllers/program.js
rename to packages/frontend/app/controllers/program.js
diff --git a/app/controllers/reports.js b/packages/frontend/app/controllers/reports.js
similarity index 100%
rename from app/controllers/reports.js
rename to packages/frontend/app/controllers/reports.js
diff --git a/app/controllers/school.js b/packages/frontend/app/controllers/school.js
similarity index 100%
rename from app/controllers/school.js
rename to packages/frontend/app/controllers/school.js
diff --git a/app/controllers/search.js b/packages/frontend/app/controllers/search.js
similarity index 100%
rename from app/controllers/search.js
rename to packages/frontend/app/controllers/search.js
diff --git a/app/controllers/subject-report.js b/packages/frontend/app/controllers/subject-report.js
similarity index 100%
rename from app/controllers/subject-report.js
rename to packages/frontend/app/controllers/subject-report.js
diff --git a/app/controllers/user.js b/packages/frontend/app/controllers/user.js
similarity index 100%
rename from app/controllers/user.js
rename to packages/frontend/app/controllers/user.js
diff --git a/app/controllers/users.js b/packages/frontend/app/controllers/users.js
similarity index 100%
rename from app/controllers/users.js
rename to packages/frontend/app/controllers/users.js
diff --git a/app/helpers/.gitkeep b/packages/frontend/app/helpers/.gitkeep
similarity index 100%
rename from app/helpers/.gitkeep
rename to packages/frontend/app/helpers/.gitkeep
diff --git a/app/helpers/pcrs-uri-to-number.js b/packages/frontend/app/helpers/pcrs-uri-to-number.js
similarity index 100%
rename from app/helpers/pcrs-uri-to-number.js
rename to packages/frontend/app/helpers/pcrs-uri-to-number.js
diff --git a/app/index.html b/packages/frontend/app/index.html
similarity index 100%
rename from app/index.html
rename to packages/frontend/app/index.html
diff --git a/app/initializers/inflector.js b/packages/frontend/app/initializers/inflector.js
similarity index 100%
rename from app/initializers/inflector.js
rename to packages/frontend/app/initializers/inflector.js
diff --git a/app/initializers/metrics-imports.js b/packages/frontend/app/initializers/metrics-imports.js
similarity index 100%
rename from app/initializers/metrics-imports.js
rename to packages/frontend/app/initializers/metrics-imports.js
diff --git a/app/mixins/live-search-item.js b/packages/frontend/app/mixins/live-search-item.js
similarity index 100%
rename from app/mixins/live-search-item.js
rename to packages/frontend/app/mixins/live-search-item.js
diff --git a/app/models/.gitkeep b/packages/frontend/app/models/.gitkeep
similarity index 100%
rename from app/models/.gitkeep
rename to packages/frontend/app/models/.gitkeep
diff --git a/app/router.js b/packages/frontend/app/router.js
similarity index 100%
rename from app/router.js
rename to packages/frontend/app/router.js
diff --git a/app/routes/admin-dashboard.js b/packages/frontend/app/routes/admin-dashboard.js
similarity index 100%
rename from app/routes/admin-dashboard.js
rename to packages/frontend/app/routes/admin-dashboard.js
diff --git a/app/routes/application.js b/packages/frontend/app/routes/application.js
similarity index 100%
rename from app/routes/application.js
rename to packages/frontend/app/routes/application.js
diff --git a/app/routes/assign-students.js b/packages/frontend/app/routes/assign-students.js
similarity index 100%
rename from app/routes/assign-students.js
rename to packages/frontend/app/routes/assign-students.js
diff --git a/app/routes/courses.js b/packages/frontend/app/routes/courses.js
similarity index 100%
rename from app/routes/courses.js
rename to packages/frontend/app/routes/courses.js
diff --git a/app/routes/curriculum-inventory-report.js b/packages/frontend/app/routes/curriculum-inventory-report.js
similarity index 100%
rename from app/routes/curriculum-inventory-report.js
rename to packages/frontend/app/routes/curriculum-inventory-report.js
diff --git a/app/routes/curriculum-inventory-report/index.js b/packages/frontend/app/routes/curriculum-inventory-report/index.js
similarity index 100%
rename from app/routes/curriculum-inventory-report/index.js
rename to packages/frontend/app/routes/curriculum-inventory-report/index.js
diff --git a/app/routes/curriculum-inventory-report/rollover.js b/packages/frontend/app/routes/curriculum-inventory-report/rollover.js
similarity index 100%
rename from app/routes/curriculum-inventory-report/rollover.js
rename to packages/frontend/app/routes/curriculum-inventory-report/rollover.js
diff --git a/app/routes/curriculum-inventory-reports.js b/packages/frontend/app/routes/curriculum-inventory-reports.js
similarity index 100%
rename from app/routes/curriculum-inventory-reports.js
rename to packages/frontend/app/routes/curriculum-inventory-reports.js
diff --git a/app/routes/curriculum-inventory-sequence-block.js b/packages/frontend/app/routes/curriculum-inventory-sequence-block.js
similarity index 100%
rename from app/routes/curriculum-inventory-sequence-block.js
rename to packages/frontend/app/routes/curriculum-inventory-sequence-block.js
diff --git a/app/routes/dashboard.js b/packages/frontend/app/routes/dashboard.js
similarity index 100%
rename from app/routes/dashboard.js
rename to packages/frontend/app/routes/dashboard.js
diff --git a/app/routes/dashboard/activities.js b/packages/frontend/app/routes/dashboard/activities.js
similarity index 100%
rename from app/routes/dashboard/activities.js
rename to packages/frontend/app/routes/dashboard/activities.js
diff --git a/app/routes/dashboard/calendar.js b/packages/frontend/app/routes/dashboard/calendar.js
similarity index 100%
rename from app/routes/dashboard/calendar.js
rename to packages/frontend/app/routes/dashboard/calendar.js
diff --git a/app/routes/dashboard/index.js b/packages/frontend/app/routes/dashboard/index.js
similarity index 100%
rename from app/routes/dashboard/index.js
rename to packages/frontend/app/routes/dashboard/index.js
diff --git a/app/routes/dashboard/materials.js b/packages/frontend/app/routes/dashboard/materials.js
similarity index 100%
rename from app/routes/dashboard/materials.js
rename to packages/frontend/app/routes/dashboard/materials.js
diff --git a/app/routes/dashboard/week.js b/packages/frontend/app/routes/dashboard/week.js
similarity index 100%
rename from app/routes/dashboard/week.js
rename to packages/frontend/app/routes/dashboard/week.js
diff --git a/app/routes/index.js b/packages/frontend/app/routes/index.js
similarity index 100%
rename from app/routes/index.js
rename to packages/frontend/app/routes/index.js
diff --git a/app/routes/instructor-group.js b/packages/frontend/app/routes/instructor-group.js
similarity index 100%
rename from app/routes/instructor-group.js
rename to packages/frontend/app/routes/instructor-group.js
diff --git a/app/routes/instructor-groups.js b/packages/frontend/app/routes/instructor-groups.js
similarity index 100%
rename from app/routes/instructor-groups.js
rename to packages/frontend/app/routes/instructor-groups.js
diff --git a/app/routes/learner-group.js b/packages/frontend/app/routes/learner-group.js
similarity index 100%
rename from app/routes/learner-group.js
rename to packages/frontend/app/routes/learner-group.js
diff --git a/app/routes/learner-groups.js b/packages/frontend/app/routes/learner-groups.js
similarity index 100%
rename from app/routes/learner-groups.js
rename to packages/frontend/app/routes/learner-groups.js
diff --git a/app/routes/login.js b/packages/frontend/app/routes/login.js
similarity index 100%
rename from app/routes/login.js
rename to packages/frontend/app/routes/login.js
diff --git a/app/routes/logout.js b/packages/frontend/app/routes/logout.js
similarity index 100%
rename from app/routes/logout.js
rename to packages/frontend/app/routes/logout.js
diff --git a/app/routes/myprofile.js b/packages/frontend/app/routes/myprofile.js
similarity index 100%
rename from app/routes/myprofile.js
rename to packages/frontend/app/routes/myprofile.js
diff --git a/app/routes/pending-user-updates.js b/packages/frontend/app/routes/pending-user-updates.js
similarity index 100%
rename from app/routes/pending-user-updates.js
rename to packages/frontend/app/routes/pending-user-updates.js
diff --git a/app/routes/program-year-visualize-objectives.js b/packages/frontend/app/routes/program-year-visualize-objectives.js
similarity index 100%
rename from app/routes/program-year-visualize-objectives.js
rename to packages/frontend/app/routes/program-year-visualize-objectives.js
diff --git a/app/routes/program-year.js b/packages/frontend/app/routes/program-year.js
similarity index 100%
rename from app/routes/program-year.js
rename to packages/frontend/app/routes/program-year.js
diff --git a/app/routes/program-year/index.js b/packages/frontend/app/routes/program-year/index.js
similarity index 100%
rename from app/routes/program-year/index.js
rename to packages/frontend/app/routes/program-year/index.js
diff --git a/app/routes/program.js b/packages/frontend/app/routes/program.js
similarity index 100%
rename from app/routes/program.js
rename to packages/frontend/app/routes/program.js
diff --git a/app/routes/program/index.js b/packages/frontend/app/routes/program/index.js
similarity index 100%
rename from app/routes/program/index.js
rename to packages/frontend/app/routes/program/index.js
diff --git a/app/routes/program/publication-check.js b/packages/frontend/app/routes/program/publication-check.js
similarity index 100%
rename from app/routes/program/publication-check.js
rename to packages/frontend/app/routes/program/publication-check.js
diff --git a/app/routes/programs.js b/packages/frontend/app/routes/programs.js
similarity index 100%
rename from app/routes/programs.js
rename to packages/frontend/app/routes/programs.js
diff --git a/app/routes/reports.js b/packages/frontend/app/routes/reports.js
similarity index 100%
rename from app/routes/reports.js
rename to packages/frontend/app/routes/reports.js
diff --git a/app/routes/school.js b/packages/frontend/app/routes/school.js
similarity index 100%
rename from app/routes/school.js
rename to packages/frontend/app/routes/school.js
diff --git a/app/routes/schools.js b/packages/frontend/app/routes/schools.js
similarity index 100%
rename from app/routes/schools.js
rename to packages/frontend/app/routes/schools.js
diff --git a/app/routes/search.js b/packages/frontend/app/routes/search.js
similarity index 100%
rename from app/routes/search.js
rename to packages/frontend/app/routes/search.js
diff --git a/app/routes/session-type-visualize-vocabularies.js b/packages/frontend/app/routes/session-type-visualize-vocabularies.js
similarity index 100%
rename from app/routes/session-type-visualize-vocabularies.js
rename to packages/frontend/app/routes/session-type-visualize-vocabularies.js
diff --git a/app/routes/session-type-visualize-vocabulary.js b/packages/frontend/app/routes/session-type-visualize-vocabulary.js
similarity index 100%
rename from app/routes/session-type-visualize-vocabulary.js
rename to packages/frontend/app/routes/session-type-visualize-vocabulary.js
diff --git a/app/routes/subject-report.js b/packages/frontend/app/routes/subject-report.js
similarity index 100%
rename from app/routes/subject-report.js
rename to packages/frontend/app/routes/subject-report.js
diff --git a/app/routes/user.js b/packages/frontend/app/routes/user.js
similarity index 100%
rename from app/routes/user.js
rename to packages/frontend/app/routes/user.js
diff --git a/app/routes/users.js b/packages/frontend/app/routes/users.js
similarity index 100%
rename from app/routes/users.js
rename to packages/frontend/app/routes/users.js
diff --git a/app/routes/verification-preview.js b/packages/frontend/app/routes/verification-preview.js
similarity index 100%
rename from app/routes/verification-preview.js
rename to packages/frontend/app/routes/verification-preview.js
diff --git a/app/sentry.js b/packages/frontend/app/sentry.js
similarity index 100%
rename from app/sentry.js
rename to packages/frontend/app/sentry.js
diff --git a/app/services/data-loader.js b/packages/frontend/app/services/data-loader.js
similarity index 100%
rename from app/services/data-loader.js
rename to packages/frontend/app/services/data-loader.js
diff --git a/app/services/graphql.js b/packages/frontend/app/services/graphql.js
similarity index 100%
rename from app/services/graphql.js
rename to packages/frontend/app/services/graphql.js
diff --git a/app/services/ilios-metrics.js b/packages/frontend/app/services/ilios-metrics.js
similarity index 100%
rename from app/services/ilios-metrics.js
rename to packages/frontend/app/services/ilios-metrics.js
diff --git a/app/services/page-title.js b/packages/frontend/app/services/page-title.js
similarity index 100%
rename from app/services/page-title.js
rename to packages/frontend/app/services/page-title.js
diff --git a/app/services/reporting.js b/packages/frontend/app/services/reporting.js
similarity index 100%
rename from app/services/reporting.js
rename to packages/frontend/app/services/reporting.js
diff --git a/app/services/session.js b/packages/frontend/app/services/session.js
similarity index 100%
rename from app/services/session.js
rename to packages/frontend/app/services/session.js
diff --git a/app/session-stores/application.js b/packages/frontend/app/session-stores/application.js
similarity index 100%
rename from app/session-stores/application.js
rename to packages/frontend/app/session-stores/application.js
diff --git a/app/styles/app.scss b/packages/frontend/app/styles/app.scss
similarity index 100%
rename from app/styles/app.scss
rename to packages/frontend/app/styles/app.scss
diff --git a/app/styles/components.scss b/packages/frontend/app/styles/components.scss
similarity index 100%
rename from app/styles/components.scss
rename to packages/frontend/app/styles/components.scss
diff --git a/app/styles/components/admin-dashboard.scss b/packages/frontend/app/styles/components/admin-dashboard.scss
similarity index 100%
rename from app/styles/components/admin-dashboard.scss
rename to packages/frontend/app/styles/components/admin-dashboard.scss
diff --git a/app/styles/components/api-version-check.scss b/packages/frontend/app/styles/components/api-version-check.scss
similarity index 100%
rename from app/styles/components/api-version-check.scss
rename to packages/frontend/app/styles/components/api-version-check.scss
diff --git a/app/styles/components/assign-students.scss b/packages/frontend/app/styles/components/assign-students.scss
similarity index 100%
rename from app/styles/components/assign-students.scss
rename to packages/frontend/app/styles/components/assign-students.scss
diff --git a/app/styles/components/back-to-admin-dashboard.scss b/packages/frontend/app/styles/components/back-to-admin-dashboard.scss
similarity index 100%
rename from app/styles/components/back-to-admin-dashboard.scss
rename to packages/frontend/app/styles/components/back-to-admin-dashboard.scss
diff --git a/app/styles/components/bulk-new-users.scss b/packages/frontend/app/styles/components/bulk-new-users.scss
similarity index 100%
rename from app/styles/components/bulk-new-users.scss
rename to packages/frontend/app/styles/components/bulk-new-users.scss
diff --git a/app/styles/components/connection-status.scss b/packages/frontend/app/styles/components/connection-status.scss
similarity index 100%
rename from app/styles/components/connection-status.scss
rename to packages/frontend/app/styles/components/connection-status.scss
diff --git a/app/styles/components/course-director-manager.scss b/packages/frontend/app/styles/components/course-director-manager.scss
similarity index 100%
rename from app/styles/components/course-director-manager.scss
rename to packages/frontend/app/styles/components/course-director-manager.scss
diff --git a/app/styles/components/course-search-result.scss b/packages/frontend/app/styles/components/course-search-result.scss
similarity index 100%
rename from app/styles/components/course-search-result.scss
rename to packages/frontend/app/styles/components/course-search-result.scss
diff --git a/app/styles/components/courses/list-item.scss b/packages/frontend/app/styles/components/courses/list-item.scss
similarity index 100%
rename from app/styles/components/courses/list-item.scss
rename to packages/frontend/app/styles/components/courses/list-item.scss
diff --git a/app/styles/components/courses/list.scss b/packages/frontend/app/styles/components/courses/list.scss
similarity index 100%
rename from app/styles/components/courses/list.scss
rename to packages/frontend/app/styles/components/courses/list.scss
diff --git a/app/styles/components/courses/new.scss b/packages/frontend/app/styles/components/courses/new.scss
similarity index 100%
rename from app/styles/components/courses/new.scss
rename to packages/frontend/app/styles/components/courses/new.scss
diff --git a/app/styles/components/courses/root.scss b/packages/frontend/app/styles/components/courses/root.scss
similarity index 100%
rename from app/styles/components/courses/root.scss
rename to packages/frontend/app/styles/components/courses/root.scss
diff --git a/app/styles/components/curriculum-inventory/leadership-expanded.scss b/packages/frontend/app/styles/components/curriculum-inventory/leadership-expanded.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/leadership-expanded.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/leadership-expanded.scss
diff --git a/app/styles/components/curriculum-inventory/new-report.scss b/packages/frontend/app/styles/components/curriculum-inventory/new-report.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/new-report.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/new-report.scss
diff --git a/app/styles/components/curriculum-inventory/new-sequence-block.scss b/packages/frontend/app/styles/components/curriculum-inventory/new-sequence-block.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/new-sequence-block.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/new-sequence-block.scss
diff --git a/app/styles/components/curriculum-inventory/report-details.scss b/packages/frontend/app/styles/components/curriculum-inventory/report-details.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/report-details.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/report-details.scss
diff --git a/app/styles/components/curriculum-inventory/report-header.scss b/packages/frontend/app/styles/components/curriculum-inventory/report-header.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/report-header.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/report-header.scss
diff --git a/app/styles/components/curriculum-inventory/report-overview.scss b/packages/frontend/app/styles/components/curriculum-inventory/report-overview.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/report-overview.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/report-overview.scss
diff --git a/app/styles/components/curriculum-inventory/report-rollover.scss b/packages/frontend/app/styles/components/curriculum-inventory/report-rollover.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/report-rollover.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/report-rollover.scss
diff --git a/app/styles/components/curriculum-inventory/reports-list.scss b/packages/frontend/app/styles/components/curriculum-inventory/reports-list.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/reports-list.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/reports-list.scss
diff --git a/app/styles/components/curriculum-inventory/sequence-block-header.scss b/packages/frontend/app/styles/components/curriculum-inventory/sequence-block-header.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/sequence-block-header.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/sequence-block-header.scss
diff --git a/app/styles/components/curriculum-inventory/sequence-block-list.scss b/packages/frontend/app/styles/components/curriculum-inventory/sequence-block-list.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/sequence-block-list.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/sequence-block-list.scss
diff --git a/app/styles/components/curriculum-inventory/sequence-block-overview.scss b/packages/frontend/app/styles/components/curriculum-inventory/sequence-block-overview.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/sequence-block-overview.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/sequence-block-overview.scss
diff --git a/app/styles/components/curriculum-inventory/sequence-block-session-manager.scss b/packages/frontend/app/styles/components/curriculum-inventory/sequence-block-session-manager.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/sequence-block-session-manager.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/sequence-block-session-manager.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-header.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-header.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-header.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-header.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table1.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table1.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table1.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table1.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table2.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table2.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table2.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table2.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table3a.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table3a.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table3a.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table3a.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table3b.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table3b.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table3b.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table3b.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table4.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table4.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table4.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table4.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table5.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table5.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table5.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table5.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table6.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table6.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table6.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table6.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table7.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table7.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table7.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table7.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview-table8.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table8.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview-table8.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview-table8.scss
diff --git a/app/styles/components/curriculum-inventory/verification-preview.scss b/packages/frontend/app/styles/components/curriculum-inventory/verification-preview.scss
similarity index 100%
rename from app/styles/components/curriculum-inventory/verification-preview.scss
rename to packages/frontend/app/styles/components/curriculum-inventory/verification-preview.scss
diff --git a/app/styles/components/dashboard-loading.scss b/packages/frontend/app/styles/components/dashboard-loading.scss
similarity index 100%
rename from app/styles/components/dashboard-loading.scss
rename to packages/frontend/app/styles/components/dashboard-loading.scss
diff --git a/app/styles/components/error.scss b/packages/frontend/app/styles/components/error.scss
similarity index 100%
rename from app/styles/components/error.scss
rename to packages/frontend/app/styles/components/error.scss
diff --git a/app/styles/components/filter-tools.scss b/packages/frontend/app/styles/components/filter-tools.scss
similarity index 100%
rename from app/styles/components/filter-tools.scss
rename to packages/frontend/app/styles/components/filter-tools.scss
diff --git a/app/styles/components/flash-messages.scss b/packages/frontend/app/styles/components/flash-messages.scss
similarity index 100%
rename from app/styles/components/flash-messages.scss
rename to packages/frontend/app/styles/components/flash-messages.scss
diff --git a/app/styles/components/global-search-box.scss b/packages/frontend/app/styles/components/global-search-box.scss
similarity index 100%
rename from app/styles/components/global-search-box.scss
rename to packages/frontend/app/styles/components/global-search-box.scss
diff --git a/app/styles/components/global-search.scss b/packages/frontend/app/styles/components/global-search.scss
similarity index 100%
rename from app/styles/components/global-search.scss
rename to packages/frontend/app/styles/components/global-search.scss
diff --git a/app/styles/components/ilios-footer.scss b/packages/frontend/app/styles/components/ilios-footer.scss
similarity index 100%
rename from app/styles/components/ilios-footer.scss
rename to packages/frontend/app/styles/components/ilios-footer.scss
diff --git a/app/styles/components/ilios-header.scss b/packages/frontend/app/styles/components/ilios-header.scss
similarity index 100%
rename from app/styles/components/ilios-header.scss
rename to packages/frontend/app/styles/components/ilios-header.scss
diff --git a/app/styles/components/ilios-logo.scss b/packages/frontend/app/styles/components/ilios-logo.scss
similarity index 100%
rename from app/styles/components/ilios-logo.scss
rename to packages/frontend/app/styles/components/ilios-logo.scss
diff --git a/app/styles/components/ilios-navigation.scss b/packages/frontend/app/styles/components/ilios-navigation.scss
similarity index 100%
rename from app/styles/components/ilios-navigation.scss
rename to packages/frontend/app/styles/components/ilios-navigation.scss
diff --git a/app/styles/components/ilios-users.scss b/packages/frontend/app/styles/components/ilios-users.scss
similarity index 100%
rename from app/styles/components/ilios-users.scss
rename to packages/frontend/app/styles/components/ilios-users.scss
diff --git a/app/styles/components/instructor-group/courses.scss b/packages/frontend/app/styles/components/instructor-group/courses.scss
similarity index 100%
rename from app/styles/components/instructor-group/courses.scss
rename to packages/frontend/app/styles/components/instructor-group/courses.scss
diff --git a/app/styles/components/instructor-group/header.scss b/packages/frontend/app/styles/components/instructor-group/header.scss
similarity index 100%
rename from app/styles/components/instructor-group/header.scss
rename to packages/frontend/app/styles/components/instructor-group/header.scss
diff --git a/app/styles/components/instructor-group/instructor-manager.scss b/packages/frontend/app/styles/components/instructor-group/instructor-manager.scss
similarity index 100%
rename from app/styles/components/instructor-group/instructor-manager.scss
rename to packages/frontend/app/styles/components/instructor-group/instructor-manager.scss
diff --git a/app/styles/components/instructor-group/root.scss b/packages/frontend/app/styles/components/instructor-group/root.scss
similarity index 100%
rename from app/styles/components/instructor-group/root.scss
rename to packages/frontend/app/styles/components/instructor-group/root.scss
diff --git a/app/styles/components/instructor-group/users.scss b/packages/frontend/app/styles/components/instructor-group/users.scss
similarity index 100%
rename from app/styles/components/instructor-group/users.scss
rename to packages/frontend/app/styles/components/instructor-group/users.scss
diff --git a/app/styles/components/instructor-groups/loading.scss b/packages/frontend/app/styles/components/instructor-groups/loading.scss
similarity index 100%
rename from app/styles/components/instructor-groups/loading.scss
rename to packages/frontend/app/styles/components/instructor-groups/loading.scss
diff --git a/app/styles/components/instructor-groups/new.scss b/packages/frontend/app/styles/components/instructor-groups/new.scss
similarity index 100%
rename from app/styles/components/instructor-groups/new.scss
rename to packages/frontend/app/styles/components/instructor-groups/new.scss
diff --git a/app/styles/components/instructor-groups/root.scss b/packages/frontend/app/styles/components/instructor-groups/root.scss
similarity index 100%
rename from app/styles/components/instructor-groups/root.scss
rename to packages/frontend/app/styles/components/instructor-groups/root.scss
diff --git a/app/styles/components/learner-group/bulk-assignment.scss b/packages/frontend/app/styles/components/learner-group/bulk-assignment.scss
similarity index 100%
rename from app/styles/components/learner-group/bulk-assignment.scss
rename to packages/frontend/app/styles/components/learner-group/bulk-assignment.scss
diff --git a/app/styles/components/learner-group/calendar.scss b/packages/frontend/app/styles/components/learner-group/calendar.scss
similarity index 100%
rename from app/styles/components/learner-group/calendar.scss
rename to packages/frontend/app/styles/components/learner-group/calendar.scss
diff --git a/app/styles/components/learner-group/cohort-user-manager.scss b/packages/frontend/app/styles/components/learner-group/cohort-user-manager.scss
similarity index 100%
rename from app/styles/components/learner-group/cohort-user-manager.scss
rename to packages/frontend/app/styles/components/learner-group/cohort-user-manager.scss
diff --git a/app/styles/components/learner-group/header.scss b/packages/frontend/app/styles/components/learner-group/header.scss
similarity index 100%
rename from app/styles/components/learner-group/header.scss
rename to packages/frontend/app/styles/components/learner-group/header.scss
diff --git a/app/styles/components/learner-group/instructor-group-members-list.scss b/packages/frontend/app/styles/components/learner-group/instructor-group-members-list.scss
similarity index 100%
rename from app/styles/components/learner-group/instructor-group-members-list.scss
rename to packages/frontend/app/styles/components/learner-group/instructor-group-members-list.scss
diff --git a/app/styles/components/learner-group/instructor-manager.scss b/packages/frontend/app/styles/components/learner-group/instructor-manager.scss
similarity index 100%
rename from app/styles/components/learner-group/instructor-manager.scss
rename to packages/frontend/app/styles/components/learner-group/instructor-manager.scss
diff --git a/app/styles/components/learner-group/members.scss b/packages/frontend/app/styles/components/learner-group/members.scss
similarity index 100%
rename from app/styles/components/learner-group/members.scss
rename to packages/frontend/app/styles/components/learner-group/members.scss
diff --git a/app/styles/components/learner-group/new.scss b/packages/frontend/app/styles/components/learner-group/new.scss
similarity index 100%
rename from app/styles/components/learner-group/new.scss
rename to packages/frontend/app/styles/components/learner-group/new.scss
diff --git a/app/styles/components/learner-group/root.scss b/packages/frontend/app/styles/components/learner-group/root.scss
similarity index 100%
rename from app/styles/components/learner-group/root.scss
rename to packages/frontend/app/styles/components/learner-group/root.scss
diff --git a/app/styles/components/learner-group/user-manager.scss b/packages/frontend/app/styles/components/learner-group/user-manager.scss
similarity index 100%
rename from app/styles/components/learner-group/user-manager.scss
rename to packages/frontend/app/styles/components/learner-group/user-manager.scss
diff --git a/app/styles/components/learner-groups/root.scss b/packages/frontend/app/styles/components/learner-groups/root.scss
similarity index 100%
rename from app/styles/components/learner-groups/root.scss
rename to packages/frontend/app/styles/components/learner-groups/root.scss
diff --git a/app/styles/components/locale-chooser.scss b/packages/frontend/app/styles/components/locale-chooser.scss
similarity index 100%
rename from app/styles/components/locale-chooser.scss
rename to packages/frontend/app/styles/components/locale-chooser.scss
diff --git a/app/styles/components/login-form.scss b/packages/frontend/app/styles/components/login-form.scss
similarity index 100%
rename from app/styles/components/login-form.scss
rename to packages/frontend/app/styles/components/login-form.scss
diff --git a/app/styles/components/manage-users-summary.scss b/packages/frontend/app/styles/components/manage-users-summary.scss
similarity index 100%
rename from app/styles/components/manage-users-summary.scss
rename to packages/frontend/app/styles/components/manage-users-summary.scss
diff --git a/app/styles/components/my-profile.scss b/packages/frontend/app/styles/components/my-profile.scss
similarity index 100%
rename from app/styles/components/my-profile.scss
rename to packages/frontend/app/styles/components/my-profile.scss
diff --git a/app/styles/components/new-directory-user.scss b/packages/frontend/app/styles/components/new-directory-user.scss
similarity index 100%
rename from app/styles/components/new-directory-user.scss
rename to packages/frontend/app/styles/components/new-directory-user.scss
diff --git a/app/styles/components/new-user.scss b/packages/frontend/app/styles/components/new-user.scss
similarity index 100%
rename from app/styles/components/new-user.scss
rename to packages/frontend/app/styles/components/new-user.scss
diff --git a/app/styles/components/pagination-links.scss b/packages/frontend/app/styles/components/pagination-links.scss
similarity index 100%
rename from app/styles/components/pagination-links.scss
rename to packages/frontend/app/styles/components/pagination-links.scss
diff --git a/app/styles/components/pending-single-user-updates.scss b/packages/frontend/app/styles/components/pending-single-user-updates.scss
similarity index 100%
rename from app/styles/components/pending-single-user-updates.scss
rename to packages/frontend/app/styles/components/pending-single-user-updates.scss
diff --git a/app/styles/components/pending-user-updates.scss b/packages/frontend/app/styles/components/pending-user-updates.scss
similarity index 100%
rename from app/styles/components/pending-user-updates.scss
rename to packages/frontend/app/styles/components/pending-user-updates.scss
diff --git a/app/styles/components/program-leadership-expanded.scss b/packages/frontend/app/styles/components/program-leadership-expanded.scss
similarity index 100%
rename from app/styles/components/program-leadership-expanded.scss
rename to packages/frontend/app/styles/components/program-leadership-expanded.scss
diff --git a/app/styles/components/program-overview.scss b/packages/frontend/app/styles/components/program-overview.scss
similarity index 100%
rename from app/styles/components/program-overview.scss
rename to packages/frontend/app/styles/components/program-overview.scss
diff --git a/app/styles/components/program-publication-check.scss b/packages/frontend/app/styles/components/program-publication-check.scss
similarity index 100%
rename from app/styles/components/program-publication-check.scss
rename to packages/frontend/app/styles/components/program-publication-check.scss
diff --git a/app/styles/components/program-year/collapsed-objectives.scss b/packages/frontend/app/styles/components/program-year/collapsed-objectives.scss
similarity index 100%
rename from app/styles/components/program-year/collapsed-objectives.scss
rename to packages/frontend/app/styles/components/program-year/collapsed-objectives.scss
diff --git a/app/styles/components/program-year/competencies.scss b/packages/frontend/app/styles/components/program-year/competencies.scss
similarity index 100%
rename from app/styles/components/program-year/competencies.scss
rename to packages/frontend/app/styles/components/program-year/competencies.scss
diff --git a/app/styles/components/program-year/courses.scss b/packages/frontend/app/styles/components/program-year/courses.scss
similarity index 100%
rename from app/styles/components/program-year/courses.scss
rename to packages/frontend/app/styles/components/program-year/courses.scss
diff --git a/app/styles/components/program-year/leadership-expanded.scss b/packages/frontend/app/styles/components/program-year/leadership-expanded.scss
similarity index 100%
rename from app/styles/components/program-year/leadership-expanded.scss
rename to packages/frontend/app/styles/components/program-year/leadership-expanded.scss
diff --git a/app/styles/components/program-year/list.scss b/packages/frontend/app/styles/components/program-year/list.scss
similarity index 100%
rename from app/styles/components/program-year/list.scss
rename to packages/frontend/app/styles/components/program-year/list.scss
diff --git a/app/styles/components/program-year/manage-objective-competency.scss b/packages/frontend/app/styles/components/program-year/manage-objective-competency.scss
similarity index 100%
rename from app/styles/components/program-year/manage-objective-competency.scss
rename to packages/frontend/app/styles/components/program-year/manage-objective-competency.scss
diff --git a/app/styles/components/program-year/manage-objective-descriptors.scss b/packages/frontend/app/styles/components/program-year/manage-objective-descriptors.scss
similarity index 100%
rename from app/styles/components/program-year/manage-objective-descriptors.scss
rename to packages/frontend/app/styles/components/program-year/manage-objective-descriptors.scss
diff --git a/app/styles/components/program-year/new.scss b/packages/frontend/app/styles/components/program-year/new.scss
similarity index 100%
rename from app/styles/components/program-year/new.scss
rename to packages/frontend/app/styles/components/program-year/new.scss
diff --git a/app/styles/components/program-year/objective-list-item-competency.scss b/packages/frontend/app/styles/components/program-year/objective-list-item-competency.scss
similarity index 100%
rename from app/styles/components/program-year/objective-list-item-competency.scss
rename to packages/frontend/app/styles/components/program-year/objective-list-item-competency.scss
diff --git a/app/styles/components/program-year/objective-list-item-descriptors.scss b/packages/frontend/app/styles/components/program-year/objective-list-item-descriptors.scss
similarity index 100%
rename from app/styles/components/program-year/objective-list-item-descriptors.scss
rename to packages/frontend/app/styles/components/program-year/objective-list-item-descriptors.scss
diff --git a/app/styles/components/program-year/objective-list-item-expanded.scss b/packages/frontend/app/styles/components/program-year/objective-list-item-expanded.scss
similarity index 100%
rename from app/styles/components/program-year/objective-list-item-expanded.scss
rename to packages/frontend/app/styles/components/program-year/objective-list-item-expanded.scss
diff --git a/app/styles/components/program-year/objective-list.scss b/packages/frontend/app/styles/components/program-year/objective-list.scss
similarity index 100%
rename from app/styles/components/program-year/objective-list.scss
rename to packages/frontend/app/styles/components/program-year/objective-list.scss
diff --git a/app/styles/components/program-year/objectives.scss b/packages/frontend/app/styles/components/program-year/objectives.scss
similarity index 100%
rename from app/styles/components/program-year/objectives.scss
rename to packages/frontend/app/styles/components/program-year/objectives.scss
diff --git a/app/styles/components/program-year/visualize-objectives.scss b/packages/frontend/app/styles/components/program-year/visualize-objectives.scss
similarity index 100%
rename from app/styles/components/program-year/visualize-objectives.scss
rename to packages/frontend/app/styles/components/program-year/visualize-objectives.scss
diff --git a/app/styles/components/program/header.scss b/packages/frontend/app/styles/components/program/header.scss
similarity index 100%
rename from app/styles/components/program/header.scss
rename to packages/frontend/app/styles/components/program/header.scss
diff --git a/app/styles/components/program/new.scss b/packages/frontend/app/styles/components/program/new.scss
similarity index 100%
rename from app/styles/components/program/new.scss
rename to packages/frontend/app/styles/components/program/new.scss
diff --git a/app/styles/components/program/root.scss b/packages/frontend/app/styles/components/program/root.scss
similarity index 100%
rename from app/styles/components/program/root.scss
rename to packages/frontend/app/styles/components/program/root.scss
diff --git a/app/styles/components/programs/list-item.scss b/packages/frontend/app/styles/components/programs/list-item.scss
similarity index 100%
rename from app/styles/components/programs/list-item.scss
rename to packages/frontend/app/styles/components/programs/list-item.scss
diff --git a/app/styles/components/programs/list.scss b/packages/frontend/app/styles/components/programs/list.scss
similarity index 100%
rename from app/styles/components/programs/list.scss
rename to packages/frontend/app/styles/components/programs/list.scss
diff --git a/app/styles/components/programs/root.scss b/packages/frontend/app/styles/components/programs/root.scss
similarity index 100%
rename from app/styles/components/programs/root.scss
rename to packages/frontend/app/styles/components/programs/root.scss
diff --git a/app/styles/components/programyear-details.scss b/packages/frontend/app/styles/components/programyear-details.scss
similarity index 100%
rename from app/styles/components/programyear-details.scss
rename to packages/frontend/app/styles/components/programyear-details.scss
diff --git a/app/styles/components/programyear-header.scss b/packages/frontend/app/styles/components/programyear-header.scss
similarity index 100%
rename from app/styles/components/programyear-header.scss
rename to packages/frontend/app/styles/components/programyear-header.scss
diff --git a/app/styles/components/programyear-overview.scss b/packages/frontend/app/styles/components/programyear-overview.scss
similarity index 100%
rename from app/styles/components/programyear-overview.scss
rename to packages/frontend/app/styles/components/programyear-overview.scss
diff --git a/app/styles/components/reports/list-loading.scss b/packages/frontend/app/styles/components/reports/list-loading.scss
similarity index 100%
rename from app/styles/components/reports/list-loading.scss
rename to packages/frontend/app/styles/components/reports/list-loading.scss
diff --git a/app/styles/components/reports/new-subject.scss b/packages/frontend/app/styles/components/reports/new-subject.scss
similarity index 100%
rename from app/styles/components/reports/new-subject.scss
rename to packages/frontend/app/styles/components/reports/new-subject.scss
diff --git a/app/styles/components/reports/root.scss b/packages/frontend/app/styles/components/reports/root.scss
similarity index 100%
rename from app/styles/components/reports/root.scss
rename to packages/frontend/app/styles/components/reports/root.scss
diff --git a/app/styles/components/reports/subject.scss b/packages/frontend/app/styles/components/reports/subject.scss
similarity index 100%
rename from app/styles/components/reports/subject.scss
rename to packages/frontend/app/styles/components/reports/subject.scss
diff --git a/app/styles/components/reports/subjects.scss b/packages/frontend/app/styles/components/reports/subjects.scss
similarity index 100%
rename from app/styles/components/reports/subjects.scss
rename to packages/frontend/app/styles/components/reports/subjects.scss
diff --git a/app/styles/components/school-competencies-collapsed.scss b/packages/frontend/app/styles/components/school-competencies-collapsed.scss
similarity index 100%
rename from app/styles/components/school-competencies-collapsed.scss
rename to packages/frontend/app/styles/components/school-competencies-collapsed.scss
diff --git a/app/styles/components/school-competencies-expanded.scss b/packages/frontend/app/styles/components/school-competencies-expanded.scss
similarity index 100%
rename from app/styles/components/school-competencies-expanded.scss
rename to packages/frontend/app/styles/components/school-competencies-expanded.scss
diff --git a/app/styles/components/school-competencies-list.scss b/packages/frontend/app/styles/components/school-competencies-list.scss
similarity index 100%
rename from app/styles/components/school-competencies-list.scss
rename to packages/frontend/app/styles/components/school-competencies-list.scss
diff --git a/app/styles/components/school-competencies-manager.scss b/packages/frontend/app/styles/components/school-competencies-manager.scss
similarity index 100%
rename from app/styles/components/school-competencies-manager.scss
rename to packages/frontend/app/styles/components/school-competencies-manager.scss
diff --git a/app/styles/components/school-competencies-pcrs-mapper.scss b/packages/frontend/app/styles/components/school-competencies-pcrs-mapper.scss
similarity index 100%
rename from app/styles/components/school-competencies-pcrs-mapper.scss
rename to packages/frontend/app/styles/components/school-competencies-pcrs-mapper.scss
diff --git a/app/styles/components/school-curriculum-inventory-institution-details.scss b/packages/frontend/app/styles/components/school-curriculum-inventory-institution-details.scss
similarity index 100%
rename from app/styles/components/school-curriculum-inventory-institution-details.scss
rename to packages/frontend/app/styles/components/school-curriculum-inventory-institution-details.scss
diff --git a/app/styles/components/school-curriculum-inventory-institution-manager.scss b/packages/frontend/app/styles/components/school-curriculum-inventory-institution-manager.scss
similarity index 100%
rename from app/styles/components/school-curriculum-inventory-institution-manager.scss
rename to packages/frontend/app/styles/components/school-curriculum-inventory-institution-manager.scss
diff --git a/app/styles/components/school-leadership-expanded.scss b/packages/frontend/app/styles/components/school-leadership-expanded.scss
similarity index 100%
rename from app/styles/components/school-leadership-expanded.scss
rename to packages/frontend/app/styles/components/school-leadership-expanded.scss
diff --git a/app/styles/components/school-list.scss b/packages/frontend/app/styles/components/school-list.scss
similarity index 100%
rename from app/styles/components/school-list.scss
rename to packages/frontend/app/styles/components/school-list.scss
diff --git a/app/styles/components/school-manager.scss b/packages/frontend/app/styles/components/school-manager.scss
similarity index 100%
rename from app/styles/components/school-manager.scss
rename to packages/frontend/app/styles/components/school-manager.scss
diff --git a/app/styles/components/school-new-vocabulary-form.scss b/packages/frontend/app/styles/components/school-new-vocabulary-form.scss
similarity index 100%
rename from app/styles/components/school-new-vocabulary-form.scss
rename to packages/frontend/app/styles/components/school-new-vocabulary-form.scss
diff --git a/app/styles/components/school-session-attributes-collapsed.scss b/packages/frontend/app/styles/components/school-session-attributes-collapsed.scss
similarity index 100%
rename from app/styles/components/school-session-attributes-collapsed.scss
rename to packages/frontend/app/styles/components/school-session-attributes-collapsed.scss
diff --git a/app/styles/components/school-session-attributes-expanded.scss b/packages/frontend/app/styles/components/school-session-attributes-expanded.scss
similarity index 100%
rename from app/styles/components/school-session-attributes-expanded.scss
rename to packages/frontend/app/styles/components/school-session-attributes-expanded.scss
diff --git a/app/styles/components/school-session-type-form.scss b/packages/frontend/app/styles/components/school-session-type-form.scss
similarity index 100%
rename from app/styles/components/school-session-type-form.scss
rename to packages/frontend/app/styles/components/school-session-type-form.scss
diff --git a/app/styles/components/school-session-type-manager.scss b/packages/frontend/app/styles/components/school-session-type-manager.scss
similarity index 100%
rename from app/styles/components/school-session-type-manager.scss
rename to packages/frontend/app/styles/components/school-session-type-manager.scss
diff --git a/app/styles/components/school-session-types-collapsed.scss b/packages/frontend/app/styles/components/school-session-types-collapsed.scss
similarity index 100%
rename from app/styles/components/school-session-types-collapsed.scss
rename to packages/frontend/app/styles/components/school-session-types-collapsed.scss
diff --git a/app/styles/components/school-session-types-expanded.scss b/packages/frontend/app/styles/components/school-session-types-expanded.scss
similarity index 100%
rename from app/styles/components/school-session-types-expanded.scss
rename to packages/frontend/app/styles/components/school-session-types-expanded.scss
diff --git a/app/styles/components/school-session-types-list-item.scss b/packages/frontend/app/styles/components/school-session-types-list-item.scss
similarity index 100%
rename from app/styles/components/school-session-types-list-item.scss
rename to packages/frontend/app/styles/components/school-session-types-list-item.scss
diff --git a/app/styles/components/school-session-types-list.scss b/packages/frontend/app/styles/components/school-session-types-list.scss
similarity index 100%
rename from app/styles/components/school-session-types-list.scss
rename to packages/frontend/app/styles/components/school-session-types-list.scss
diff --git a/app/styles/components/school-vocabularies-collapsed.scss b/packages/frontend/app/styles/components/school-vocabularies-collapsed.scss
similarity index 100%
rename from app/styles/components/school-vocabularies-collapsed.scss
rename to packages/frontend/app/styles/components/school-vocabularies-collapsed.scss
diff --git a/app/styles/components/school-vocabularies-expanded.scss b/packages/frontend/app/styles/components/school-vocabularies-expanded.scss
similarity index 100%
rename from app/styles/components/school-vocabularies-expanded.scss
rename to packages/frontend/app/styles/components/school-vocabularies-expanded.scss
diff --git a/app/styles/components/school-vocabularies-list.scss b/packages/frontend/app/styles/components/school-vocabularies-list.scss
similarity index 100%
rename from app/styles/components/school-vocabularies-list.scss
rename to packages/frontend/app/styles/components/school-vocabularies-list.scss
diff --git a/app/styles/components/school-vocabulary-manager.scss b/packages/frontend/app/styles/components/school-vocabulary-manager.scss
similarity index 100%
rename from app/styles/components/school-vocabulary-manager.scss
rename to packages/frontend/app/styles/components/school-vocabulary-manager.scss
diff --git a/app/styles/components/school-vocabulary-new-term.scss b/packages/frontend/app/styles/components/school-vocabulary-new-term.scss
similarity index 100%
rename from app/styles/components/school-vocabulary-new-term.scss
rename to packages/frontend/app/styles/components/school-vocabulary-new-term.scss
diff --git a/app/styles/components/school-vocabulary-term-manager.scss b/packages/frontend/app/styles/components/school-vocabulary-term-manager.scss
similarity index 100%
rename from app/styles/components/school-vocabulary-term-manager.scss
rename to packages/frontend/app/styles/components/school-vocabulary-term-manager.scss
diff --git a/app/styles/components/school/session-type-visualize-vocabularies.scss b/packages/frontend/app/styles/components/school/session-type-visualize-vocabularies.scss
similarity index 100%
rename from app/styles/components/school/session-type-visualize-vocabularies.scss
rename to packages/frontend/app/styles/components/school/session-type-visualize-vocabularies.scss
diff --git a/app/styles/components/school/session-type-visualize-vocabulary.scss b/packages/frontend/app/styles/components/school/session-type-visualize-vocabulary.scss
similarity index 100%
rename from app/styles/components/school/session-type-visualize-vocabulary.scss
rename to packages/frontend/app/styles/components/school/session-type-visualize-vocabulary.scss
diff --git a/app/styles/components/school/visualizer-session-type-vocabularies.scss b/packages/frontend/app/styles/components/school/visualizer-session-type-vocabularies.scss
similarity index 100%
rename from app/styles/components/school/visualizer-session-type-vocabularies.scss
rename to packages/frontend/app/styles/components/school/visualizer-session-type-vocabularies.scss
diff --git a/app/styles/components/school/visualizer-session-type-vocabulary.scss b/packages/frontend/app/styles/components/school/visualizer-session-type-vocabulary.scss
similarity index 100%
rename from app/styles/components/school/visualizer-session-type-vocabulary.scss
rename to packages/frontend/app/styles/components/school/visualizer-session-type-vocabulary.scss
diff --git a/app/styles/components/simple-chart-tooltip.scss b/packages/frontend/app/styles/components/simple-chart-tooltip.scss
similarity index 100%
rename from app/styles/components/simple-chart-tooltip.scss
rename to packages/frontend/app/styles/components/simple-chart-tooltip.scss
diff --git a/app/styles/components/unassigned-students-summary.scss b/packages/frontend/app/styles/components/unassigned-students-summary.scss
similarity index 100%
rename from app/styles/components/unassigned-students-summary.scss
rename to packages/frontend/app/styles/components/unassigned-students-summary.scss
diff --git a/app/styles/components/update-notification.scss b/packages/frontend/app/styles/components/update-notification.scss
similarity index 100%
rename from app/styles/components/update-notification.scss
rename to packages/frontend/app/styles/components/update-notification.scss
diff --git a/app/styles/components/user-menu.scss b/packages/frontend/app/styles/components/user-menu.scss
similarity index 100%
rename from app/styles/components/user-menu.scss
rename to packages/frontend/app/styles/components/user-menu.scss
diff --git a/app/styles/components/user-profile-bio.scss b/packages/frontend/app/styles/components/user-profile-bio.scss
similarity index 100%
rename from app/styles/components/user-profile-bio.scss
rename to packages/frontend/app/styles/components/user-profile-bio.scss
diff --git a/app/styles/components/user-profile-calendar.scss b/packages/frontend/app/styles/components/user-profile-calendar.scss
similarity index 100%
rename from app/styles/components/user-profile-calendar.scss
rename to packages/frontend/app/styles/components/user-profile-calendar.scss
diff --git a/app/styles/components/user-profile-cohorts.scss b/packages/frontend/app/styles/components/user-profile-cohorts.scss
similarity index 100%
rename from app/styles/components/user-profile-cohorts.scss
rename to packages/frontend/app/styles/components/user-profile-cohorts.scss
diff --git a/app/styles/components/user-profile-loading.scss b/packages/frontend/app/styles/components/user-profile-loading.scss
similarity index 100%
rename from app/styles/components/user-profile-loading.scss
rename to packages/frontend/app/styles/components/user-profile-loading.scss
diff --git a/app/styles/components/user-profile-permissions.scss b/packages/frontend/app/styles/components/user-profile-permissions.scss
similarity index 100%
rename from app/styles/components/user-profile-permissions.scss
rename to packages/frontend/app/styles/components/user-profile-permissions.scss
diff --git a/app/styles/components/user-profile-roles.scss b/packages/frontend/app/styles/components/user-profile-roles.scss
similarity index 100%
rename from app/styles/components/user-profile-roles.scss
rename to packages/frontend/app/styles/components/user-profile-roles.scss
diff --git a/app/styles/components/user-profile-schools.scss b/packages/frontend/app/styles/components/user-profile-schools.scss
similarity index 100%
rename from app/styles/components/user-profile-schools.scss
rename to packages/frontend/app/styles/components/user-profile-schools.scss
diff --git a/app/styles/components/user-profile.scss b/packages/frontend/app/styles/components/user-profile.scss
similarity index 100%
rename from app/styles/components/user-profile.scss
rename to packages/frontend/app/styles/components/user-profile.scss
diff --git a/app/styles/components/visualizer-program-year-objectives.scss b/packages/frontend/app/styles/components/visualizer-program-year-objectives.scss
similarity index 100%
rename from app/styles/components/visualizer-program-year-objectives.scss
rename to packages/frontend/app/styles/components/visualizer-program-year-objectives.scss
diff --git a/app/styles/components/weekly-events.scss b/packages/frontend/app/styles/components/weekly-events.scss
similarity index 100%
rename from app/styles/components/weekly-events.scss
rename to packages/frontend/app/styles/components/weekly-events.scss
diff --git a/app/styles/layout/_layout.scss b/packages/frontend/app/styles/layout/_layout.scss
similarity index 100%
rename from app/styles/layout/_layout.scss
rename to packages/frontend/app/styles/layout/_layout.scss
diff --git a/app/styles/layout/_noscript.scss b/packages/frontend/app/styles/layout/_noscript.scss
similarity index 100%
rename from app/styles/layout/_noscript.scss
rename to packages/frontend/app/styles/layout/_noscript.scss
diff --git a/app/styles/mixins.scss b/packages/frontend/app/styles/mixins.scss
similarity index 100%
rename from app/styles/mixins.scss
rename to packages/frontend/app/styles/mixins.scss
diff --git a/app/styles/mixins/admin-blocks.scss b/packages/frontend/app/styles/mixins/admin-blocks.scss
similarity index 100%
rename from app/styles/mixins/admin-blocks.scss
rename to packages/frontend/app/styles/mixins/admin-blocks.scss
diff --git a/app/styles/mixins/clearfix.scss b/packages/frontend/app/styles/mixins/clearfix.scss
similarity index 100%
rename from app/styles/mixins/clearfix.scss
rename to packages/frontend/app/styles/mixins/clearfix.scss
diff --git a/app/styles/mixins/header-menu.scss b/packages/frontend/app/styles/mixins/header-menu.scss
similarity index 100%
rename from app/styles/mixins/header-menu.scss
rename to packages/frontend/app/styles/mixins/header-menu.scss
diff --git a/app/styles/mixins/main-list.scss b/packages/frontend/app/styles/mixins/main-list.scss
similarity index 100%
rename from app/styles/mixins/main-list.scss
rename to packages/frontend/app/styles/mixins/main-list.scss
diff --git a/app/styles/mixins/verification-preview-table.scss b/packages/frontend/app/styles/mixins/verification-preview-table.scss
similarity index 100%
rename from app/styles/mixins/verification-preview-table.scss
rename to packages/frontend/app/styles/mixins/verification-preview-table.scss
diff --git a/app/templates/admin-dashboard.hbs b/packages/frontend/app/templates/admin-dashboard.hbs
similarity index 100%
rename from app/templates/admin-dashboard.hbs
rename to packages/frontend/app/templates/admin-dashboard.hbs
diff --git a/app/templates/application.hbs b/packages/frontend/app/templates/application.hbs
similarity index 100%
rename from app/templates/application.hbs
rename to packages/frontend/app/templates/application.hbs
diff --git a/app/templates/assign-students.hbs b/packages/frontend/app/templates/assign-students.hbs
similarity index 100%
rename from app/templates/assign-students.hbs
rename to packages/frontend/app/templates/assign-students.hbs
diff --git a/app/templates/courses.hbs b/packages/frontend/app/templates/courses.hbs
similarity index 100%
rename from app/templates/courses.hbs
rename to packages/frontend/app/templates/courses.hbs
diff --git a/app/templates/curriculum-inventory-report.hbs b/packages/frontend/app/templates/curriculum-inventory-report.hbs
similarity index 100%
rename from app/templates/curriculum-inventory-report.hbs
rename to packages/frontend/app/templates/curriculum-inventory-report.hbs
diff --git a/app/templates/curriculum-inventory-report/index.hbs b/packages/frontend/app/templates/curriculum-inventory-report/index.hbs
similarity index 100%
rename from app/templates/curriculum-inventory-report/index.hbs
rename to packages/frontend/app/templates/curriculum-inventory-report/index.hbs
diff --git a/app/templates/curriculum-inventory-report/rollover.hbs b/packages/frontend/app/templates/curriculum-inventory-report/rollover.hbs
similarity index 100%
rename from app/templates/curriculum-inventory-report/rollover.hbs
rename to packages/frontend/app/templates/curriculum-inventory-report/rollover.hbs
diff --git a/app/templates/curriculum-inventory-reports.hbs b/packages/frontend/app/templates/curriculum-inventory-reports.hbs
similarity index 100%
rename from app/templates/curriculum-inventory-reports.hbs
rename to packages/frontend/app/templates/curriculum-inventory-reports.hbs
diff --git a/app/templates/curriculum-inventory-sequence-block.hbs b/packages/frontend/app/templates/curriculum-inventory-sequence-block.hbs
similarity index 100%
rename from app/templates/curriculum-inventory-sequence-block.hbs
rename to packages/frontend/app/templates/curriculum-inventory-sequence-block.hbs
diff --git a/app/templates/dashboard-loading.hbs b/packages/frontend/app/templates/dashboard-loading.hbs
similarity index 100%
rename from app/templates/dashboard-loading.hbs
rename to packages/frontend/app/templates/dashboard-loading.hbs
diff --git a/app/templates/dashboard.hbs b/packages/frontend/app/templates/dashboard.hbs
similarity index 100%
rename from app/templates/dashboard.hbs
rename to packages/frontend/app/templates/dashboard.hbs
diff --git a/app/templates/error.hbs b/packages/frontend/app/templates/error.hbs
similarity index 100%
rename from app/templates/error.hbs
rename to packages/frontend/app/templates/error.hbs
diff --git a/app/templates/four-oh-four.hbs b/packages/frontend/app/templates/four-oh-four.hbs
similarity index 100%
rename from app/templates/four-oh-four.hbs
rename to packages/frontend/app/templates/four-oh-four.hbs
diff --git a/app/templates/instructor-group.hbs b/packages/frontend/app/templates/instructor-group.hbs
similarity index 100%
rename from app/templates/instructor-group.hbs
rename to packages/frontend/app/templates/instructor-group.hbs
diff --git a/app/templates/instructor-groups.hbs b/packages/frontend/app/templates/instructor-groups.hbs
similarity index 100%
rename from app/templates/instructor-groups.hbs
rename to packages/frontend/app/templates/instructor-groups.hbs
diff --git a/app/templates/learner-group.hbs b/packages/frontend/app/templates/learner-group.hbs
similarity index 100%
rename from app/templates/learner-group.hbs
rename to packages/frontend/app/templates/learner-group.hbs
diff --git a/app/templates/learner-groups.hbs b/packages/frontend/app/templates/learner-groups.hbs
similarity index 100%
rename from app/templates/learner-groups.hbs
rename to packages/frontend/app/templates/learner-groups.hbs
diff --git a/app/templates/login.hbs b/packages/frontend/app/templates/login.hbs
similarity index 100%
rename from app/templates/login.hbs
rename to packages/frontend/app/templates/login.hbs
diff --git a/app/templates/logout.hbs b/packages/frontend/app/templates/logout.hbs
similarity index 100%
rename from app/templates/logout.hbs
rename to packages/frontend/app/templates/logout.hbs
diff --git a/app/templates/myprofile.hbs b/packages/frontend/app/templates/myprofile.hbs
similarity index 100%
rename from app/templates/myprofile.hbs
rename to packages/frontend/app/templates/myprofile.hbs
diff --git a/app/templates/pending-user-updates.hbs b/packages/frontend/app/templates/pending-user-updates.hbs
similarity index 100%
rename from app/templates/pending-user-updates.hbs
rename to packages/frontend/app/templates/pending-user-updates.hbs
diff --git a/app/templates/program-year-visualize-objectives.hbs b/packages/frontend/app/templates/program-year-visualize-objectives.hbs
similarity index 100%
rename from app/templates/program-year-visualize-objectives.hbs
rename to packages/frontend/app/templates/program-year-visualize-objectives.hbs
diff --git a/app/templates/program-year.hbs b/packages/frontend/app/templates/program-year.hbs
similarity index 100%
rename from app/templates/program-year.hbs
rename to packages/frontend/app/templates/program-year.hbs
diff --git a/app/templates/program-year/index.hbs b/packages/frontend/app/templates/program-year/index.hbs
similarity index 100%
rename from app/templates/program-year/index.hbs
rename to packages/frontend/app/templates/program-year/index.hbs
diff --git a/app/templates/program.hbs b/packages/frontend/app/templates/program.hbs
similarity index 100%
rename from app/templates/program.hbs
rename to packages/frontend/app/templates/program.hbs
diff --git a/app/templates/program/index.hbs b/packages/frontend/app/templates/program/index.hbs
similarity index 100%
rename from app/templates/program/index.hbs
rename to packages/frontend/app/templates/program/index.hbs
diff --git a/app/templates/program/publication-check.hbs b/packages/frontend/app/templates/program/publication-check.hbs
similarity index 100%
rename from app/templates/program/publication-check.hbs
rename to packages/frontend/app/templates/program/publication-check.hbs
diff --git a/app/templates/programs.hbs b/packages/frontend/app/templates/programs.hbs
similarity index 100%
rename from app/templates/programs.hbs
rename to packages/frontend/app/templates/programs.hbs
diff --git a/app/templates/reports.hbs b/packages/frontend/app/templates/reports.hbs
similarity index 100%
rename from app/templates/reports.hbs
rename to packages/frontend/app/templates/reports.hbs
diff --git a/app/templates/school.hbs b/packages/frontend/app/templates/school.hbs
similarity index 100%
rename from app/templates/school.hbs
rename to packages/frontend/app/templates/school.hbs
diff --git a/app/templates/schools.hbs b/packages/frontend/app/templates/schools.hbs
similarity index 100%
rename from app/templates/schools.hbs
rename to packages/frontend/app/templates/schools.hbs
diff --git a/app/templates/search.hbs b/packages/frontend/app/templates/search.hbs
similarity index 100%
rename from app/templates/search.hbs
rename to packages/frontend/app/templates/search.hbs
diff --git a/app/templates/session-type-visualize-vocabularies.hbs b/packages/frontend/app/templates/session-type-visualize-vocabularies.hbs
similarity index 100%
rename from app/templates/session-type-visualize-vocabularies.hbs
rename to packages/frontend/app/templates/session-type-visualize-vocabularies.hbs
diff --git a/app/templates/session-type-visualize-vocabulary.hbs b/packages/frontend/app/templates/session-type-visualize-vocabulary.hbs
similarity index 100%
rename from app/templates/session-type-visualize-vocabulary.hbs
rename to packages/frontend/app/templates/session-type-visualize-vocabulary.hbs
diff --git a/app/templates/subject-report.hbs b/packages/frontend/app/templates/subject-report.hbs
similarity index 100%
rename from app/templates/subject-report.hbs
rename to packages/frontend/app/templates/subject-report.hbs
diff --git a/app/templates/user.hbs b/packages/frontend/app/templates/user.hbs
similarity index 100%
rename from app/templates/user.hbs
rename to packages/frontend/app/templates/user.hbs
diff --git a/app/templates/users.hbs b/packages/frontend/app/templates/users.hbs
similarity index 100%
rename from app/templates/users.hbs
rename to packages/frontend/app/templates/users.hbs
diff --git a/app/templates/verification-preview.hbs b/packages/frontend/app/templates/verification-preview.hbs
similarity index 100%
rename from app/templates/verification-preview.hbs
rename to packages/frontend/app/templates/verification-preview.hbs
diff --git a/app/utils/clone-learner-group.js b/packages/frontend/app/utils/clone-learner-group.js
similarity index 100%
rename from app/utils/clone-learner-group.js
rename to packages/frontend/app/utils/clone-learner-group.js
diff --git a/app/utils/count-digits.js b/packages/frontend/app/utils/count-digits.js
similarity index 100%
rename from app/utils/count-digits.js
rename to packages/frontend/app/utils/count-digits.js
diff --git a/app/utils/create-download-file.js b/packages/frontend/app/utils/create-download-file.js
similarity index 100%
rename from app/utils/create-download-file.js
rename to packages/frontend/app/utils/create-download-file.js
diff --git a/app/utils/launch-worker.js b/packages/frontend/app/utils/launch-worker.js
similarity index 100%
rename from app/utils/launch-worker.js
rename to packages/frontend/app/utils/launch-worker.js
diff --git a/app/utils/pcrs-uri-to-number.js b/packages/frontend/app/utils/pcrs-uri-to-number.js
similarity index 100%
rename from app/utils/pcrs-uri-to-number.js
rename to packages/frontend/app/utils/pcrs-uri-to-number.js
diff --git a/app/utils/random-string.js b/packages/frontend/app/utils/random-string.js
similarity index 100%
rename from app/utils/random-string.js
rename to packages/frontend/app/utils/random-string.js
diff --git a/app/utils/readable-file-size.js b/packages/frontend/app/utils/readable-file-size.js
similarity index 100%
rename from app/utils/readable-file-size.js
rename to packages/frontend/app/utils/readable-file-size.js
diff --git a/app/utils/sort-cohorts.js b/packages/frontend/app/utils/sort-cohorts.js
similarity index 100%
rename from app/utils/sort-cohorts.js
rename to packages/frontend/app/utils/sort-cohorts.js
diff --git a/config/coverage.js b/packages/frontend/config/coverage.js
similarity index 100%
rename from config/coverage.js
rename to packages/frontend/config/coverage.js
diff --git a/config/dependency-lint.js b/packages/frontend/config/dependency-lint.js
similarity index 100%
rename from config/dependency-lint.js
rename to packages/frontend/config/dependency-lint.js
diff --git a/config/deploy.js b/packages/frontend/config/deploy.js
similarity index 100%
rename from config/deploy.js
rename to packages/frontend/config/deploy.js
diff --git a/config/deprecation-workflow.js b/packages/frontend/config/deprecation-workflow.js
similarity index 100%
rename from config/deprecation-workflow.js
rename to packages/frontend/config/deprecation-workflow.js
diff --git a/config/ember-cli-update.json b/packages/frontend/config/ember-cli-update.json
similarity index 100%
rename from config/ember-cli-update.json
rename to packages/frontend/config/ember-cli-update.json
diff --git a/config/ember-intl.js b/packages/frontend/config/ember-intl.js
similarity index 100%
rename from config/ember-intl.js
rename to packages/frontend/config/ember-intl.js
diff --git a/config/ember-try.js b/packages/frontend/config/ember-try.js
similarity index 100%
rename from config/ember-try.js
rename to packages/frontend/config/ember-try.js
diff --git a/config/environment.js b/packages/frontend/config/environment.js
similarity index 100%
rename from config/environment.js
rename to packages/frontend/config/environment.js
diff --git a/config/icons.js b/packages/frontend/config/icons.js
similarity index 100%
rename from config/icons.js
rename to packages/frontend/config/icons.js
diff --git a/config/manifest.js b/packages/frontend/config/manifest.js
similarity index 100%
rename from config/manifest.js
rename to packages/frontend/config/manifest.js
diff --git a/config/optional-features.json b/packages/frontend/config/optional-features.json
similarity index 100%
rename from config/optional-features.json
rename to packages/frontend/config/optional-features.json
diff --git a/config/targets.js b/packages/frontend/config/targets.js
similarity index 100%
rename from config/targets.js
rename to packages/frontend/config/targets.js
diff --git a/ember-cli-build.js b/packages/frontend/ember-cli-build.js
similarity index 100%
rename from ember-cli-build.js
rename to packages/frontend/ember-cli-build.js
diff --git a/lib/.eslintrc.js b/packages/frontend/lib/.eslintrc.js
similarity index 100%
rename from lib/.eslintrc.js
rename to packages/frontend/lib/.eslintrc.js
diff --git a/lib/ilios-error/index.js b/packages/frontend/lib/ilios-error/index.js
similarity index 100%
rename from lib/ilios-error/index.js
rename to packages/frontend/lib/ilios-error/index.js
diff --git a/lib/ilios-error/package.json b/packages/frontend/lib/ilios-error/package.json
similarity index 100%
rename from lib/ilios-error/package.json
rename to packages/frontend/lib/ilios-error/package.json
diff --git a/lib/ilios-error/public/style.css b/packages/frontend/lib/ilios-error/public/style.css
similarity index 100%
rename from lib/ilios-error/public/style.css
rename to packages/frontend/lib/ilios-error/public/style.css
diff --git a/lib/ilios-loading/index.js b/packages/frontend/lib/ilios-loading/index.js
similarity index 100%
rename from lib/ilios-loading/index.js
rename to packages/frontend/lib/ilios-loading/index.js
diff --git a/lib/ilios-loading/package.json b/packages/frontend/lib/ilios-loading/package.json
similarity index 100%
rename from lib/ilios-loading/package.json
rename to packages/frontend/lib/ilios-loading/package.json
diff --git a/lib/ilios-loading/public/display-loader.js b/packages/frontend/lib/ilios-loading/public/display-loader.js
similarity index 100%
rename from lib/ilios-loading/public/display-loader.js
rename to packages/frontend/lib/ilios-loading/public/display-loader.js
diff --git a/lib/ilios-loading/public/remove-loader-tests.js b/packages/frontend/lib/ilios-loading/public/remove-loader-tests.js
similarity index 100%
rename from lib/ilios-loading/public/remove-loader-tests.js
rename to packages/frontend/lib/ilios-loading/public/remove-loader-tests.js
diff --git a/lib/images/sunburst-icon.svg b/packages/frontend/lib/images/sunburst-icon.svg
similarity index 100%
rename from lib/images/sunburst-icon.svg
rename to packages/frontend/lib/images/sunburst-icon.svg
diff --git a/lib/images/sunburst.svg b/packages/frontend/lib/images/sunburst.svg
similarity index 100%
rename from lib/images/sunburst.svg
rename to packages/frontend/lib/images/sunburst.svg
diff --git a/mirage/config.js b/packages/frontend/mirage/config.js
similarity index 100%
rename from mirage/config.js
rename to packages/frontend/mirage/config.js
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
new file mode 100644
index 0000000000..a5f6c831b4
--- /dev/null
+++ b/packages/frontend/package.json
@@ -0,0 +1,164 @@
+{
+  "name": "frontend",
+  "version": "38.0.0",
+  "description": "Curriculum Management System for the Health Professions",
+  "repository": "https://github.com/ilios/frontend",
+  "license": "MIT",
+  "author": "",
+  "directories": {
+    "doc": "doc",
+    "test": "tests"
+  },
+  "scripts": {
+    "build": "ember build --environment=production",
+    "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"",
+    "lint:css": "stylelint \"**/*.scss\"",
+    "lint:css:fix": "concurrently \"pnpm:lint:css -- --fix\"",
+    "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"",
+    "lint:hbs": "ember-template-lint .",
+    "lint:hbs:fix": "ember-template-lint . --fix",
+    "lint:js": "eslint . --cache",
+    "lint:js:fix": "eslint . --fix",
+    "start": "ember serve",
+    "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\"",
+    "test:ember": "ember test",
+    "percy:test": "percy exec -- pnpm run test:ember",
+    "deploy:production": "ember deploy production --activate",
+    "deploy:staging": "ember deploy staging --activate",
+    "deploy:test": "ember deploy development",
+    "test:ember:browserstack": "ember test --test-port=7774 --host=127.0.0.1 --config-file=testem.browserstack.js",
+    "browserstack:connect": "ember browserstack:connect",
+    "browserstack:disconnect": "ember browserstack:disconnect",
+    "browserstack:results": "ember browserstack:results",
+    "preinstall": "npx only-allow pnpm"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.22.20",
+    "@babel/eslint-parser": "7.23.3",
+    "@babel/plugin-proposal-decorators": "^7.22.15",
+    "@ember/edition-utils": "^1.2.0",
+    "@ember/optional-features": "^2.0.0",
+    "@ember/string": "^3.1.1",
+    "@ember/test-helpers": "^3.2.0",
+    "@embroider/compat": "~3.4.4",
+    "@embroider/core": "~3.4.4",
+    "@embroider/macros": "^1.13.5",
+    "@embroider/router": "^2.1.6",
+    "@embroider/webpack": "~3.2.2",
+    "@glimmer/component": "^1.1.2",
+    "@glimmer/tracking": "^1.1.2",
+    "@percy/cli": "^1.27.7",
+    "@percy/ember": "^4.2.0",
+    "@sentry/ember": "7.99.0",
+    "broccoli-asset-rev": "^3.0.0",
+    "broccoli-file-creator": "^2.1.1",
+    "broccoli-merge-trees": "^4.2.0",
+    "browserslist": "^4.22.1",
+    "caniuse-db": "^1.0.30001583",
+    "class-validator": "^0.14.0",
+    "concurrently": "^8.2.1",
+    "ember-a11y-refocus": "3.0.2",
+    "ember-a11y-testing": "^6.1.1",
+    "ember-ajax": "^5.1.2",
+    "ember-async-data": "^1.0.3",
+    "ember-auto-import": "^2.4.3",
+    "ember-cli": "~5.3.0",
+    "ember-cli-app-version": "^6.0.1",
+    "ember-cli-babel": "^8.0.0",
+    "ember-cli-browserstack": "^3.0.0",
+    "ember-cli-bundle-analyzer": "^1.0.0",
+    "ember-cli-clean-css": "^3.0.0",
+    "ember-cli-code-coverage": "^v2.0.3",
+    "ember-cli-dependency-checker": "^3.3.2",
+    "ember-cli-dependency-lint": "2.0.1",
+    "ember-cli-deploy": "2.0.0",
+    "ember-cli-deploy-archive": "1.0.0",
+    "ember-cli-deploy-brotli": "^0.4.0",
+    "ember-cli-deploy-build": "3.0.0",
+    "ember-cli-deploy-cloudfront": "^5.0.0",
+    "ember-cli-deploy-display-revisions": "3.0.0",
+    "ember-cli-deploy-gzip": "^3.0.0",
+    "ember-cli-deploy-json-config": "1.0.1",
+    "ember-cli-deploy-revision-data": "3.0.0",
+    "ember-cli-deploy-s3-index": "3.0.0",
+    "ember-cli-deprecation-workflow": "2.2.0",
+    "ember-cli-htmlbars": "^6.3.0",
+    "ember-cli-image-transformer": "^7.0.0",
+    "ember-cli-inject-live-reload": "^2.1.0",
+    "ember-cli-mirage": "^3.0.2",
+    "ember-cli-new-version": "^4.1.0",
+    "ember-cli-page-object": "^2.2.1",
+    "ember-cli-sass": "^11.0.1",
+    "ember-cli-server-variables": "3.0.0",
+    "ember-cli-sri": "^2.1.1",
+    "ember-cli-terser": "^4.0.2",
+    "ember-focus-trap": "^1.1.0",
+    "ember-load-initializers": "^2.1.2",
+    "ember-metrics": "1.5.2",
+    "ember-modifier": "^4.1.0",
+    "ember-moment": "^10.0.0",
+    "ember-noscript": "^4.1.0",
+    "ember-page-title": "^8.0.0",
+    "ember-qunit": "^8.0.1",
+    "ember-resolver": "^11.0.1",
+    "ember-responsive": "^5.0.0",
+    "ember-source": "~5.3.0",
+    "ember-template-lint": "^5.11.2",
+    "ember-web-app": "^5.0.0",
+    "eslint": "^8.49.0",
+    "eslint-config-prettier": "^9.0.0",
+    "eslint-plugin-ember": "^11.11.1",
+    "eslint-plugin-n": "^16.1.0",
+    "eslint-plugin-prettier": "^5.0.0",
+    "eslint-plugin-qunit": "^8.0.0",
+    "file-saver": "^2.0.5",
+    "ilios-common": "^87.1.0",
+    "loader.js": "^4.7.0",
+    "luxon": "^3.4.4",
+    "miragejs": "^0.1.48",
+    "mockdate": "^3.0.5",
+    "moment-timezone": "^0.5.42",
+    "pad": "^3.2.0",
+    "papaparse": "^5.4.1",
+    "prettier": "^3.0.3",
+    "query-string": "^8.1.0",
+    "qunit": "^2.19.4",
+    "qunit-dom": "^2.0.0",
+    "sass": "^1.70.0",
+    "scroll-into-view": "^1.16.2",
+    "striptags": "^3.2.0",
+    "stylelint": "^15.10.3",
+    "stylelint-config-recommended-scss": "^13.1.0",
+    "stylelint-config-standard": "^34.0.0",
+    "stylelint-prettier": "^4.0.2",
+    "stylelint-scss": "^5.3.2",
+    "terser-webpack-plugin": "^5.3.9",
+    "testem-failure-only-reporter": "^1.0.0",
+    "tracked-built-ins": "^3.2.0",
+    "validator": "^13.11.0",
+    "webpack": "^5.88.2",
+    "webpack-bundle-analyzer": "^4.10.1",
+    "webpack-retry-chunk-load-plugin": "^3.0.0",
+    "zxcvbn": "^4.4.2"
+  },
+  "engines": {
+    "node": ">= 18",
+    "yarn": "use pnpm",
+    "npm": "use pnpm"
+  },
+  "ember": {
+    "edition": "octane"
+  },
+  "ember-addon": {
+    "paths": [
+      "lib/ilios-error",
+      "lib/ilios-loading"
+    ]
+  },
+  "private": true,
+  "dependencies": {
+    "ember-auto-import": "^2.6.3",
+    "moment": "^2.30.1",
+    "moment-timezone": "^0.5.42"
+  }
+}
diff --git a/public/_redirects b/packages/frontend/public/_redirects
similarity index 100%
rename from public/_redirects
rename to packages/frontend/public/_redirects
diff --git a/public/assets/images/ilios-logo.svg b/packages/frontend/public/assets/images/ilios-logo.svg
similarity index 100%
rename from public/assets/images/ilios-logo.svg
rename to packages/frontend/public/assets/images/ilios-logo.svg
diff --git a/public/assets/images/select-down-arrow.png b/packages/frontend/public/assets/images/select-down-arrow.png
similarity index 100%
rename from public/assets/images/select-down-arrow.png
rename to packages/frontend/public/assets/images/select-down-arrow.png
diff --git a/public/crossdomain.xml b/packages/frontend/public/crossdomain.xml
similarity index 100%
rename from public/crossdomain.xml
rename to packages/frontend/public/crossdomain.xml
diff --git a/public/favicon.ico b/packages/frontend/public/favicon.ico
similarity index 100%
rename from public/favicon.ico
rename to packages/frontend/public/favicon.ico
diff --git a/public/fontawesome/brands.svg b/packages/frontend/public/fontawesome/brands.svg
similarity index 100%
rename from public/fontawesome/brands.svg
rename to packages/frontend/public/fontawesome/brands.svg
diff --git a/public/fontawesome/regular.svg b/packages/frontend/public/fontawesome/regular.svg
similarity index 100%
rename from public/fontawesome/regular.svg
rename to packages/frontend/public/fontawesome/regular.svg
diff --git a/public/fontawesome/solid.svg b/packages/frontend/public/fontawesome/solid.svg
similarity index 100%
rename from public/fontawesome/solid.svg
rename to packages/frontend/public/fontawesome/solid.svg
diff --git a/public/robots.txt b/packages/frontend/public/robots.txt
similarity index 100%
rename from public/robots.txt
rename to packages/frontend/public/robots.txt
diff --git a/public/sw.js b/packages/frontend/public/sw.js
similarity index 100%
rename from public/sw.js
rename to packages/frontend/public/sw.js
diff --git a/testem.browserstack.js b/packages/frontend/testem.browserstack.js
similarity index 100%
rename from testem.browserstack.js
rename to packages/frontend/testem.browserstack.js
diff --git a/testem.js b/packages/frontend/testem.js
similarity index 100%
rename from testem.js
rename to packages/frontend/testem.js
diff --git a/tests/acceptance/admin-test.js b/packages/frontend/tests/acceptance/admin-test.js
similarity index 100%
rename from tests/acceptance/admin-test.js
rename to packages/frontend/tests/acceptance/admin-test.js
diff --git a/tests/acceptance/api-version-notice-test.js b/packages/frontend/tests/acceptance/api-version-notice-test.js
similarity index 100%
rename from tests/acceptance/api-version-notice-test.js
rename to packages/frontend/tests/acceptance/api-version-notice-test.js
diff --git a/tests/acceptance/assignstudents-test.js b/packages/frontend/tests/acceptance/assignstudents-test.js
similarity index 100%
rename from tests/acceptance/assignstudents-test.js
rename to packages/frontend/tests/acceptance/assignstudents-test.js
diff --git a/tests/acceptance/courses-test.js b/packages/frontend/tests/acceptance/courses-test.js
similarity index 100%
rename from tests/acceptance/courses-test.js
rename to packages/frontend/tests/acceptance/courses-test.js
diff --git a/tests/acceptance/curriculum-inventory/leadership-test.js b/packages/frontend/tests/acceptance/curriculum-inventory/leadership-test.js
similarity index 100%
rename from tests/acceptance/curriculum-inventory/leadership-test.js
rename to packages/frontend/tests/acceptance/curriculum-inventory/leadership-test.js
diff --git a/tests/acceptance/curriculum-inventory/nested-sequence-blocks-test.js b/packages/frontend/tests/acceptance/curriculum-inventory/nested-sequence-blocks-test.js
similarity index 100%
rename from tests/acceptance/curriculum-inventory/nested-sequence-blocks-test.js
rename to packages/frontend/tests/acceptance/curriculum-inventory/nested-sequence-blocks-test.js
diff --git a/tests/acceptance/curriculum-inventory/report-test.js b/packages/frontend/tests/acceptance/curriculum-inventory/report-test.js
similarity index 100%
rename from tests/acceptance/curriculum-inventory/report-test.js
rename to packages/frontend/tests/acceptance/curriculum-inventory/report-test.js
diff --git a/tests/acceptance/curriculum-inventory/reports-test.js b/packages/frontend/tests/acceptance/curriculum-inventory/reports-test.js
similarity index 100%
rename from tests/acceptance/curriculum-inventory/reports-test.js
rename to packages/frontend/tests/acceptance/curriculum-inventory/reports-test.js
diff --git a/tests/acceptance/curriculum-inventory/rollover-test.js b/packages/frontend/tests/acceptance/curriculum-inventory/rollover-test.js
similarity index 100%
rename from tests/acceptance/curriculum-inventory/rollover-test.js
rename to packages/frontend/tests/acceptance/curriculum-inventory/rollover-test.js
diff --git a/tests/acceptance/curriculum-inventory/sequence-blocks-test.js b/packages/frontend/tests/acceptance/curriculum-inventory/sequence-blocks-test.js
similarity index 100%
rename from tests/acceptance/curriculum-inventory/sequence-blocks-test.js
rename to packages/frontend/tests/acceptance/curriculum-inventory/sequence-blocks-test.js
diff --git a/tests/acceptance/dashboard/accessibility-test.js b/packages/frontend/tests/acceptance/dashboard/accessibility-test.js
similarity index 100%
rename from tests/acceptance/dashboard/accessibility-test.js
rename to packages/frontend/tests/acceptance/dashboard/accessibility-test.js
diff --git a/tests/acceptance/events-test.js b/packages/frontend/tests/acceptance/events-test.js
similarity index 100%
rename from tests/acceptance/events-test.js
rename to packages/frontend/tests/acceptance/events-test.js
diff --git a/tests/acceptance/footer-test.js b/packages/frontend/tests/acceptance/footer-test.js
similarity index 100%
rename from tests/acceptance/footer-test.js
rename to packages/frontend/tests/acceptance/footer-test.js
diff --git a/tests/acceptance/four-oh-four-test.js b/packages/frontend/tests/acceptance/four-oh-four-test.js
similarity index 100%
rename from tests/acceptance/four-oh-four-test.js
rename to packages/frontend/tests/acceptance/four-oh-four-test.js
diff --git a/tests/acceptance/header-test.js b/packages/frontend/tests/acceptance/header-test.js
similarity index 100%
rename from tests/acceptance/header-test.js
rename to packages/frontend/tests/acceptance/header-test.js
diff --git a/tests/acceptance/instructorgroup-test.js b/packages/frontend/tests/acceptance/instructorgroup-test.js
similarity index 100%
rename from tests/acceptance/instructorgroup-test.js
rename to packages/frontend/tests/acceptance/instructorgroup-test.js
diff --git a/tests/acceptance/instructorgroups-test.js b/packages/frontend/tests/acceptance/instructorgroups-test.js
similarity index 100%
rename from tests/acceptance/instructorgroups-test.js
rename to packages/frontend/tests/acceptance/instructorgroups-test.js
diff --git a/tests/acceptance/learner-group/bulk-assignment-test.js b/packages/frontend/tests/acceptance/learner-group/bulk-assignment-test.js
similarity index 100%
rename from tests/acceptance/learner-group/bulk-assignment-test.js
rename to packages/frontend/tests/acceptance/learner-group/bulk-assignment-test.js
diff --git a/tests/acceptance/learnergroup-test.js b/packages/frontend/tests/acceptance/learnergroup-test.js
similarity index 100%
rename from tests/acceptance/learnergroup-test.js
rename to packages/frontend/tests/acceptance/learnergroup-test.js
diff --git a/tests/acceptance/learnergroups-test.js b/packages/frontend/tests/acceptance/learnergroups-test.js
similarity index 100%
rename from tests/acceptance/learnergroups-test.js
rename to packages/frontend/tests/acceptance/learnergroups-test.js
diff --git a/tests/acceptance/login-test.js b/packages/frontend/tests/acceptance/login-test.js
similarity index 100%
rename from tests/acceptance/login-test.js
rename to packages/frontend/tests/acceptance/login-test.js
diff --git a/tests/acceptance/pending-user-updates-test.js b/packages/frontend/tests/acceptance/pending-user-updates-test.js
similarity index 100%
rename from tests/acceptance/pending-user-updates-test.js
rename to packages/frontend/tests/acceptance/pending-user-updates-test.js
diff --git a/tests/acceptance/program-year/competencies-test.js b/packages/frontend/tests/acceptance/program-year/competencies-test.js
similarity index 100%
rename from tests/acceptance/program-year/competencies-test.js
rename to packages/frontend/tests/acceptance/program-year/competencies-test.js
diff --git a/tests/acceptance/program-year/leadership-test.js b/packages/frontend/tests/acceptance/program-year/leadership-test.js
similarity index 100%
rename from tests/acceptance/program-year/leadership-test.js
rename to packages/frontend/tests/acceptance/program-year/leadership-test.js
diff --git a/tests/acceptance/program-year/objectives-test.js b/packages/frontend/tests/acceptance/program-year/objectives-test.js
similarity index 100%
rename from tests/acceptance/program-year/objectives-test.js
rename to packages/frontend/tests/acceptance/program-year/objectives-test.js
diff --git a/tests/acceptance/program-year/objectiveterms-test.js b/packages/frontend/tests/acceptance/program-year/objectiveterms-test.js
similarity index 100%
rename from tests/acceptance/program-year/objectiveterms-test.js
rename to packages/frontend/tests/acceptance/program-year/objectiveterms-test.js
diff --git a/tests/acceptance/program-year/terms-test.js b/packages/frontend/tests/acceptance/program-year/terms-test.js
similarity index 100%
rename from tests/acceptance/program-year/terms-test.js
rename to packages/frontend/tests/acceptance/program-year/terms-test.js
diff --git a/tests/acceptance/program/leadership-test.js b/packages/frontend/tests/acceptance/program/leadership-test.js
similarity index 100%
rename from tests/acceptance/program/leadership-test.js
rename to packages/frontend/tests/acceptance/program/leadership-test.js
diff --git a/tests/acceptance/program/overview-test.js b/packages/frontend/tests/acceptance/program/overview-test.js
similarity index 100%
rename from tests/acceptance/program/overview-test.js
rename to packages/frontend/tests/acceptance/program/overview-test.js
diff --git a/tests/acceptance/program/programyear-list-test.js b/packages/frontend/tests/acceptance/program/programyear-list-test.js
similarity index 100%
rename from tests/acceptance/program/programyear-list-test.js
rename to packages/frontend/tests/acceptance/program/programyear-list-test.js
diff --git a/tests/acceptance/program/publicationcheck-test.js b/packages/frontend/tests/acceptance/program/publicationcheck-test.js
similarity index 100%
rename from tests/acceptance/program/publicationcheck-test.js
rename to packages/frontend/tests/acceptance/program/publicationcheck-test.js
diff --git a/tests/acceptance/programs-test.js b/packages/frontend/tests/acceptance/programs-test.js
similarity index 100%
rename from tests/acceptance/programs-test.js
rename to packages/frontend/tests/acceptance/programs-test.js
diff --git a/tests/acceptance/reports/subject-test.js b/packages/frontend/tests/acceptance/reports/subject-test.js
similarity index 100%
rename from tests/acceptance/reports/subject-test.js
rename to packages/frontend/tests/acceptance/reports/subject-test.js
diff --git a/tests/acceptance/reports/subjects-test.js b/packages/frontend/tests/acceptance/reports/subjects-test.js
similarity index 100%
rename from tests/acceptance/reports/subjects-test.js
rename to packages/frontend/tests/acceptance/reports/subjects-test.js
diff --git a/tests/acceptance/school/session-attributes-test.js b/packages/frontend/tests/acceptance/school/session-attributes-test.js
similarity index 100%
rename from tests/acceptance/school/session-attributes-test.js
rename to packages/frontend/tests/acceptance/school/session-attributes-test.js
diff --git a/tests/acceptance/school/session-types-test.js b/packages/frontend/tests/acceptance/school/session-types-test.js
similarity index 100%
rename from tests/acceptance/school/session-types-test.js
rename to packages/frontend/tests/acceptance/school/session-types-test.js
diff --git a/tests/acceptance/search-test.js b/packages/frontend/tests/acceptance/search-test.js
similarity index 100%
rename from tests/acceptance/search-test.js
rename to packages/frontend/tests/acceptance/search-test.js
diff --git a/tests/acceptance/user-test.js b/packages/frontend/tests/acceptance/user-test.js
similarity index 100%
rename from tests/acceptance/user-test.js
rename to packages/frontend/tests/acceptance/user-test.js
diff --git a/tests/acceptance/users-test.js b/packages/frontend/tests/acceptance/users-test.js
similarity index 100%
rename from tests/acceptance/users-test.js
rename to packages/frontend/tests/acceptance/users-test.js
diff --git a/tests/acceptance/weeklyevents-test.js b/packages/frontend/tests/acceptance/weeklyevents-test.js
similarity index 100%
rename from tests/acceptance/weeklyevents-test.js
rename to packages/frontend/tests/acceptance/weeklyevents-test.js
diff --git a/tests/helpers/flash-message.js b/packages/frontend/tests/helpers/flash-message.js
similarity index 100%
rename from tests/helpers/flash-message.js
rename to packages/frontend/tests/helpers/flash-message.js
diff --git a/tests/helpers/index.js b/packages/frontend/tests/helpers/index.js
similarity index 100%
rename from tests/helpers/index.js
rename to packages/frontend/tests/helpers/index.js
diff --git a/tests/index.html b/packages/frontend/tests/index.html
similarity index 100%
rename from tests/index.html
rename to packages/frontend/tests/index.html
diff --git a/tests/integration/components/assign-students-test.js b/packages/frontend/tests/integration/components/assign-students-test.js
similarity index 100%
rename from tests/integration/components/assign-students-test.js
rename to packages/frontend/tests/integration/components/assign-students-test.js
diff --git a/tests/integration/components/back-to-admin-dashboard-test.js b/packages/frontend/tests/integration/components/back-to-admin-dashboard-test.js
similarity index 100%
rename from tests/integration/components/back-to-admin-dashboard-test.js
rename to packages/frontend/tests/integration/components/back-to-admin-dashboard-test.js
diff --git a/tests/integration/components/bulk-new-users-test.js b/packages/frontend/tests/integration/components/bulk-new-users-test.js
similarity index 100%
rename from tests/integration/components/bulk-new-users-test.js
rename to packages/frontend/tests/integration/components/bulk-new-users-test.js
diff --git a/tests/integration/components/competency-title-editor-test.js b/packages/frontend/tests/integration/components/competency-title-editor-test.js
similarity index 100%
rename from tests/integration/components/competency-title-editor-test.js
rename to packages/frontend/tests/integration/components/competency-title-editor-test.js
diff --git a/tests/integration/components/connection-status-test.js b/packages/frontend/tests/integration/components/connection-status-test.js
similarity index 100%
rename from tests/integration/components/connection-status-test.js
rename to packages/frontend/tests/integration/components/connection-status-test.js
diff --git a/tests/integration/components/course-search-result-test.js b/packages/frontend/tests/integration/components/course-search-result-test.js
similarity index 100%
rename from tests/integration/components/course-search-result-test.js
rename to packages/frontend/tests/integration/components/course-search-result-test.js
diff --git a/tests/integration/components/courses/list-item-test.js b/packages/frontend/tests/integration/components/courses/list-item-test.js
similarity index 100%
rename from tests/integration/components/courses/list-item-test.js
rename to packages/frontend/tests/integration/components/courses/list-item-test.js
diff --git a/tests/integration/components/courses/list-test.js b/packages/frontend/tests/integration/components/courses/list-test.js
similarity index 100%
rename from tests/integration/components/courses/list-test.js
rename to packages/frontend/tests/integration/components/courses/list-test.js
diff --git a/tests/integration/components/courses/new-test.js b/packages/frontend/tests/integration/components/courses/new-test.js
similarity index 100%
rename from tests/integration/components/courses/new-test.js
rename to packages/frontend/tests/integration/components/courses/new-test.js
diff --git a/tests/integration/components/courses/root-test.js b/packages/frontend/tests/integration/components/courses/root-test.js
similarity index 100%
rename from tests/integration/components/courses/root-test.js
rename to packages/frontend/tests/integration/components/courses/root-test.js
diff --git a/tests/integration/components/curriculum-inventory/leadership-expanded-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/leadership-expanded-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/leadership-expanded-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/leadership-expanded-test.js
diff --git a/tests/integration/components/curriculum-inventory/new-report-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/new-report-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/new-report-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/new-report-test.js
diff --git a/tests/integration/components/curriculum-inventory/new-sequence-block-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/new-sequence-block-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/new-sequence-block-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/new-sequence-block-test.js
diff --git a/tests/integration/components/curriculum-inventory/report-details-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/report-details-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/report-details-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/report-details-test.js
diff --git a/tests/integration/components/curriculum-inventory/report-header-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/report-header-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/report-header-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/report-header-test.js
diff --git a/tests/integration/components/curriculum-inventory/report-list-item-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/report-list-item-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/report-list-item-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/report-list-item-test.js
diff --git a/tests/integration/components/curriculum-inventory/report-list-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/report-list-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/report-list-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/report-list-test.js
diff --git a/tests/integration/components/curriculum-inventory/report-overview-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/report-overview-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/report-overview-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/report-overview-test.js
diff --git a/tests/integration/components/curriculum-inventory/report-rollover-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/report-rollover-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/report-rollover-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/report-rollover-test.js
diff --git a/tests/integration/components/curriculum-inventory/reports-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/reports-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/reports-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/reports-test.js
diff --git a/tests/integration/components/curriculum-inventory/sequence-block-details-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-details-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/sequence-block-details-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-details-test.js
diff --git a/tests/integration/components/curriculum-inventory/sequence-block-header-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-header-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/sequence-block-header-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-header-test.js
diff --git a/tests/integration/components/curriculum-inventory/sequence-block-list-item-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-list-item-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/sequence-block-list-item-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-list-item-test.js
diff --git a/tests/integration/components/curriculum-inventory/sequence-block-list-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-list-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/sequence-block-list-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-list-test.js
diff --git a/tests/integration/components/curriculum-inventory/sequence-block-overview-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-overview-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/sequence-block-overview-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-overview-test.js
diff --git a/tests/integration/components/curriculum-inventory/sequence-block-session-list-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-session-list-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/sequence-block-session-list-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-session-list-test.js
diff --git a/tests/integration/components/curriculum-inventory/sequence-block-session-manager-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-session-manager-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/sequence-block-session-manager-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/sequence-block-session-manager-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-header-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-header-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-header-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-header-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table1-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table1-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table1-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table1-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table2-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table2-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table2-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table2-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table3a-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table3a-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table3a-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table3a-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table3b-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table3b-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table3b-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table3b-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table4-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table4-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table4-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table4-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table5-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table5-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table5-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table5-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table6-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table6-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table6-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table6-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table7-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table7-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table7-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table7-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-table8-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table8-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-table8-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-table8-test.js
diff --git a/tests/integration/components/curriculum-inventory/verification-preview-test.js b/packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-test.js
similarity index 100%
rename from tests/integration/components/curriculum-inventory/verification-preview-test.js
rename to packages/frontend/tests/integration/components/curriculum-inventory/verification-preview-test.js
diff --git a/tests/integration/components/dashboard-loading-test.js b/packages/frontend/tests/integration/components/dashboard-loading-test.js
similarity index 100%
rename from tests/integration/components/dashboard-loading-test.js
rename to packages/frontend/tests/integration/components/dashboard-loading-test.js
diff --git a/tests/integration/components/error-display-test.js b/packages/frontend/tests/integration/components/error-display-test.js
similarity index 100%
rename from tests/integration/components/error-display-test.js
rename to packages/frontend/tests/integration/components/error-display-test.js
diff --git a/tests/integration/components/flash-messages-test.js b/packages/frontend/tests/integration/components/flash-messages-test.js
similarity index 100%
rename from tests/integration/components/flash-messages-test.js
rename to packages/frontend/tests/integration/components/flash-messages-test.js
diff --git a/tests/integration/components/global-search-box-test.js b/packages/frontend/tests/integration/components/global-search-box-test.js
similarity index 100%
rename from tests/integration/components/global-search-box-test.js
rename to packages/frontend/tests/integration/components/global-search-box-test.js
diff --git a/tests/integration/components/global-search-tags-test.js b/packages/frontend/tests/integration/components/global-search-tags-test.js
similarity index 100%
rename from tests/integration/components/global-search-tags-test.js
rename to packages/frontend/tests/integration/components/global-search-tags-test.js
diff --git a/tests/integration/components/global-search-test.js b/packages/frontend/tests/integration/components/global-search-test.js
similarity index 100%
rename from tests/integration/components/global-search-test.js
rename to packages/frontend/tests/integration/components/global-search-test.js
diff --git a/tests/integration/components/ilios-header-test.js b/packages/frontend/tests/integration/components/ilios-header-test.js
similarity index 100%
rename from tests/integration/components/ilios-header-test.js
rename to packages/frontend/tests/integration/components/ilios-header-test.js
diff --git a/tests/integration/components/ilios-navigation-test.js b/packages/frontend/tests/integration/components/ilios-navigation-test.js
similarity index 100%
rename from tests/integration/components/ilios-navigation-test.js
rename to packages/frontend/tests/integration/components/ilios-navigation-test.js
diff --git a/tests/integration/components/ilios-users-test.js b/packages/frontend/tests/integration/components/ilios-users-test.js
similarity index 100%
rename from tests/integration/components/ilios-users-test.js
rename to packages/frontend/tests/integration/components/ilios-users-test.js
diff --git a/tests/integration/components/instructor-group/courses-test.js b/packages/frontend/tests/integration/components/instructor-group/courses-test.js
similarity index 100%
rename from tests/integration/components/instructor-group/courses-test.js
rename to packages/frontend/tests/integration/components/instructor-group/courses-test.js
diff --git a/tests/integration/components/instructor-group/header-test.js b/packages/frontend/tests/integration/components/instructor-group/header-test.js
similarity index 100%
rename from tests/integration/components/instructor-group/header-test.js
rename to packages/frontend/tests/integration/components/instructor-group/header-test.js
diff --git a/tests/integration/components/instructor-group/instructor-manager-test.js b/packages/frontend/tests/integration/components/instructor-group/instructor-manager-test.js
similarity index 100%
rename from tests/integration/components/instructor-group/instructor-manager-test.js
rename to packages/frontend/tests/integration/components/instructor-group/instructor-manager-test.js
diff --git a/tests/integration/components/instructor-group/root-test.js b/packages/frontend/tests/integration/components/instructor-group/root-test.js
similarity index 100%
rename from tests/integration/components/instructor-group/root-test.js
rename to packages/frontend/tests/integration/components/instructor-group/root-test.js
diff --git a/tests/integration/components/instructor-group/users-test.js b/packages/frontend/tests/integration/components/instructor-group/users-test.js
similarity index 100%
rename from tests/integration/components/instructor-group/users-test.js
rename to packages/frontend/tests/integration/components/instructor-group/users-test.js
diff --git a/tests/integration/components/instructor-groups/list-item-test.js b/packages/frontend/tests/integration/components/instructor-groups/list-item-test.js
similarity index 100%
rename from tests/integration/components/instructor-groups/list-item-test.js
rename to packages/frontend/tests/integration/components/instructor-groups/list-item-test.js
diff --git a/tests/integration/components/instructor-groups/list-test.js b/packages/frontend/tests/integration/components/instructor-groups/list-test.js
similarity index 100%
rename from tests/integration/components/instructor-groups/list-test.js
rename to packages/frontend/tests/integration/components/instructor-groups/list-test.js
diff --git a/tests/integration/components/instructor-groups/loading-test.js b/packages/frontend/tests/integration/components/instructor-groups/loading-test.js
similarity index 100%
rename from tests/integration/components/instructor-groups/loading-test.js
rename to packages/frontend/tests/integration/components/instructor-groups/loading-test.js
diff --git a/tests/integration/components/instructor-groups/new-test.js b/packages/frontend/tests/integration/components/instructor-groups/new-test.js
similarity index 100%
rename from tests/integration/components/instructor-groups/new-test.js
rename to packages/frontend/tests/integration/components/instructor-groups/new-test.js
diff --git a/tests/integration/components/instructor-groups/root-test.js b/packages/frontend/tests/integration/components/instructor-groups/root-test.js
similarity index 100%
rename from tests/integration/components/instructor-groups/root-test.js
rename to packages/frontend/tests/integration/components/instructor-groups/root-test.js
diff --git a/tests/integration/components/learner-group/calendar-test.js b/packages/frontend/tests/integration/components/learner-group/calendar-test.js
similarity index 100%
rename from tests/integration/components/learner-group/calendar-test.js
rename to packages/frontend/tests/integration/components/learner-group/calendar-test.js
diff --git a/tests/integration/components/learner-group/cohort-user-manager-test.js b/packages/frontend/tests/integration/components/learner-group/cohort-user-manager-test.js
similarity index 100%
rename from tests/integration/components/learner-group/cohort-user-manager-test.js
rename to packages/frontend/tests/integration/components/learner-group/cohort-user-manager-test.js
diff --git a/tests/integration/components/learner-group/header-test.js b/packages/frontend/tests/integration/components/learner-group/header-test.js
similarity index 100%
rename from tests/integration/components/learner-group/header-test.js
rename to packages/frontend/tests/integration/components/learner-group/header-test.js
diff --git a/tests/integration/components/learner-group/instructor-group-members-list-test.js b/packages/frontend/tests/integration/components/learner-group/instructor-group-members-list-test.js
similarity index 100%
rename from tests/integration/components/learner-group/instructor-group-members-list-test.js
rename to packages/frontend/tests/integration/components/learner-group/instructor-group-members-list-test.js
diff --git a/tests/integration/components/learner-group/instructor-manager-test.js b/packages/frontend/tests/integration/components/learner-group/instructor-manager-test.js
similarity index 100%
rename from tests/integration/components/learner-group/instructor-manager-test.js
rename to packages/frontend/tests/integration/components/learner-group/instructor-manager-test.js
diff --git a/tests/integration/components/learner-group/list-item-test.js b/packages/frontend/tests/integration/components/learner-group/list-item-test.js
similarity index 100%
rename from tests/integration/components/learner-group/list-item-test.js
rename to packages/frontend/tests/integration/components/learner-group/list-item-test.js
diff --git a/tests/integration/components/learner-group/list-test.js b/packages/frontend/tests/integration/components/learner-group/list-test.js
similarity index 100%
rename from tests/integration/components/learner-group/list-test.js
rename to packages/frontend/tests/integration/components/learner-group/list-test.js
diff --git a/tests/integration/components/learner-group/members-test.js b/packages/frontend/tests/integration/components/learner-group/members-test.js
similarity index 100%
rename from tests/integration/components/learner-group/members-test.js
rename to packages/frontend/tests/integration/components/learner-group/members-test.js
diff --git a/tests/integration/components/learner-group/new-multiple-test.js b/packages/frontend/tests/integration/components/learner-group/new-multiple-test.js
similarity index 100%
rename from tests/integration/components/learner-group/new-multiple-test.js
rename to packages/frontend/tests/integration/components/learner-group/new-multiple-test.js
diff --git a/tests/integration/components/learner-group/new-single-test.js b/packages/frontend/tests/integration/components/learner-group/new-single-test.js
similarity index 100%
rename from tests/integration/components/learner-group/new-single-test.js
rename to packages/frontend/tests/integration/components/learner-group/new-single-test.js
diff --git a/tests/integration/components/learner-group/new-test.js b/packages/frontend/tests/integration/components/learner-group/new-test.js
similarity index 100%
rename from tests/integration/components/learner-group/new-test.js
rename to packages/frontend/tests/integration/components/learner-group/new-test.js
diff --git a/tests/integration/components/learner-group/root-test.js b/packages/frontend/tests/integration/components/learner-group/root-test.js
similarity index 100%
rename from tests/integration/components/learner-group/root-test.js
rename to packages/frontend/tests/integration/components/learner-group/root-test.js
diff --git a/tests/integration/components/learner-group/user-manager-test.js b/packages/frontend/tests/integration/components/learner-group/user-manager-test.js
similarity index 100%
rename from tests/integration/components/learner-group/user-manager-test.js
rename to packages/frontend/tests/integration/components/learner-group/user-manager-test.js
diff --git a/tests/integration/components/learner-groups/root-test.js b/packages/frontend/tests/integration/components/learner-groups/root-test.js
similarity index 100%
rename from tests/integration/components/learner-groups/root-test.js
rename to packages/frontend/tests/integration/components/learner-groups/root-test.js
diff --git a/tests/integration/components/link-to-with-action-test.js b/packages/frontend/tests/integration/components/link-to-with-action-test.js
similarity index 100%
rename from tests/integration/components/link-to-with-action-test.js
rename to packages/frontend/tests/integration/components/link-to-with-action-test.js
diff --git a/tests/integration/components/locale-chooser-test.js b/packages/frontend/tests/integration/components/locale-chooser-test.js
similarity index 100%
rename from tests/integration/components/locale-chooser-test.js
rename to packages/frontend/tests/integration/components/locale-chooser-test.js
diff --git a/tests/integration/components/login-form-test.js b/packages/frontend/tests/integration/components/login-form-test.js
similarity index 100%
rename from tests/integration/components/login-form-test.js
rename to packages/frontend/tests/integration/components/login-form-test.js
diff --git a/tests/integration/components/manage-users-summary-test.js b/packages/frontend/tests/integration/components/manage-users-summary-test.js
similarity index 100%
rename from tests/integration/components/manage-users-summary-test.js
rename to packages/frontend/tests/integration/components/manage-users-summary-test.js
diff --git a/tests/integration/components/my-profile-test.js b/packages/frontend/tests/integration/components/my-profile-test.js
similarity index 100%
rename from tests/integration/components/my-profile-test.js
rename to packages/frontend/tests/integration/components/my-profile-test.js
diff --git a/tests/integration/components/new-competency-test.js b/packages/frontend/tests/integration/components/new-competency-test.js
similarity index 100%
rename from tests/integration/components/new-competency-test.js
rename to packages/frontend/tests/integration/components/new-competency-test.js
diff --git a/tests/integration/components/new-directory-user-test.js b/packages/frontend/tests/integration/components/new-directory-user-test.js
similarity index 100%
rename from tests/integration/components/new-directory-user-test.js
rename to packages/frontend/tests/integration/components/new-directory-user-test.js
diff --git a/tests/integration/components/new-user-test.js b/packages/frontend/tests/integration/components/new-user-test.js
similarity index 100%
rename from tests/integration/components/new-user-test.js
rename to packages/frontend/tests/integration/components/new-user-test.js
diff --git a/tests/integration/components/pagination-links-test.js b/packages/frontend/tests/integration/components/pagination-links-test.js
similarity index 100%
rename from tests/integration/components/pagination-links-test.js
rename to packages/frontend/tests/integration/components/pagination-links-test.js
diff --git a/tests/integration/components/pending-single-user-update-test.js b/packages/frontend/tests/integration/components/pending-single-user-update-test.js
similarity index 100%
rename from tests/integration/components/pending-single-user-update-test.js
rename to packages/frontend/tests/integration/components/pending-single-user-update-test.js
diff --git a/tests/integration/components/pending-updates-summary-test.js b/packages/frontend/tests/integration/components/pending-updates-summary-test.js
similarity index 100%
rename from tests/integration/components/pending-updates-summary-test.js
rename to packages/frontend/tests/integration/components/pending-updates-summary-test.js
diff --git a/tests/integration/components/program-year/collapsed-objectives-test.js b/packages/frontend/tests/integration/components/program-year/collapsed-objectives-test.js
similarity index 100%
rename from tests/integration/components/program-year/collapsed-objectives-test.js
rename to packages/frontend/tests/integration/components/program-year/collapsed-objectives-test.js
diff --git a/tests/integration/components/program-year/competencies-test.js b/packages/frontend/tests/integration/components/program-year/competencies-test.js
similarity index 100%
rename from tests/integration/components/program-year/competencies-test.js
rename to packages/frontend/tests/integration/components/program-year/competencies-test.js
diff --git a/tests/integration/components/program-year/competency-list-item-test.js b/packages/frontend/tests/integration/components/program-year/competency-list-item-test.js
similarity index 100%
rename from tests/integration/components/program-year/competency-list-item-test.js
rename to packages/frontend/tests/integration/components/program-year/competency-list-item-test.js
diff --git a/tests/integration/components/program-year/courses-test.js b/packages/frontend/tests/integration/components/program-year/courses-test.js
similarity index 100%
rename from tests/integration/components/program-year/courses-test.js
rename to packages/frontend/tests/integration/components/program-year/courses-test.js
diff --git a/tests/integration/components/program-year/header-test.js b/packages/frontend/tests/integration/components/program-year/header-test.js
similarity index 100%
rename from tests/integration/components/program-year/header-test.js
rename to packages/frontend/tests/integration/components/program-year/header-test.js
diff --git a/tests/integration/components/program-year/leadership-expanded-test.js b/packages/frontend/tests/integration/components/program-year/leadership-expanded-test.js
similarity index 100%
rename from tests/integration/components/program-year/leadership-expanded-test.js
rename to packages/frontend/tests/integration/components/program-year/leadership-expanded-test.js
diff --git a/tests/integration/components/program-year/list-item-test.js b/packages/frontend/tests/integration/components/program-year/list-item-test.js
similarity index 100%
rename from tests/integration/components/program-year/list-item-test.js
rename to packages/frontend/tests/integration/components/program-year/list-item-test.js
diff --git a/tests/integration/components/program-year/list-test.js b/packages/frontend/tests/integration/components/program-year/list-test.js
similarity index 100%
rename from tests/integration/components/program-year/list-test.js
rename to packages/frontend/tests/integration/components/program-year/list-test.js
diff --git a/tests/integration/components/program-year/manage-objective-competency-test.js b/packages/frontend/tests/integration/components/program-year/manage-objective-competency-test.js
similarity index 100%
rename from tests/integration/components/program-year/manage-objective-competency-test.js
rename to packages/frontend/tests/integration/components/program-year/manage-objective-competency-test.js
diff --git a/tests/integration/components/program-year/manage-objective-descriptors-test.js b/packages/frontend/tests/integration/components/program-year/manage-objective-descriptors-test.js
similarity index 100%
rename from tests/integration/components/program-year/manage-objective-descriptors-test.js
rename to packages/frontend/tests/integration/components/program-year/manage-objective-descriptors-test.js
diff --git a/tests/integration/components/program-year/managed-competency-list-item-test.js b/packages/frontend/tests/integration/components/program-year/managed-competency-list-item-test.js
similarity index 100%
rename from tests/integration/components/program-year/managed-competency-list-item-test.js
rename to packages/frontend/tests/integration/components/program-year/managed-competency-list-item-test.js
diff --git a/tests/integration/components/program-year/new-test.js b/packages/frontend/tests/integration/components/program-year/new-test.js
similarity index 100%
rename from tests/integration/components/program-year/new-test.js
rename to packages/frontend/tests/integration/components/program-year/new-test.js
diff --git a/tests/integration/components/program-year/objective-list-item-competency-test.js b/packages/frontend/tests/integration/components/program-year/objective-list-item-competency-test.js
similarity index 100%
rename from tests/integration/components/program-year/objective-list-item-competency-test.js
rename to packages/frontend/tests/integration/components/program-year/objective-list-item-competency-test.js
diff --git a/tests/integration/components/program-year/objective-list-item-descriptors-test.js b/packages/frontend/tests/integration/components/program-year/objective-list-item-descriptors-test.js
similarity index 100%
rename from tests/integration/components/program-year/objective-list-item-descriptors-test.js
rename to packages/frontend/tests/integration/components/program-year/objective-list-item-descriptors-test.js
diff --git a/tests/integration/components/program-year/objective-list-item-expanded-test.js b/packages/frontend/tests/integration/components/program-year/objective-list-item-expanded-test.js
similarity index 100%
rename from tests/integration/components/program-year/objective-list-item-expanded-test.js
rename to packages/frontend/tests/integration/components/program-year/objective-list-item-expanded-test.js
diff --git a/tests/integration/components/program-year/objective-list-item-test.js b/packages/frontend/tests/integration/components/program-year/objective-list-item-test.js
similarity index 100%
rename from tests/integration/components/program-year/objective-list-item-test.js
rename to packages/frontend/tests/integration/components/program-year/objective-list-item-test.js
diff --git a/tests/integration/components/program-year/objective-list-loading-test.js b/packages/frontend/tests/integration/components/program-year/objective-list-loading-test.js
similarity index 100%
rename from tests/integration/components/program-year/objective-list-loading-test.js
rename to packages/frontend/tests/integration/components/program-year/objective-list-loading-test.js
diff --git a/tests/integration/components/program-year/objective-list-test.js b/packages/frontend/tests/integration/components/program-year/objective-list-test.js
similarity index 100%
rename from tests/integration/components/program-year/objective-list-test.js
rename to packages/frontend/tests/integration/components/program-year/objective-list-test.js
diff --git a/tests/integration/components/program-year/objectives-test.js b/packages/frontend/tests/integration/components/program-year/objectives-test.js
similarity index 100%
rename from tests/integration/components/program-year/objectives-test.js
rename to packages/frontend/tests/integration/components/program-year/objectives-test.js
diff --git a/tests/integration/components/program-year/overview-test.js b/packages/frontend/tests/integration/components/program-year/overview-test.js
similarity index 100%
rename from tests/integration/components/program-year/overview-test.js
rename to packages/frontend/tests/integration/components/program-year/overview-test.js
diff --git a/tests/integration/components/program-year/visualize-objectives-test.js b/packages/frontend/tests/integration/components/program-year/visualize-objectives-test.js
similarity index 100%
rename from tests/integration/components/program-year/visualize-objectives-test.js
rename to packages/frontend/tests/integration/components/program-year/visualize-objectives-test.js
diff --git a/tests/integration/components/program/header-test.js b/packages/frontend/tests/integration/components/program/header-test.js
similarity index 100%
rename from tests/integration/components/program/header-test.js
rename to packages/frontend/tests/integration/components/program/header-test.js
diff --git a/tests/integration/components/program/leadership-expanded-test.js b/packages/frontend/tests/integration/components/program/leadership-expanded-test.js
similarity index 100%
rename from tests/integration/components/program/leadership-expanded-test.js
rename to packages/frontend/tests/integration/components/program/leadership-expanded-test.js
diff --git a/tests/integration/components/program/new-test.js b/packages/frontend/tests/integration/components/program/new-test.js
similarity index 100%
rename from tests/integration/components/program/new-test.js
rename to packages/frontend/tests/integration/components/program/new-test.js
diff --git a/tests/integration/components/programs/list-item-test.js b/packages/frontend/tests/integration/components/programs/list-item-test.js
similarity index 100%
rename from tests/integration/components/programs/list-item-test.js
rename to packages/frontend/tests/integration/components/programs/list-item-test.js
diff --git a/tests/integration/components/programs/list-test.js b/packages/frontend/tests/integration/components/programs/list-test.js
similarity index 100%
rename from tests/integration/components/programs/list-test.js
rename to packages/frontend/tests/integration/components/programs/list-test.js
diff --git a/tests/integration/components/programs/root-test.js b/packages/frontend/tests/integration/components/programs/root-test.js
similarity index 100%
rename from tests/integration/components/programs/root-test.js
rename to packages/frontend/tests/integration/components/programs/root-test.js
diff --git a/tests/integration/components/reports/list-loading-test.js b/packages/frontend/tests/integration/components/reports/list-loading-test.js
similarity index 100%
rename from tests/integration/components/reports/list-loading-test.js
rename to packages/frontend/tests/integration/components/reports/list-loading-test.js
diff --git a/tests/integration/components/reports/list-test.js b/packages/frontend/tests/integration/components/reports/list-test.js
similarity index 100%
rename from tests/integration/components/reports/list-test.js
rename to packages/frontend/tests/integration/components/reports/list-test.js
diff --git a/tests/integration/components/reports/new-subject-test.js b/packages/frontend/tests/integration/components/reports/new-subject-test.js
similarity index 100%
rename from tests/integration/components/reports/new-subject-test.js
rename to packages/frontend/tests/integration/components/reports/new-subject-test.js
diff --git a/tests/integration/components/reports/root-test.js b/packages/frontend/tests/integration/components/reports/root-test.js
similarity index 100%
rename from tests/integration/components/reports/root-test.js
rename to packages/frontend/tests/integration/components/reports/root-test.js
diff --git a/tests/integration/components/reports/subject-results-test.js b/packages/frontend/tests/integration/components/reports/subject-results-test.js
similarity index 100%
rename from tests/integration/components/reports/subject-results-test.js
rename to packages/frontend/tests/integration/components/reports/subject-results-test.js
diff --git a/tests/integration/components/reports/subject-test.js b/packages/frontend/tests/integration/components/reports/subject-test.js
similarity index 100%
rename from tests/integration/components/reports/subject-test.js
rename to packages/frontend/tests/integration/components/reports/subject-test.js
diff --git a/tests/integration/components/reports/subject/competency-test.js b/packages/frontend/tests/integration/components/reports/subject/competency-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/competency-test.js
rename to packages/frontend/tests/integration/components/reports/subject/competency-test.js
diff --git a/tests/integration/components/reports/subject/course-test.js b/packages/frontend/tests/integration/components/reports/subject/course-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/course-test.js
rename to packages/frontend/tests/integration/components/reports/subject/course-test.js
diff --git a/tests/integration/components/reports/subject/instructor-group-test.js b/packages/frontend/tests/integration/components/reports/subject/instructor-group-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/instructor-group-test.js
rename to packages/frontend/tests/integration/components/reports/subject/instructor-group-test.js
diff --git a/tests/integration/components/reports/subject/instructor-test.js b/packages/frontend/tests/integration/components/reports/subject/instructor-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/instructor-test.js
rename to packages/frontend/tests/integration/components/reports/subject/instructor-test.js
diff --git a/tests/integration/components/reports/subject/learning-material-test.js b/packages/frontend/tests/integration/components/reports/subject/learning-material-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/learning-material-test.js
rename to packages/frontend/tests/integration/components/reports/subject/learning-material-test.js
diff --git a/tests/integration/components/reports/subject/mesh-term-test.js b/packages/frontend/tests/integration/components/reports/subject/mesh-term-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/mesh-term-test.js
rename to packages/frontend/tests/integration/components/reports/subject/mesh-term-test.js
diff --git a/tests/integration/components/reports/subject/new/competency-test.js b/packages/frontend/tests/integration/components/reports/subject/new/competency-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/competency-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/competency-test.js
diff --git a/tests/integration/components/reports/subject/new/course-test.js b/packages/frontend/tests/integration/components/reports/subject/new/course-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/course-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/course-test.js
diff --git a/tests/integration/components/reports/subject/new/instructor-group-test.js b/packages/frontend/tests/integration/components/reports/subject/new/instructor-group-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/instructor-group-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/instructor-group-test.js
diff --git a/tests/integration/components/reports/subject/new/instructor-test.js b/packages/frontend/tests/integration/components/reports/subject/new/instructor-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/instructor-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/instructor-test.js
diff --git a/tests/integration/components/reports/subject/new/learning-material-test.js b/packages/frontend/tests/integration/components/reports/subject/new/learning-material-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/learning-material-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/learning-material-test.js
diff --git a/tests/integration/components/reports/subject/new/mesh-term-test.js b/packages/frontend/tests/integration/components/reports/subject/new/mesh-term-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/mesh-term-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/mesh-term-test.js
diff --git a/tests/integration/components/reports/subject/new/program-test.js b/packages/frontend/tests/integration/components/reports/subject/new/program-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/program-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/program-test.js
diff --git a/tests/integration/components/reports/subject/new/program-year-test.js b/packages/frontend/tests/integration/components/reports/subject/new/program-year-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/program-year-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/program-year-test.js
diff --git a/tests/integration/components/reports/subject/new/search/input-test.js b/packages/frontend/tests/integration/components/reports/subject/new/search/input-test.js
similarity index 99%
rename from tests/integration/components/reports/subject/new/search/input-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/search/input-test.js
index f09e1cc228..40a20495b4 100644
--- a/tests/integration/components/reports/subject/new/search/input-test.js
+++ b/packages/frontend/tests/integration/components/reports/subject/new/search/input-test.js
@@ -52,7 +52,6 @@ module('Integration | Component | reports/subject/new/search/input', function (h
       <Reports::Subject::New::Search::Input
         @search={{this.search}}
         @searchIsIdle={{true}}
-        as |num|
       >
       </Reports::Subject::New::Search::Input>
     `);
diff --git a/tests/integration/components/reports/subject/new/session-test.js b/packages/frontend/tests/integration/components/reports/subject/new/session-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/session-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/session-test.js
diff --git a/tests/integration/components/reports/subject/new/session-type-test.js b/packages/frontend/tests/integration/components/reports/subject/new/session-type-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/session-type-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/session-type-test.js
diff --git a/tests/integration/components/reports/subject/new/term-test.js b/packages/frontend/tests/integration/components/reports/subject/new/term-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/new/term-test.js
rename to packages/frontend/tests/integration/components/reports/subject/new/term-test.js
diff --git a/tests/integration/components/reports/subject/program-test.js b/packages/frontend/tests/integration/components/reports/subject/program-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/program-test.js
rename to packages/frontend/tests/integration/components/reports/subject/program-test.js
diff --git a/tests/integration/components/reports/subject/program-year-test.js b/packages/frontend/tests/integration/components/reports/subject/program-year-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/program-year-test.js
rename to packages/frontend/tests/integration/components/reports/subject/program-year-test.js
diff --git a/tests/integration/components/reports/subject/session-test.js b/packages/frontend/tests/integration/components/reports/subject/session-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/session-test.js
rename to packages/frontend/tests/integration/components/reports/subject/session-test.js
diff --git a/tests/integration/components/reports/subject/session-type-test.js b/packages/frontend/tests/integration/components/reports/subject/session-type-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/session-type-test.js
rename to packages/frontend/tests/integration/components/reports/subject/session-type-test.js
diff --git a/tests/integration/components/reports/subject/term-test.js b/packages/frontend/tests/integration/components/reports/subject/term-test.js
similarity index 100%
rename from tests/integration/components/reports/subject/term-test.js
rename to packages/frontend/tests/integration/components/reports/subject/term-test.js
diff --git a/tests/integration/components/reports/table-row-test.js b/packages/frontend/tests/integration/components/reports/table-row-test.js
similarity index 100%
rename from tests/integration/components/reports/table-row-test.js
rename to packages/frontend/tests/integration/components/reports/table-row-test.js
diff --git a/tests/integration/components/reports/table-test.js b/packages/frontend/tests/integration/components/reports/table-test.js
similarity index 100%
rename from tests/integration/components/reports/table-test.js
rename to packages/frontend/tests/integration/components/reports/table-test.js
diff --git a/tests/integration/components/school-competencies-collapsed-test.js b/packages/frontend/tests/integration/components/school-competencies-collapsed-test.js
similarity index 100%
rename from tests/integration/components/school-competencies-collapsed-test.js
rename to packages/frontend/tests/integration/components/school-competencies-collapsed-test.js
diff --git a/tests/integration/components/school-competencies-expanded-test.js b/packages/frontend/tests/integration/components/school-competencies-expanded-test.js
similarity index 100%
rename from tests/integration/components/school-competencies-expanded-test.js
rename to packages/frontend/tests/integration/components/school-competencies-expanded-test.js
diff --git a/tests/integration/components/school-competencies-list-item-pcrs-test.js b/packages/frontend/tests/integration/components/school-competencies-list-item-pcrs-test.js
similarity index 100%
rename from tests/integration/components/school-competencies-list-item-pcrs-test.js
rename to packages/frontend/tests/integration/components/school-competencies-list-item-pcrs-test.js
diff --git a/tests/integration/components/school-competencies-list-item-test.js b/packages/frontend/tests/integration/components/school-competencies-list-item-test.js
similarity index 100%
rename from tests/integration/components/school-competencies-list-item-test.js
rename to packages/frontend/tests/integration/components/school-competencies-list-item-test.js
diff --git a/tests/integration/components/school-competencies-list-test.js b/packages/frontend/tests/integration/components/school-competencies-list-test.js
similarity index 100%
rename from tests/integration/components/school-competencies-list-test.js
rename to packages/frontend/tests/integration/components/school-competencies-list-test.js
diff --git a/tests/integration/components/school-competencies-manager-test.js b/packages/frontend/tests/integration/components/school-competencies-manager-test.js
similarity index 100%
rename from tests/integration/components/school-competencies-manager-test.js
rename to packages/frontend/tests/integration/components/school-competencies-manager-test.js
diff --git a/tests/integration/components/school-competencies-pcrs-mapper-test.js b/packages/frontend/tests/integration/components/school-competencies-pcrs-mapper-test.js
similarity index 100%
rename from tests/integration/components/school-competencies-pcrs-mapper-test.js
rename to packages/frontend/tests/integration/components/school-competencies-pcrs-mapper-test.js
diff --git a/tests/integration/components/school-curriculum-inventory-institution-details-test.js b/packages/frontend/tests/integration/components/school-curriculum-inventory-institution-details-test.js
similarity index 100%
rename from tests/integration/components/school-curriculum-inventory-institution-details-test.js
rename to packages/frontend/tests/integration/components/school-curriculum-inventory-institution-details-test.js
diff --git a/tests/integration/components/school-curriculum-inventory-institution-manager-test.js b/packages/frontend/tests/integration/components/school-curriculum-inventory-institution-manager-test.js
similarity index 100%
rename from tests/integration/components/school-curriculum-inventory-institution-manager-test.js
rename to packages/frontend/tests/integration/components/school-curriculum-inventory-institution-manager-test.js
diff --git a/tests/integration/components/school-leadership-expanded-test.js b/packages/frontend/tests/integration/components/school-leadership-expanded-test.js
similarity index 100%
rename from tests/integration/components/school-leadership-expanded-test.js
rename to packages/frontend/tests/integration/components/school-leadership-expanded-test.js
diff --git a/tests/integration/components/school-list-test.js b/packages/frontend/tests/integration/components/school-list-test.js
similarity index 100%
rename from tests/integration/components/school-list-test.js
rename to packages/frontend/tests/integration/components/school-list-test.js
diff --git a/tests/integration/components/school-manager-test.js b/packages/frontend/tests/integration/components/school-manager-test.js
similarity index 100%
rename from tests/integration/components/school-manager-test.js
rename to packages/frontend/tests/integration/components/school-manager-test.js
diff --git a/tests/integration/components/school-new-vocabulary-form-test.js b/packages/frontend/tests/integration/components/school-new-vocabulary-form-test.js
similarity index 100%
rename from tests/integration/components/school-new-vocabulary-form-test.js
rename to packages/frontend/tests/integration/components/school-new-vocabulary-form-test.js
diff --git a/tests/integration/components/school-session-attributes-collapsed-test.js b/packages/frontend/tests/integration/components/school-session-attributes-collapsed-test.js
similarity index 100%
rename from tests/integration/components/school-session-attributes-collapsed-test.js
rename to packages/frontend/tests/integration/components/school-session-attributes-collapsed-test.js
diff --git a/tests/integration/components/school-session-attributes-expanded-test.js b/packages/frontend/tests/integration/components/school-session-attributes-expanded-test.js
similarity index 100%
rename from tests/integration/components/school-session-attributes-expanded-test.js
rename to packages/frontend/tests/integration/components/school-session-attributes-expanded-test.js
diff --git a/tests/integration/components/school-session-attributes-manager-test.js b/packages/frontend/tests/integration/components/school-session-attributes-manager-test.js
similarity index 100%
rename from tests/integration/components/school-session-attributes-manager-test.js
rename to packages/frontend/tests/integration/components/school-session-attributes-manager-test.js
diff --git a/tests/integration/components/school-session-attributes-test.js b/packages/frontend/tests/integration/components/school-session-attributes-test.js
similarity index 100%
rename from tests/integration/components/school-session-attributes-test.js
rename to packages/frontend/tests/integration/components/school-session-attributes-test.js
diff --git a/tests/integration/components/school-session-type-form-test.js b/packages/frontend/tests/integration/components/school-session-type-form-test.js
similarity index 100%
rename from tests/integration/components/school-session-type-form-test.js
rename to packages/frontend/tests/integration/components/school-session-type-form-test.js
diff --git a/tests/integration/components/school-session-type-manager-test.js b/packages/frontend/tests/integration/components/school-session-type-manager-test.js
similarity index 100%
rename from tests/integration/components/school-session-type-manager-test.js
rename to packages/frontend/tests/integration/components/school-session-type-manager-test.js
diff --git a/tests/integration/components/school-session-types-collapsed-test.js b/packages/frontend/tests/integration/components/school-session-types-collapsed-test.js
similarity index 100%
rename from tests/integration/components/school-session-types-collapsed-test.js
rename to packages/frontend/tests/integration/components/school-session-types-collapsed-test.js
diff --git a/tests/integration/components/school-session-types-expanded-test.js b/packages/frontend/tests/integration/components/school-session-types-expanded-test.js
similarity index 100%
rename from tests/integration/components/school-session-types-expanded-test.js
rename to packages/frontend/tests/integration/components/school-session-types-expanded-test.js
diff --git a/tests/integration/components/school-session-types-list-item-test.js b/packages/frontend/tests/integration/components/school-session-types-list-item-test.js
similarity index 100%
rename from tests/integration/components/school-session-types-list-item-test.js
rename to packages/frontend/tests/integration/components/school-session-types-list-item-test.js
diff --git a/tests/integration/components/school-session-types-list-test.js b/packages/frontend/tests/integration/components/school-session-types-list-test.js
similarity index 100%
rename from tests/integration/components/school-session-types-list-test.js
rename to packages/frontend/tests/integration/components/school-session-types-list-test.js
diff --git a/tests/integration/components/school-vocabularies-collapsed-test.js b/packages/frontend/tests/integration/components/school-vocabularies-collapsed-test.js
similarity index 100%
rename from tests/integration/components/school-vocabularies-collapsed-test.js
rename to packages/frontend/tests/integration/components/school-vocabularies-collapsed-test.js
diff --git a/tests/integration/components/school-vocabularies-expanded-test.js b/packages/frontend/tests/integration/components/school-vocabularies-expanded-test.js
similarity index 100%
rename from tests/integration/components/school-vocabularies-expanded-test.js
rename to packages/frontend/tests/integration/components/school-vocabularies-expanded-test.js
diff --git a/tests/integration/components/school-vocabularies-list-test.js b/packages/frontend/tests/integration/components/school-vocabularies-list-test.js
similarity index 100%
rename from tests/integration/components/school-vocabularies-list-test.js
rename to packages/frontend/tests/integration/components/school-vocabularies-list-test.js
diff --git a/tests/integration/components/school-vocabulary-manager-test.js b/packages/frontend/tests/integration/components/school-vocabulary-manager-test.js
similarity index 100%
rename from tests/integration/components/school-vocabulary-manager-test.js
rename to packages/frontend/tests/integration/components/school-vocabulary-manager-test.js
diff --git a/tests/integration/components/school-vocabulary-new-term-test.js b/packages/frontend/tests/integration/components/school-vocabulary-new-term-test.js
similarity index 100%
rename from tests/integration/components/school-vocabulary-new-term-test.js
rename to packages/frontend/tests/integration/components/school-vocabulary-new-term-test.js
diff --git a/tests/integration/components/school-vocabulary-term-manager-test.js b/packages/frontend/tests/integration/components/school-vocabulary-term-manager-test.js
similarity index 100%
rename from tests/integration/components/school-vocabulary-term-manager-test.js
rename to packages/frontend/tests/integration/components/school-vocabulary-term-manager-test.js
diff --git a/tests/integration/components/school/session-type-visualize-vocabularies-test.js b/packages/frontend/tests/integration/components/school/session-type-visualize-vocabularies-test.js
similarity index 100%
rename from tests/integration/components/school/session-type-visualize-vocabularies-test.js
rename to packages/frontend/tests/integration/components/school/session-type-visualize-vocabularies-test.js
diff --git a/tests/integration/components/school/session-type-visualize-vocabulary-test.js b/packages/frontend/tests/integration/components/school/session-type-visualize-vocabulary-test.js
similarity index 100%
rename from tests/integration/components/school/session-type-visualize-vocabulary-test.js
rename to packages/frontend/tests/integration/components/school/session-type-visualize-vocabulary-test.js
diff --git a/tests/integration/components/school/visualizer-session-type-vocabularies-test.js b/packages/frontend/tests/integration/components/school/visualizer-session-type-vocabularies-test.js
similarity index 100%
rename from tests/integration/components/school/visualizer-session-type-vocabularies-test.js
rename to packages/frontend/tests/integration/components/school/visualizer-session-type-vocabularies-test.js
diff --git a/tests/integration/components/school/visualizer-session-type-vocabulary-test.js b/packages/frontend/tests/integration/components/school/visualizer-session-type-vocabulary-test.js
similarity index 100%
rename from tests/integration/components/school/visualizer-session-type-vocabulary-test.js
rename to packages/frontend/tests/integration/components/school/visualizer-session-type-vocabulary-test.js
diff --git a/tests/integration/components/unassigned-students-summary-test.js b/packages/frontend/tests/integration/components/unassigned-students-summary-test.js
similarity index 100%
rename from tests/integration/components/unassigned-students-summary-test.js
rename to packages/frontend/tests/integration/components/unassigned-students-summary-test.js
diff --git a/tests/integration/components/update-notification-test.js b/packages/frontend/tests/integration/components/update-notification-test.js
similarity index 100%
rename from tests/integration/components/update-notification-test.js
rename to packages/frontend/tests/integration/components/update-notification-test.js
diff --git a/tests/integration/components/user-list-test.js b/packages/frontend/tests/integration/components/user-list-test.js
similarity index 100%
rename from tests/integration/components/user-list-test.js
rename to packages/frontend/tests/integration/components/user-list-test.js
diff --git a/tests/integration/components/user-menu-test.js b/packages/frontend/tests/integration/components/user-menu-test.js
similarity index 100%
rename from tests/integration/components/user-menu-test.js
rename to packages/frontend/tests/integration/components/user-menu-test.js
diff --git a/tests/integration/components/user-profile-bio-test.js b/packages/frontend/tests/integration/components/user-profile-bio-test.js
similarity index 100%
rename from tests/integration/components/user-profile-bio-test.js
rename to packages/frontend/tests/integration/components/user-profile-bio-test.js
diff --git a/tests/integration/components/user-profile-calendar-test.js b/packages/frontend/tests/integration/components/user-profile-calendar-test.js
similarity index 100%
rename from tests/integration/components/user-profile-calendar-test.js
rename to packages/frontend/tests/integration/components/user-profile-calendar-test.js
diff --git a/tests/integration/components/user-profile-cohorts-details-test.js b/packages/frontend/tests/integration/components/user-profile-cohorts-details-test.js
similarity index 100%
rename from tests/integration/components/user-profile-cohorts-details-test.js
rename to packages/frontend/tests/integration/components/user-profile-cohorts-details-test.js
diff --git a/tests/integration/components/user-profile-cohorts-manager-test.js b/packages/frontend/tests/integration/components/user-profile-cohorts-manager-test.js
similarity index 100%
rename from tests/integration/components/user-profile-cohorts-manager-test.js
rename to packages/frontend/tests/integration/components/user-profile-cohorts-manager-test.js
diff --git a/tests/integration/components/user-profile-cohorts-test.js b/packages/frontend/tests/integration/components/user-profile-cohorts-test.js
similarity index 100%
rename from tests/integration/components/user-profile-cohorts-test.js
rename to packages/frontend/tests/integration/components/user-profile-cohorts-test.js
diff --git a/tests/integration/components/user-profile-ics-test.js b/packages/frontend/tests/integration/components/user-profile-ics-test.js
similarity index 100%
rename from tests/integration/components/user-profile-ics-test.js
rename to packages/frontend/tests/integration/components/user-profile-ics-test.js
diff --git a/tests/integration/components/user-profile-permissions-test.js b/packages/frontend/tests/integration/components/user-profile-permissions-test.js
similarity index 100%
rename from tests/integration/components/user-profile-permissions-test.js
rename to packages/frontend/tests/integration/components/user-profile-permissions-test.js
diff --git a/tests/integration/components/user-profile-roles-test.js b/packages/frontend/tests/integration/components/user-profile-roles-test.js
similarity index 100%
rename from tests/integration/components/user-profile-roles-test.js
rename to packages/frontend/tests/integration/components/user-profile-roles-test.js
diff --git a/tests/integration/components/user-profile-test.js b/packages/frontend/tests/integration/components/user-profile-test.js
similarity index 100%
rename from tests/integration/components/user-profile-test.js
rename to packages/frontend/tests/integration/components/user-profile-test.js
diff --git a/tests/integration/components/user-profile/learner-group-test.js b/packages/frontend/tests/integration/components/user-profile/learner-group-test.js
similarity index 100%
rename from tests/integration/components/user-profile/learner-group-test.js
rename to packages/frontend/tests/integration/components/user-profile/learner-group-test.js
diff --git a/tests/integration/components/user-profile/learner-groups-test.js b/packages/frontend/tests/integration/components/user-profile/learner-groups-test.js
similarity index 100%
rename from tests/integration/components/user-profile/learner-groups-test.js
rename to packages/frontend/tests/integration/components/user-profile/learner-groups-test.js
diff --git a/tests/integration/components/visualizer-program-year-objectives-test.js b/packages/frontend/tests/integration/components/visualizer-program-year-objectives-test.js
similarity index 100%
rename from tests/integration/components/visualizer-program-year-objectives-test.js
rename to packages/frontend/tests/integration/components/visualizer-program-year-objectives-test.js
diff --git a/tests/integration/components/yes-no-test.js b/packages/frontend/tests/integration/components/yes-no-test.js
similarity index 100%
rename from tests/integration/components/yes-no-test.js
rename to packages/frontend/tests/integration/components/yes-no-test.js
diff --git a/tests/integration/helpers/pcrs-uri-to-number-test.js b/packages/frontend/tests/integration/helpers/pcrs-uri-to-number-test.js
similarity index 100%
rename from tests/integration/helpers/pcrs-uri-to-number-test.js
rename to packages/frontend/tests/integration/helpers/pcrs-uri-to-number-test.js
diff --git a/tests/pages/assign-students.js b/packages/frontend/tests/pages/assign-students.js
similarity index 100%
rename from tests/pages/assign-students.js
rename to packages/frontend/tests/pages/assign-students.js
diff --git a/tests/pages/components/assign-students.js b/packages/frontend/tests/pages/components/assign-students.js
similarity index 100%
rename from tests/pages/components/assign-students.js
rename to packages/frontend/tests/pages/components/assign-students.js
diff --git a/tests/pages/components/back-to-admin-dashboard.js b/packages/frontend/tests/pages/components/back-to-admin-dashboard.js
similarity index 100%
rename from tests/pages/components/back-to-admin-dashboard.js
rename to packages/frontend/tests/pages/components/back-to-admin-dashboard.js
diff --git a/tests/pages/components/competency-title-editor.js b/packages/frontend/tests/pages/components/competency-title-editor.js
similarity index 100%
rename from tests/pages/components/competency-title-editor.js
rename to packages/frontend/tests/pages/components/competency-title-editor.js
diff --git a/tests/pages/components/course-search-result.js b/packages/frontend/tests/pages/components/course-search-result.js
similarity index 100%
rename from tests/pages/components/course-search-result.js
rename to packages/frontend/tests/pages/components/course-search-result.js
diff --git a/tests/pages/components/courses/list-item.js b/packages/frontend/tests/pages/components/courses/list-item.js
similarity index 100%
rename from tests/pages/components/courses/list-item.js
rename to packages/frontend/tests/pages/components/courses/list-item.js
diff --git a/tests/pages/components/courses/list.js b/packages/frontend/tests/pages/components/courses/list.js
similarity index 100%
rename from tests/pages/components/courses/list.js
rename to packages/frontend/tests/pages/components/courses/list.js
diff --git a/tests/pages/components/courses/new.js b/packages/frontend/tests/pages/components/courses/new.js
similarity index 100%
rename from tests/pages/components/courses/new.js
rename to packages/frontend/tests/pages/components/courses/new.js
diff --git a/tests/pages/components/courses/root.js b/packages/frontend/tests/pages/components/courses/root.js
similarity index 100%
rename from tests/pages/components/courses/root.js
rename to packages/frontend/tests/pages/components/courses/root.js
diff --git a/tests/pages/components/curriculum-inventory/leadership-collapsed.js b/packages/frontend/tests/pages/components/curriculum-inventory/leadership-collapsed.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/leadership-collapsed.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/leadership-collapsed.js
diff --git a/tests/pages/components/curriculum-inventory/leadership-expanded.js b/packages/frontend/tests/pages/components/curriculum-inventory/leadership-expanded.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/leadership-expanded.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/leadership-expanded.js
diff --git a/tests/pages/components/curriculum-inventory/new-report.js b/packages/frontend/tests/pages/components/curriculum-inventory/new-report.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/new-report.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/new-report.js
diff --git a/tests/pages/components/curriculum-inventory/new-sequence-block.js b/packages/frontend/tests/pages/components/curriculum-inventory/new-sequence-block.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/new-sequence-block.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/new-sequence-block.js
diff --git a/tests/pages/components/curriculum-inventory/report-details.js b/packages/frontend/tests/pages/components/curriculum-inventory/report-details.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/report-details.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/report-details.js
diff --git a/tests/pages/components/curriculum-inventory/report-header.js b/packages/frontend/tests/pages/components/curriculum-inventory/report-header.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/report-header.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/report-header.js
diff --git a/tests/pages/components/curriculum-inventory/report-list-item.js b/packages/frontend/tests/pages/components/curriculum-inventory/report-list-item.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/report-list-item.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/report-list-item.js
diff --git a/tests/pages/components/curriculum-inventory/report-list.js b/packages/frontend/tests/pages/components/curriculum-inventory/report-list.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/report-list.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/report-list.js
diff --git a/tests/pages/components/curriculum-inventory/report-overview.js b/packages/frontend/tests/pages/components/curriculum-inventory/report-overview.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/report-overview.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/report-overview.js
diff --git a/tests/pages/components/curriculum-inventory/report-rollover.js b/packages/frontend/tests/pages/components/curriculum-inventory/report-rollover.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/report-rollover.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/report-rollover.js
diff --git a/tests/pages/components/curriculum-inventory/reports.js b/packages/frontend/tests/pages/components/curriculum-inventory/reports.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/reports.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/reports.js
diff --git a/tests/pages/components/curriculum-inventory/sequence-block-details.js b/packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-details.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/sequence-block-details.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-details.js
diff --git a/tests/pages/components/curriculum-inventory/sequence-block-header.js b/packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-header.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/sequence-block-header.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-header.js
diff --git a/tests/pages/components/curriculum-inventory/sequence-block-list-item.js b/packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-list-item.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/sequence-block-list-item.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-list-item.js
diff --git a/tests/pages/components/curriculum-inventory/sequence-block-list.js b/packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-list.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/sequence-block-list.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-list.js
diff --git a/tests/pages/components/curriculum-inventory/sequence-block-overview.js b/packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-overview.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/sequence-block-overview.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-overview.js
diff --git a/tests/pages/components/curriculum-inventory/sequence-block-session-list.js b/packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-session-list.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/sequence-block-session-list.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-session-list.js
diff --git a/tests/pages/components/curriculum-inventory/sequence-block-session-manager.js b/packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-session-manager.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/sequence-block-session-manager.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/sequence-block-session-manager.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-header.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-header.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-header.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-header.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table1.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table1.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table1.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table1.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table2.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table2.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table2.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table2.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table3a.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table3a.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table3a.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table3a.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table3b.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table3b.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table3b.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table3b.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table4.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table4.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table4.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table4.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table5.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table5.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table5.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table5.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table6.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table6.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table6.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table6.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table7.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table7.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table7.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table7.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview-table8.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table8.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview-table8.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview-table8.js
diff --git a/tests/pages/components/curriculum-inventory/verification-preview.js b/packages/frontend/tests/pages/components/curriculum-inventory/verification-preview.js
similarity index 100%
rename from tests/pages/components/curriculum-inventory/verification-preview.js
rename to packages/frontend/tests/pages/components/curriculum-inventory/verification-preview.js
diff --git a/tests/pages/components/flash-messages.js b/packages/frontend/tests/pages/components/flash-messages.js
similarity index 100%
rename from tests/pages/components/flash-messages.js
rename to packages/frontend/tests/pages/components/flash-messages.js
diff --git a/tests/pages/components/global-search-box.js b/packages/frontend/tests/pages/components/global-search-box.js
similarity index 100%
rename from tests/pages/components/global-search-box.js
rename to packages/frontend/tests/pages/components/global-search-box.js
diff --git a/tests/pages/components/global-search-tags.js b/packages/frontend/tests/pages/components/global-search-tags.js
similarity index 100%
rename from tests/pages/components/global-search-tags.js
rename to packages/frontend/tests/pages/components/global-search-tags.js
diff --git a/tests/pages/components/global-search.js b/packages/frontend/tests/pages/components/global-search.js
similarity index 100%
rename from tests/pages/components/global-search.js
rename to packages/frontend/tests/pages/components/global-search.js
diff --git a/tests/pages/components/ilios-header.js b/packages/frontend/tests/pages/components/ilios-header.js
similarity index 100%
rename from tests/pages/components/ilios-header.js
rename to packages/frontend/tests/pages/components/ilios-header.js
diff --git a/tests/pages/components/ilios-navigation.js b/packages/frontend/tests/pages/components/ilios-navigation.js
similarity index 100%
rename from tests/pages/components/ilios-navigation.js
rename to packages/frontend/tests/pages/components/ilios-navigation.js
diff --git a/tests/pages/components/ilios-users.js b/packages/frontend/tests/pages/components/ilios-users.js
similarity index 100%
rename from tests/pages/components/ilios-users.js
rename to packages/frontend/tests/pages/components/ilios-users.js
diff --git a/tests/pages/components/instructor-group/courses.js b/packages/frontend/tests/pages/components/instructor-group/courses.js
similarity index 100%
rename from tests/pages/components/instructor-group/courses.js
rename to packages/frontend/tests/pages/components/instructor-group/courses.js
diff --git a/tests/pages/components/instructor-group/header.js b/packages/frontend/tests/pages/components/instructor-group/header.js
similarity index 100%
rename from tests/pages/components/instructor-group/header.js
rename to packages/frontend/tests/pages/components/instructor-group/header.js
diff --git a/tests/pages/components/instructor-group/instructor-manager.js b/packages/frontend/tests/pages/components/instructor-group/instructor-manager.js
similarity index 100%
rename from tests/pages/components/instructor-group/instructor-manager.js
rename to packages/frontend/tests/pages/components/instructor-group/instructor-manager.js
diff --git a/tests/pages/components/instructor-group/root.js b/packages/frontend/tests/pages/components/instructor-group/root.js
similarity index 100%
rename from tests/pages/components/instructor-group/root.js
rename to packages/frontend/tests/pages/components/instructor-group/root.js
diff --git a/tests/pages/components/instructor-group/users.js b/packages/frontend/tests/pages/components/instructor-group/users.js
similarity index 100%
rename from tests/pages/components/instructor-group/users.js
rename to packages/frontend/tests/pages/components/instructor-group/users.js
diff --git a/tests/pages/components/instructor-groups/list-item.js b/packages/frontend/tests/pages/components/instructor-groups/list-item.js
similarity index 100%
rename from tests/pages/components/instructor-groups/list-item.js
rename to packages/frontend/tests/pages/components/instructor-groups/list-item.js
diff --git a/tests/pages/components/instructor-groups/list.js b/packages/frontend/tests/pages/components/instructor-groups/list.js
similarity index 100%
rename from tests/pages/components/instructor-groups/list.js
rename to packages/frontend/tests/pages/components/instructor-groups/list.js
diff --git a/tests/pages/components/instructor-groups/new.js b/packages/frontend/tests/pages/components/instructor-groups/new.js
similarity index 100%
rename from tests/pages/components/instructor-groups/new.js
rename to packages/frontend/tests/pages/components/instructor-groups/new.js
diff --git a/tests/pages/components/instructor-groups/root.js b/packages/frontend/tests/pages/components/instructor-groups/root.js
similarity index 100%
rename from tests/pages/components/instructor-groups/root.js
rename to packages/frontend/tests/pages/components/instructor-groups/root.js
diff --git a/tests/pages/components/learner-group/bulk-assignment.js b/packages/frontend/tests/pages/components/learner-group/bulk-assignment.js
similarity index 100%
rename from tests/pages/components/learner-group/bulk-assignment.js
rename to packages/frontend/tests/pages/components/learner-group/bulk-assignment.js
diff --git a/tests/pages/components/learner-group/calendar.js b/packages/frontend/tests/pages/components/learner-group/calendar.js
similarity index 100%
rename from tests/pages/components/learner-group/calendar.js
rename to packages/frontend/tests/pages/components/learner-group/calendar.js
diff --git a/tests/pages/components/learner-group/cohort-user-manager.js b/packages/frontend/tests/pages/components/learner-group/cohort-user-manager.js
similarity index 100%
rename from tests/pages/components/learner-group/cohort-user-manager.js
rename to packages/frontend/tests/pages/components/learner-group/cohort-user-manager.js
diff --git a/tests/pages/components/learner-group/header.js b/packages/frontend/tests/pages/components/learner-group/header.js
similarity index 100%
rename from tests/pages/components/learner-group/header.js
rename to packages/frontend/tests/pages/components/learner-group/header.js
diff --git a/tests/pages/components/learner-group/instructor-group-members-list.js b/packages/frontend/tests/pages/components/learner-group/instructor-group-members-list.js
similarity index 100%
rename from tests/pages/components/learner-group/instructor-group-members-list.js
rename to packages/frontend/tests/pages/components/learner-group/instructor-group-members-list.js
diff --git a/tests/pages/components/learner-group/instructor-manager.js b/packages/frontend/tests/pages/components/learner-group/instructor-manager.js
similarity index 100%
rename from tests/pages/components/learner-group/instructor-manager.js
rename to packages/frontend/tests/pages/components/learner-group/instructor-manager.js
diff --git a/tests/pages/components/learner-group/list-item.js b/packages/frontend/tests/pages/components/learner-group/list-item.js
similarity index 100%
rename from tests/pages/components/learner-group/list-item.js
rename to packages/frontend/tests/pages/components/learner-group/list-item.js
diff --git a/tests/pages/components/learner-group/list.js b/packages/frontend/tests/pages/components/learner-group/list.js
similarity index 100%
rename from tests/pages/components/learner-group/list.js
rename to packages/frontend/tests/pages/components/learner-group/list.js
diff --git a/tests/pages/components/learner-group/members.js b/packages/frontend/tests/pages/components/learner-group/members.js
similarity index 100%
rename from tests/pages/components/learner-group/members.js
rename to packages/frontend/tests/pages/components/learner-group/members.js
diff --git a/tests/pages/components/learner-group/new-multiple.js b/packages/frontend/tests/pages/components/learner-group/new-multiple.js
similarity index 100%
rename from tests/pages/components/learner-group/new-multiple.js
rename to packages/frontend/tests/pages/components/learner-group/new-multiple.js
diff --git a/tests/pages/components/learner-group/new-single.js b/packages/frontend/tests/pages/components/learner-group/new-single.js
similarity index 100%
rename from tests/pages/components/learner-group/new-single.js
rename to packages/frontend/tests/pages/components/learner-group/new-single.js
diff --git a/tests/pages/components/learner-group/new.js b/packages/frontend/tests/pages/components/learner-group/new.js
similarity index 100%
rename from tests/pages/components/learner-group/new.js
rename to packages/frontend/tests/pages/components/learner-group/new.js
diff --git a/tests/pages/components/learner-group/root.js b/packages/frontend/tests/pages/components/learner-group/root.js
similarity index 100%
rename from tests/pages/components/learner-group/root.js
rename to packages/frontend/tests/pages/components/learner-group/root.js
diff --git a/tests/pages/components/learner-group/user-manager.js b/packages/frontend/tests/pages/components/learner-group/user-manager.js
similarity index 100%
rename from tests/pages/components/learner-group/user-manager.js
rename to packages/frontend/tests/pages/components/learner-group/user-manager.js
diff --git a/tests/pages/components/learner-groups/root.js b/packages/frontend/tests/pages/components/learner-groups/root.js
similarity index 100%
rename from tests/pages/components/learner-groups/root.js
rename to packages/frontend/tests/pages/components/learner-groups/root.js
diff --git a/tests/pages/components/locale-chooser.js b/packages/frontend/tests/pages/components/locale-chooser.js
similarity index 100%
rename from tests/pages/components/locale-chooser.js
rename to packages/frontend/tests/pages/components/locale-chooser.js
diff --git a/tests/pages/components/login-form.js b/packages/frontend/tests/pages/components/login-form.js
similarity index 100%
rename from tests/pages/components/login-form.js
rename to packages/frontend/tests/pages/components/login-form.js
diff --git a/tests/pages/components/my-profile.js b/packages/frontend/tests/pages/components/my-profile.js
similarity index 100%
rename from tests/pages/components/my-profile.js
rename to packages/frontend/tests/pages/components/my-profile.js
diff --git a/tests/pages/components/new-competency.js b/packages/frontend/tests/pages/components/new-competency.js
similarity index 100%
rename from tests/pages/components/new-competency.js
rename to packages/frontend/tests/pages/components/new-competency.js
diff --git a/tests/pages/components/new-directory-user.js b/packages/frontend/tests/pages/components/new-directory-user.js
similarity index 100%
rename from tests/pages/components/new-directory-user.js
rename to packages/frontend/tests/pages/components/new-directory-user.js
diff --git a/tests/pages/components/new-user.js b/packages/frontend/tests/pages/components/new-user.js
similarity index 100%
rename from tests/pages/components/new-user.js
rename to packages/frontend/tests/pages/components/new-user.js
diff --git a/tests/pages/components/pagination-links.js b/packages/frontend/tests/pages/components/pagination-links.js
similarity index 100%
rename from tests/pages/components/pagination-links.js
rename to packages/frontend/tests/pages/components/pagination-links.js
diff --git a/tests/pages/components/pending-single-user-update.js b/packages/frontend/tests/pages/components/pending-single-user-update.js
similarity index 100%
rename from tests/pages/components/pending-single-user-update.js
rename to packages/frontend/tests/pages/components/pending-single-user-update.js
diff --git a/tests/pages/components/pending-updates-summary.js b/packages/frontend/tests/pages/components/pending-updates-summary.js
similarity index 100%
rename from tests/pages/components/pending-updates-summary.js
rename to packages/frontend/tests/pages/components/pending-updates-summary.js
diff --git a/tests/pages/components/program-year/collapsed-objectives.js b/packages/frontend/tests/pages/components/program-year/collapsed-objectives.js
similarity index 100%
rename from tests/pages/components/program-year/collapsed-objectives.js
rename to packages/frontend/tests/pages/components/program-year/collapsed-objectives.js
diff --git a/tests/pages/components/program-year/competencies.js b/packages/frontend/tests/pages/components/program-year/competencies.js
similarity index 100%
rename from tests/pages/components/program-year/competencies.js
rename to packages/frontend/tests/pages/components/program-year/competencies.js
diff --git a/tests/pages/components/program-year/competency-list-item.js b/packages/frontend/tests/pages/components/program-year/competency-list-item.js
similarity index 100%
rename from tests/pages/components/program-year/competency-list-item.js
rename to packages/frontend/tests/pages/components/program-year/competency-list-item.js
diff --git a/tests/pages/components/program-year/courses.js b/packages/frontend/tests/pages/components/program-year/courses.js
similarity index 100%
rename from tests/pages/components/program-year/courses.js
rename to packages/frontend/tests/pages/components/program-year/courses.js
diff --git a/tests/pages/components/program-year/details.js b/packages/frontend/tests/pages/components/program-year/details.js
similarity index 100%
rename from tests/pages/components/program-year/details.js
rename to packages/frontend/tests/pages/components/program-year/details.js
diff --git a/tests/pages/components/program-year/header.js b/packages/frontend/tests/pages/components/program-year/header.js
similarity index 100%
rename from tests/pages/components/program-year/header.js
rename to packages/frontend/tests/pages/components/program-year/header.js
diff --git a/tests/pages/components/program-year/leadership-expanded.js b/packages/frontend/tests/pages/components/program-year/leadership-expanded.js
similarity index 100%
rename from tests/pages/components/program-year/leadership-expanded.js
rename to packages/frontend/tests/pages/components/program-year/leadership-expanded.js
diff --git a/tests/pages/components/program-year/list-item.js b/packages/frontend/tests/pages/components/program-year/list-item.js
similarity index 100%
rename from tests/pages/components/program-year/list-item.js
rename to packages/frontend/tests/pages/components/program-year/list-item.js
diff --git a/tests/pages/components/program-year/list.js b/packages/frontend/tests/pages/components/program-year/list.js
similarity index 100%
rename from tests/pages/components/program-year/list.js
rename to packages/frontend/tests/pages/components/program-year/list.js
diff --git a/tests/pages/components/program-year/manage-objective-competency.js b/packages/frontend/tests/pages/components/program-year/manage-objective-competency.js
similarity index 100%
rename from tests/pages/components/program-year/manage-objective-competency.js
rename to packages/frontend/tests/pages/components/program-year/manage-objective-competency.js
diff --git a/tests/pages/components/program-year/manage-objective-descriptors.js b/packages/frontend/tests/pages/components/program-year/manage-objective-descriptors.js
similarity index 100%
rename from tests/pages/components/program-year/manage-objective-descriptors.js
rename to packages/frontend/tests/pages/components/program-year/manage-objective-descriptors.js
diff --git a/tests/pages/components/program-year/managed-competency-list-item.js b/packages/frontend/tests/pages/components/program-year/managed-competency-list-item.js
similarity index 100%
rename from tests/pages/components/program-year/managed-competency-list-item.js
rename to packages/frontend/tests/pages/components/program-year/managed-competency-list-item.js
diff --git a/tests/pages/components/program-year/new.js b/packages/frontend/tests/pages/components/program-year/new.js
similarity index 100%
rename from tests/pages/components/program-year/new.js
rename to packages/frontend/tests/pages/components/program-year/new.js
diff --git a/tests/pages/components/program-year/objective-list-item-competency.js b/packages/frontend/tests/pages/components/program-year/objective-list-item-competency.js
similarity index 100%
rename from tests/pages/components/program-year/objective-list-item-competency.js
rename to packages/frontend/tests/pages/components/program-year/objective-list-item-competency.js
diff --git a/tests/pages/components/program-year/objective-list-item-descriptors.js b/packages/frontend/tests/pages/components/program-year/objective-list-item-descriptors.js
similarity index 100%
rename from tests/pages/components/program-year/objective-list-item-descriptors.js
rename to packages/frontend/tests/pages/components/program-year/objective-list-item-descriptors.js
diff --git a/tests/pages/components/program-year/objective-list-item-expanded.js b/packages/frontend/tests/pages/components/program-year/objective-list-item-expanded.js
similarity index 100%
rename from tests/pages/components/program-year/objective-list-item-expanded.js
rename to packages/frontend/tests/pages/components/program-year/objective-list-item-expanded.js
diff --git a/tests/pages/components/program-year/objective-list-item.js b/packages/frontend/tests/pages/components/program-year/objective-list-item.js
similarity index 100%
rename from tests/pages/components/program-year/objective-list-item.js
rename to packages/frontend/tests/pages/components/program-year/objective-list-item.js
diff --git a/tests/pages/components/program-year/objective-list.js b/packages/frontend/tests/pages/components/program-year/objective-list.js
similarity index 100%
rename from tests/pages/components/program-year/objective-list.js
rename to packages/frontend/tests/pages/components/program-year/objective-list.js
diff --git a/tests/pages/components/program-year/objectives.js b/packages/frontend/tests/pages/components/program-year/objectives.js
similarity index 100%
rename from tests/pages/components/program-year/objectives.js
rename to packages/frontend/tests/pages/components/program-year/objectives.js
diff --git a/tests/pages/components/program-year/overview.js b/packages/frontend/tests/pages/components/program-year/overview.js
similarity index 100%
rename from tests/pages/components/program-year/overview.js
rename to packages/frontend/tests/pages/components/program-year/overview.js
diff --git a/tests/pages/components/program-year/visualize-objectives.js b/packages/frontend/tests/pages/components/program-year/visualize-objectives.js
similarity index 100%
rename from tests/pages/components/program-year/visualize-objectives.js
rename to packages/frontend/tests/pages/components/program-year/visualize-objectives.js
diff --git a/tests/pages/components/program/header.js b/packages/frontend/tests/pages/components/program/header.js
similarity index 100%
rename from tests/pages/components/program/header.js
rename to packages/frontend/tests/pages/components/program/header.js
diff --git a/tests/pages/components/program/leadership-expanded.js b/packages/frontend/tests/pages/components/program/leadership-expanded.js
similarity index 100%
rename from tests/pages/components/program/leadership-expanded.js
rename to packages/frontend/tests/pages/components/program/leadership-expanded.js
diff --git a/tests/pages/components/program/new.js b/packages/frontend/tests/pages/components/program/new.js
similarity index 100%
rename from tests/pages/components/program/new.js
rename to packages/frontend/tests/pages/components/program/new.js
diff --git a/tests/pages/components/program/overview.js b/packages/frontend/tests/pages/components/program/overview.js
similarity index 100%
rename from tests/pages/components/program/overview.js
rename to packages/frontend/tests/pages/components/program/overview.js
diff --git a/tests/pages/components/program/root.js b/packages/frontend/tests/pages/components/program/root.js
similarity index 100%
rename from tests/pages/components/program/root.js
rename to packages/frontend/tests/pages/components/program/root.js
diff --git a/tests/pages/components/programs/list-item.js b/packages/frontend/tests/pages/components/programs/list-item.js
similarity index 100%
rename from tests/pages/components/programs/list-item.js
rename to packages/frontend/tests/pages/components/programs/list-item.js
diff --git a/tests/pages/components/programs/list.js b/packages/frontend/tests/pages/components/programs/list.js
similarity index 100%
rename from tests/pages/components/programs/list.js
rename to packages/frontend/tests/pages/components/programs/list.js
diff --git a/tests/pages/components/programs/root.js b/packages/frontend/tests/pages/components/programs/root.js
similarity index 100%
rename from tests/pages/components/programs/root.js
rename to packages/frontend/tests/pages/components/programs/root.js
diff --git a/tests/pages/components/reports/list.js b/packages/frontend/tests/pages/components/reports/list.js
similarity index 100%
rename from tests/pages/components/reports/list.js
rename to packages/frontend/tests/pages/components/reports/list.js
diff --git a/tests/pages/components/reports/new-subject.js b/packages/frontend/tests/pages/components/reports/new-subject.js
similarity index 100%
rename from tests/pages/components/reports/new-subject.js
rename to packages/frontend/tests/pages/components/reports/new-subject.js
diff --git a/tests/pages/components/reports/results.js b/packages/frontend/tests/pages/components/reports/results.js
similarity index 100%
rename from tests/pages/components/reports/results.js
rename to packages/frontend/tests/pages/components/reports/results.js
diff --git a/tests/pages/components/reports/root.js b/packages/frontend/tests/pages/components/reports/root.js
similarity index 100%
rename from tests/pages/components/reports/root.js
rename to packages/frontend/tests/pages/components/reports/root.js
diff --git a/tests/pages/components/reports/run-subject.js b/packages/frontend/tests/pages/components/reports/run-subject.js
similarity index 100%
rename from tests/pages/components/reports/run-subject.js
rename to packages/frontend/tests/pages/components/reports/run-subject.js
diff --git a/tests/pages/components/reports/subject.js b/packages/frontend/tests/pages/components/reports/subject.js
similarity index 100%
rename from tests/pages/components/reports/subject.js
rename to packages/frontend/tests/pages/components/reports/subject.js
diff --git a/tests/pages/components/reports/subject/competency.js b/packages/frontend/tests/pages/components/reports/subject/competency.js
similarity index 100%
rename from tests/pages/components/reports/subject/competency.js
rename to packages/frontend/tests/pages/components/reports/subject/competency.js
diff --git a/tests/pages/components/reports/subject/course.js b/packages/frontend/tests/pages/components/reports/subject/course.js
similarity index 100%
rename from tests/pages/components/reports/subject/course.js
rename to packages/frontend/tests/pages/components/reports/subject/course.js
diff --git a/tests/pages/components/reports/subject/instructor-group.js b/packages/frontend/tests/pages/components/reports/subject/instructor-group.js
similarity index 100%
rename from tests/pages/components/reports/subject/instructor-group.js
rename to packages/frontend/tests/pages/components/reports/subject/instructor-group.js
diff --git a/tests/pages/components/reports/subject/instructor.js b/packages/frontend/tests/pages/components/reports/subject/instructor.js
similarity index 100%
rename from tests/pages/components/reports/subject/instructor.js
rename to packages/frontend/tests/pages/components/reports/subject/instructor.js
diff --git a/tests/pages/components/reports/subject/learning-material.js b/packages/frontend/tests/pages/components/reports/subject/learning-material.js
similarity index 100%
rename from tests/pages/components/reports/subject/learning-material.js
rename to packages/frontend/tests/pages/components/reports/subject/learning-material.js
diff --git a/tests/pages/components/reports/subject/mesh-term.js b/packages/frontend/tests/pages/components/reports/subject/mesh-term.js
similarity index 100%
rename from tests/pages/components/reports/subject/mesh-term.js
rename to packages/frontend/tests/pages/components/reports/subject/mesh-term.js
diff --git a/tests/pages/components/reports/subject/new/competency.js b/packages/frontend/tests/pages/components/reports/subject/new/competency.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/competency.js
rename to packages/frontend/tests/pages/components/reports/subject/new/competency.js
diff --git a/tests/pages/components/reports/subject/new/course.js b/packages/frontend/tests/pages/components/reports/subject/new/course.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/course.js
rename to packages/frontend/tests/pages/components/reports/subject/new/course.js
diff --git a/tests/pages/components/reports/subject/new/instructor-group.js b/packages/frontend/tests/pages/components/reports/subject/new/instructor-group.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/instructor-group.js
rename to packages/frontend/tests/pages/components/reports/subject/new/instructor-group.js
diff --git a/tests/pages/components/reports/subject/new/instructor.js b/packages/frontend/tests/pages/components/reports/subject/new/instructor.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/instructor.js
rename to packages/frontend/tests/pages/components/reports/subject/new/instructor.js
diff --git a/tests/pages/components/reports/subject/new/learning-material.js b/packages/frontend/tests/pages/components/reports/subject/new/learning-material.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/learning-material.js
rename to packages/frontend/tests/pages/components/reports/subject/new/learning-material.js
diff --git a/tests/pages/components/reports/subject/new/mesh-term.js b/packages/frontend/tests/pages/components/reports/subject/new/mesh-term.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/mesh-term.js
rename to packages/frontend/tests/pages/components/reports/subject/new/mesh-term.js
diff --git a/tests/pages/components/reports/subject/new/program-year.js b/packages/frontend/tests/pages/components/reports/subject/new/program-year.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/program-year.js
rename to packages/frontend/tests/pages/components/reports/subject/new/program-year.js
diff --git a/tests/pages/components/reports/subject/new/program.js b/packages/frontend/tests/pages/components/reports/subject/new/program.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/program.js
rename to packages/frontend/tests/pages/components/reports/subject/new/program.js
diff --git a/tests/pages/components/reports/subject/new/search/input.js b/packages/frontend/tests/pages/components/reports/subject/new/search/input.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/search/input.js
rename to packages/frontend/tests/pages/components/reports/subject/new/search/input.js
diff --git a/tests/pages/components/reports/subject/new/session-type.js b/packages/frontend/tests/pages/components/reports/subject/new/session-type.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/session-type.js
rename to packages/frontend/tests/pages/components/reports/subject/new/session-type.js
diff --git a/tests/pages/components/reports/subject/new/session.js b/packages/frontend/tests/pages/components/reports/subject/new/session.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/session.js
rename to packages/frontend/tests/pages/components/reports/subject/new/session.js
diff --git a/tests/pages/components/reports/subject/new/term.js b/packages/frontend/tests/pages/components/reports/subject/new/term.js
similarity index 100%
rename from tests/pages/components/reports/subject/new/term.js
rename to packages/frontend/tests/pages/components/reports/subject/new/term.js
diff --git a/tests/pages/components/reports/subject/program-year.js b/packages/frontend/tests/pages/components/reports/subject/program-year.js
similarity index 100%
rename from tests/pages/components/reports/subject/program-year.js
rename to packages/frontend/tests/pages/components/reports/subject/program-year.js
diff --git a/tests/pages/components/reports/subject/program.js b/packages/frontend/tests/pages/components/reports/subject/program.js
similarity index 100%
rename from tests/pages/components/reports/subject/program.js
rename to packages/frontend/tests/pages/components/reports/subject/program.js
diff --git a/tests/pages/components/reports/subject/session-type.js b/packages/frontend/tests/pages/components/reports/subject/session-type.js
similarity index 100%
rename from tests/pages/components/reports/subject/session-type.js
rename to packages/frontend/tests/pages/components/reports/subject/session-type.js
diff --git a/tests/pages/components/reports/subject/session.js b/packages/frontend/tests/pages/components/reports/subject/session.js
similarity index 100%
rename from tests/pages/components/reports/subject/session.js
rename to packages/frontend/tests/pages/components/reports/subject/session.js
diff --git a/tests/pages/components/reports/subject/term.js b/packages/frontend/tests/pages/components/reports/subject/term.js
similarity index 100%
rename from tests/pages/components/reports/subject/term.js
rename to packages/frontend/tests/pages/components/reports/subject/term.js
diff --git a/tests/pages/components/reports/table-row.js b/packages/frontend/tests/pages/components/reports/table-row.js
similarity index 100%
rename from tests/pages/components/reports/table-row.js
rename to packages/frontend/tests/pages/components/reports/table-row.js
diff --git a/tests/pages/components/reports/table.js b/packages/frontend/tests/pages/components/reports/table.js
similarity index 100%
rename from tests/pages/components/reports/table.js
rename to packages/frontend/tests/pages/components/reports/table.js
diff --git a/tests/pages/components/school-competencies-collapsed.js b/packages/frontend/tests/pages/components/school-competencies-collapsed.js
similarity index 100%
rename from tests/pages/components/school-competencies-collapsed.js
rename to packages/frontend/tests/pages/components/school-competencies-collapsed.js
diff --git a/tests/pages/components/school-competencies-expanded.js b/packages/frontend/tests/pages/components/school-competencies-expanded.js
similarity index 100%
rename from tests/pages/components/school-competencies-expanded.js
rename to packages/frontend/tests/pages/components/school-competencies-expanded.js
diff --git a/tests/pages/components/school-competencies-list-item-pcrs.js b/packages/frontend/tests/pages/components/school-competencies-list-item-pcrs.js
similarity index 100%
rename from tests/pages/components/school-competencies-list-item-pcrs.js
rename to packages/frontend/tests/pages/components/school-competencies-list-item-pcrs.js
diff --git a/tests/pages/components/school-competencies-list-item.js b/packages/frontend/tests/pages/components/school-competencies-list-item.js
similarity index 100%
rename from tests/pages/components/school-competencies-list-item.js
rename to packages/frontend/tests/pages/components/school-competencies-list-item.js
diff --git a/tests/pages/components/school-competencies-list.js b/packages/frontend/tests/pages/components/school-competencies-list.js
similarity index 100%
rename from tests/pages/components/school-competencies-list.js
rename to packages/frontend/tests/pages/components/school-competencies-list.js
diff --git a/tests/pages/components/school-competencies-manager.js b/packages/frontend/tests/pages/components/school-competencies-manager.js
similarity index 100%
rename from tests/pages/components/school-competencies-manager.js
rename to packages/frontend/tests/pages/components/school-competencies-manager.js
diff --git a/tests/pages/components/school-competencies-pcrs-mapper.js b/packages/frontend/tests/pages/components/school-competencies-pcrs-mapper.js
similarity index 100%
rename from tests/pages/components/school-competencies-pcrs-mapper.js
rename to packages/frontend/tests/pages/components/school-competencies-pcrs-mapper.js
diff --git a/tests/pages/components/school-curriculum-inventory-institution-details.js b/packages/frontend/tests/pages/components/school-curriculum-inventory-institution-details.js
similarity index 100%
rename from tests/pages/components/school-curriculum-inventory-institution-details.js
rename to packages/frontend/tests/pages/components/school-curriculum-inventory-institution-details.js
diff --git a/tests/pages/components/school-curriculum-inventory-institution-manager.js b/packages/frontend/tests/pages/components/school-curriculum-inventory-institution-manager.js
similarity index 100%
rename from tests/pages/components/school-curriculum-inventory-institution-manager.js
rename to packages/frontend/tests/pages/components/school-curriculum-inventory-institution-manager.js
diff --git a/tests/pages/components/school-leadership-expanded.js b/packages/frontend/tests/pages/components/school-leadership-expanded.js
similarity index 100%
rename from tests/pages/components/school-leadership-expanded.js
rename to packages/frontend/tests/pages/components/school-leadership-expanded.js
diff --git a/tests/pages/components/school-list.js b/packages/frontend/tests/pages/components/school-list.js
similarity index 100%
rename from tests/pages/components/school-list.js
rename to packages/frontend/tests/pages/components/school-list.js
diff --git a/tests/pages/components/school-manager.js b/packages/frontend/tests/pages/components/school-manager.js
similarity index 100%
rename from tests/pages/components/school-manager.js
rename to packages/frontend/tests/pages/components/school-manager.js
diff --git a/tests/pages/components/school-new-vocabulary-form.js b/packages/frontend/tests/pages/components/school-new-vocabulary-form.js
similarity index 100%
rename from tests/pages/components/school-new-vocabulary-form.js
rename to packages/frontend/tests/pages/components/school-new-vocabulary-form.js
diff --git a/tests/pages/components/school-session-attributes-collapsed.js b/packages/frontend/tests/pages/components/school-session-attributes-collapsed.js
similarity index 100%
rename from tests/pages/components/school-session-attributes-collapsed.js
rename to packages/frontend/tests/pages/components/school-session-attributes-collapsed.js
diff --git a/tests/pages/components/school-session-attributes-expanded.js b/packages/frontend/tests/pages/components/school-session-attributes-expanded.js
similarity index 100%
rename from tests/pages/components/school-session-attributes-expanded.js
rename to packages/frontend/tests/pages/components/school-session-attributes-expanded.js
diff --git a/tests/pages/components/school-session-attributes-manager.js b/packages/frontend/tests/pages/components/school-session-attributes-manager.js
similarity index 100%
rename from tests/pages/components/school-session-attributes-manager.js
rename to packages/frontend/tests/pages/components/school-session-attributes-manager.js
diff --git a/tests/pages/components/school-session-attributes.js b/packages/frontend/tests/pages/components/school-session-attributes.js
similarity index 100%
rename from tests/pages/components/school-session-attributes.js
rename to packages/frontend/tests/pages/components/school-session-attributes.js
diff --git a/tests/pages/components/school-session-type-form.js b/packages/frontend/tests/pages/components/school-session-type-form.js
similarity index 100%
rename from tests/pages/components/school-session-type-form.js
rename to packages/frontend/tests/pages/components/school-session-type-form.js
diff --git a/tests/pages/components/school-session-type-manager.js b/packages/frontend/tests/pages/components/school-session-type-manager.js
similarity index 100%
rename from tests/pages/components/school-session-type-manager.js
rename to packages/frontend/tests/pages/components/school-session-type-manager.js
diff --git a/tests/pages/components/school-session-types-collapsed.js b/packages/frontend/tests/pages/components/school-session-types-collapsed.js
similarity index 100%
rename from tests/pages/components/school-session-types-collapsed.js
rename to packages/frontend/tests/pages/components/school-session-types-collapsed.js
diff --git a/tests/pages/components/school-session-types-expanded.js b/packages/frontend/tests/pages/components/school-session-types-expanded.js
similarity index 100%
rename from tests/pages/components/school-session-types-expanded.js
rename to packages/frontend/tests/pages/components/school-session-types-expanded.js
diff --git a/tests/pages/components/school-session-types-list-item.js b/packages/frontend/tests/pages/components/school-session-types-list-item.js
similarity index 100%
rename from tests/pages/components/school-session-types-list-item.js
rename to packages/frontend/tests/pages/components/school-session-types-list-item.js
diff --git a/tests/pages/components/school-session-types-list.js b/packages/frontend/tests/pages/components/school-session-types-list.js
similarity index 100%
rename from tests/pages/components/school-session-types-list.js
rename to packages/frontend/tests/pages/components/school-session-types-list.js
diff --git a/tests/pages/components/school-vocabularies-collapsed.js b/packages/frontend/tests/pages/components/school-vocabularies-collapsed.js
similarity index 100%
rename from tests/pages/components/school-vocabularies-collapsed.js
rename to packages/frontend/tests/pages/components/school-vocabularies-collapsed.js
diff --git a/tests/pages/components/school-vocabularies-expanded.js b/packages/frontend/tests/pages/components/school-vocabularies-expanded.js
similarity index 100%
rename from tests/pages/components/school-vocabularies-expanded.js
rename to packages/frontend/tests/pages/components/school-vocabularies-expanded.js
diff --git a/tests/pages/components/school-vocabularies-list.js b/packages/frontend/tests/pages/components/school-vocabularies-list.js
similarity index 100%
rename from tests/pages/components/school-vocabularies-list.js
rename to packages/frontend/tests/pages/components/school-vocabularies-list.js
diff --git a/tests/pages/components/school-vocabulary-manager.js b/packages/frontend/tests/pages/components/school-vocabulary-manager.js
similarity index 100%
rename from tests/pages/components/school-vocabulary-manager.js
rename to packages/frontend/tests/pages/components/school-vocabulary-manager.js
diff --git a/tests/pages/components/school-vocabulary-new-term.js b/packages/frontend/tests/pages/components/school-vocabulary-new-term.js
similarity index 100%
rename from tests/pages/components/school-vocabulary-new-term.js
rename to packages/frontend/tests/pages/components/school-vocabulary-new-term.js
diff --git a/tests/pages/components/school-vocabulary-term-manager.js b/packages/frontend/tests/pages/components/school-vocabulary-term-manager.js
similarity index 100%
rename from tests/pages/components/school-vocabulary-term-manager.js
rename to packages/frontend/tests/pages/components/school-vocabulary-term-manager.js
diff --git a/tests/pages/components/school/session-type-visualize-vocabularies.js b/packages/frontend/tests/pages/components/school/session-type-visualize-vocabularies.js
similarity index 100%
rename from tests/pages/components/school/session-type-visualize-vocabularies.js
rename to packages/frontend/tests/pages/components/school/session-type-visualize-vocabularies.js
diff --git a/tests/pages/components/school/session-type-visualize-vocabulary.js b/packages/frontend/tests/pages/components/school/session-type-visualize-vocabulary.js
similarity index 100%
rename from tests/pages/components/school/session-type-visualize-vocabulary.js
rename to packages/frontend/tests/pages/components/school/session-type-visualize-vocabulary.js
diff --git a/tests/pages/components/school/visualizer-session-type-vocabularies.js b/packages/frontend/tests/pages/components/school/visualizer-session-type-vocabularies.js
similarity index 100%
rename from tests/pages/components/school/visualizer-session-type-vocabularies.js
rename to packages/frontend/tests/pages/components/school/visualizer-session-type-vocabularies.js
diff --git a/tests/pages/components/school/visualizer-session-type-vocabulary.js b/packages/frontend/tests/pages/components/school/visualizer-session-type-vocabulary.js
similarity index 100%
rename from tests/pages/components/school/visualizer-session-type-vocabulary.js
rename to packages/frontend/tests/pages/components/school/visualizer-session-type-vocabulary.js
diff --git a/tests/pages/components/unassigned-students-summary.js b/packages/frontend/tests/pages/components/unassigned-students-summary.js
similarity index 100%
rename from tests/pages/components/unassigned-students-summary.js
rename to packages/frontend/tests/pages/components/unassigned-students-summary.js
diff --git a/tests/pages/components/user-list.js b/packages/frontend/tests/pages/components/user-list.js
similarity index 100%
rename from tests/pages/components/user-list.js
rename to packages/frontend/tests/pages/components/user-list.js
diff --git a/tests/pages/components/user-menu.js b/packages/frontend/tests/pages/components/user-menu.js
similarity index 100%
rename from tests/pages/components/user-menu.js
rename to packages/frontend/tests/pages/components/user-menu.js
diff --git a/tests/pages/components/user-profile-bio.js b/packages/frontend/tests/pages/components/user-profile-bio.js
similarity index 100%
rename from tests/pages/components/user-profile-bio.js
rename to packages/frontend/tests/pages/components/user-profile-bio.js
diff --git a/tests/pages/components/user-profile-calendar.js b/packages/frontend/tests/pages/components/user-profile-calendar.js
similarity index 100%
rename from tests/pages/components/user-profile-calendar.js
rename to packages/frontend/tests/pages/components/user-profile-calendar.js
diff --git a/tests/pages/components/user-profile-cohorts-details.js b/packages/frontend/tests/pages/components/user-profile-cohorts-details.js
similarity index 100%
rename from tests/pages/components/user-profile-cohorts-details.js
rename to packages/frontend/tests/pages/components/user-profile-cohorts-details.js
diff --git a/tests/pages/components/user-profile-cohorts-manager.js b/packages/frontend/tests/pages/components/user-profile-cohorts-manager.js
similarity index 100%
rename from tests/pages/components/user-profile-cohorts-manager.js
rename to packages/frontend/tests/pages/components/user-profile-cohorts-manager.js
diff --git a/tests/pages/components/user-profile-cohorts.js b/packages/frontend/tests/pages/components/user-profile-cohorts.js
similarity index 100%
rename from tests/pages/components/user-profile-cohorts.js
rename to packages/frontend/tests/pages/components/user-profile-cohorts.js
diff --git a/tests/pages/components/user-profile-ics.js b/packages/frontend/tests/pages/components/user-profile-ics.js
similarity index 100%
rename from tests/pages/components/user-profile-ics.js
rename to packages/frontend/tests/pages/components/user-profile-ics.js
diff --git a/tests/pages/components/user-profile-permissions.js b/packages/frontend/tests/pages/components/user-profile-permissions.js
similarity index 100%
rename from tests/pages/components/user-profile-permissions.js
rename to packages/frontend/tests/pages/components/user-profile-permissions.js
diff --git a/tests/pages/components/user-profile-roles.js b/packages/frontend/tests/pages/components/user-profile-roles.js
similarity index 100%
rename from tests/pages/components/user-profile-roles.js
rename to packages/frontend/tests/pages/components/user-profile-roles.js
diff --git a/tests/pages/components/user-profile.js b/packages/frontend/tests/pages/components/user-profile.js
similarity index 100%
rename from tests/pages/components/user-profile.js
rename to packages/frontend/tests/pages/components/user-profile.js
diff --git a/tests/pages/components/user-profile/learner-groups.js b/packages/frontend/tests/pages/components/user-profile/learner-groups.js
similarity index 100%
rename from tests/pages/components/user-profile/learner-groups.js
rename to packages/frontend/tests/pages/components/user-profile/learner-groups.js
diff --git a/tests/pages/components/visualizer-program-year-objectives.js b/packages/frontend/tests/pages/components/visualizer-program-year-objectives.js
similarity index 100%
rename from tests/pages/components/visualizer-program-year-objectives.js
rename to packages/frontend/tests/pages/components/visualizer-program-year-objectives.js
diff --git a/tests/pages/components/yes-no.js b/packages/frontend/tests/pages/components/yes-no.js
similarity index 100%
rename from tests/pages/components/yes-no.js
rename to packages/frontend/tests/pages/components/yes-no.js
diff --git a/tests/pages/courses.js b/packages/frontend/tests/pages/courses.js
similarity index 100%
rename from tests/pages/courses.js
rename to packages/frontend/tests/pages/courses.js
diff --git a/tests/pages/curriculum-inventory-report-rollover.js b/packages/frontend/tests/pages/curriculum-inventory-report-rollover.js
similarity index 100%
rename from tests/pages/curriculum-inventory-report-rollover.js
rename to packages/frontend/tests/pages/curriculum-inventory-report-rollover.js
diff --git a/tests/pages/curriculum-inventory-report.js b/packages/frontend/tests/pages/curriculum-inventory-report.js
similarity index 100%
rename from tests/pages/curriculum-inventory-report.js
rename to packages/frontend/tests/pages/curriculum-inventory-report.js
diff --git a/tests/pages/curriculum-inventory-reports.js b/packages/frontend/tests/pages/curriculum-inventory-reports.js
similarity index 100%
rename from tests/pages/curriculum-inventory-reports.js
rename to packages/frontend/tests/pages/curriculum-inventory-reports.js
diff --git a/tests/pages/curriculum-inventory-sequence-block.js b/packages/frontend/tests/pages/curriculum-inventory-sequence-block.js
similarity index 100%
rename from tests/pages/curriculum-inventory-sequence-block.js
rename to packages/frontend/tests/pages/curriculum-inventory-sequence-block.js
diff --git a/tests/pages/dashboard.js b/packages/frontend/tests/pages/dashboard.js
similarity index 100%
rename from tests/pages/dashboard.js
rename to packages/frontend/tests/pages/dashboard.js
diff --git a/tests/pages/instructor-group.js b/packages/frontend/tests/pages/instructor-group.js
similarity index 100%
rename from tests/pages/instructor-group.js
rename to packages/frontend/tests/pages/instructor-group.js
diff --git a/tests/pages/instructor-groups.js b/packages/frontend/tests/pages/instructor-groups.js
similarity index 100%
rename from tests/pages/instructor-groups.js
rename to packages/frontend/tests/pages/instructor-groups.js
diff --git a/tests/pages/learner-group.js b/packages/frontend/tests/pages/learner-group.js
similarity index 100%
rename from tests/pages/learner-group.js
rename to packages/frontend/tests/pages/learner-group.js
diff --git a/tests/pages/learner-groups.js b/packages/frontend/tests/pages/learner-groups.js
similarity index 100%
rename from tests/pages/learner-groups.js
rename to packages/frontend/tests/pages/learner-groups.js
diff --git a/tests/pages/pending-user-updates.js b/packages/frontend/tests/pages/pending-user-updates.js
similarity index 100%
rename from tests/pages/pending-user-updates.js
rename to packages/frontend/tests/pages/pending-user-updates.js
diff --git a/tests/pages/program-year.js b/packages/frontend/tests/pages/program-year.js
similarity index 100%
rename from tests/pages/program-year.js
rename to packages/frontend/tests/pages/program-year.js
diff --git a/tests/pages/program.js b/packages/frontend/tests/pages/program.js
similarity index 100%
rename from tests/pages/program.js
rename to packages/frontend/tests/pages/program.js
diff --git a/tests/pages/programs.js b/packages/frontend/tests/pages/programs.js
similarity index 100%
rename from tests/pages/programs.js
rename to packages/frontend/tests/pages/programs.js
diff --git a/tests/pages/reports-subject.js b/packages/frontend/tests/pages/reports-subject.js
similarity index 100%
rename from tests/pages/reports-subject.js
rename to packages/frontend/tests/pages/reports-subject.js
diff --git a/tests/pages/reports.js b/packages/frontend/tests/pages/reports.js
similarity index 100%
rename from tests/pages/reports.js
rename to packages/frontend/tests/pages/reports.js
diff --git a/tests/pages/school.js b/packages/frontend/tests/pages/school.js
similarity index 100%
rename from tests/pages/school.js
rename to packages/frontend/tests/pages/school.js
diff --git a/tests/pages/search.js b/packages/frontend/tests/pages/search.js
similarity index 100%
rename from tests/pages/search.js
rename to packages/frontend/tests/pages/search.js
diff --git a/tests/pages/user.js b/packages/frontend/tests/pages/user.js
similarity index 100%
rename from tests/pages/user.js
rename to packages/frontend/tests/pages/user.js
diff --git a/tests/pages/users.js b/packages/frontend/tests/pages/users.js
similarity index 100%
rename from tests/pages/users.js
rename to packages/frontend/tests/pages/users.js
diff --git a/tests/test-helper.js b/packages/frontend/tests/test-helper.js
similarity index 100%
rename from tests/test-helper.js
rename to packages/frontend/tests/test-helper.js
diff --git a/tests/unit/adapters/application-test.js b/packages/frontend/tests/unit/adapters/application-test.js
similarity index 100%
rename from tests/unit/adapters/application-test.js
rename to packages/frontend/tests/unit/adapters/application-test.js
diff --git a/tests/unit/controllers/admin-dashboard-test.js b/packages/frontend/tests/unit/controllers/admin-dashboard-test.js
similarity index 100%
rename from tests/unit/controllers/admin-dashboard-test.js
rename to packages/frontend/tests/unit/controllers/admin-dashboard-test.js
diff --git a/tests/unit/controllers/application-test.js b/packages/frontend/tests/unit/controllers/application-test.js
similarity index 100%
rename from tests/unit/controllers/application-test.js
rename to packages/frontend/tests/unit/controllers/application-test.js
diff --git a/tests/unit/controllers/assign-students-test.js b/packages/frontend/tests/unit/controllers/assign-students-test.js
similarity index 100%
rename from tests/unit/controllers/assign-students-test.js
rename to packages/frontend/tests/unit/controllers/assign-students-test.js
diff --git a/tests/unit/controllers/courses-test.js b/packages/frontend/tests/unit/controllers/courses-test.js
similarity index 100%
rename from tests/unit/controllers/courses-test.js
rename to packages/frontend/tests/unit/controllers/courses-test.js
diff --git a/tests/unit/controllers/curriculum-inventory-report/index-test.js b/packages/frontend/tests/unit/controllers/curriculum-inventory-report/index-test.js
similarity index 100%
rename from tests/unit/controllers/curriculum-inventory-report/index-test.js
rename to packages/frontend/tests/unit/controllers/curriculum-inventory-report/index-test.js
diff --git a/tests/unit/controllers/curriculum-inventory-report/rollover-test.js b/packages/frontend/tests/unit/controllers/curriculum-inventory-report/rollover-test.js
similarity index 100%
rename from tests/unit/controllers/curriculum-inventory-report/rollover-test.js
rename to packages/frontend/tests/unit/controllers/curriculum-inventory-report/rollover-test.js
diff --git a/tests/unit/controllers/curriculum-inventory-reports-test.js b/packages/frontend/tests/unit/controllers/curriculum-inventory-reports-test.js
similarity index 100%
rename from tests/unit/controllers/curriculum-inventory-reports-test.js
rename to packages/frontend/tests/unit/controllers/curriculum-inventory-reports-test.js
diff --git a/tests/unit/controllers/curriculum-inventory-sequence-block-test.js b/packages/frontend/tests/unit/controllers/curriculum-inventory-sequence-block-test.js
similarity index 100%
rename from tests/unit/controllers/curriculum-inventory-sequence-block-test.js
rename to packages/frontend/tests/unit/controllers/curriculum-inventory-sequence-block-test.js
diff --git a/tests/unit/controllers/instructor-groups-test.js b/packages/frontend/tests/unit/controllers/instructor-groups-test.js
similarity index 100%
rename from tests/unit/controllers/instructor-groups-test.js
rename to packages/frontend/tests/unit/controllers/instructor-groups-test.js
diff --git a/tests/unit/controllers/learner-group-test.js b/packages/frontend/tests/unit/controllers/learner-group-test.js
similarity index 100%
rename from tests/unit/controllers/learner-group-test.js
rename to packages/frontend/tests/unit/controllers/learner-group-test.js
diff --git a/tests/unit/controllers/learner-groups-test.js b/packages/frontend/tests/unit/controllers/learner-groups-test.js
similarity index 100%
rename from tests/unit/controllers/learner-groups-test.js
rename to packages/frontend/tests/unit/controllers/learner-groups-test.js
diff --git a/tests/unit/controllers/pending-user-updates-test.js b/packages/frontend/tests/unit/controllers/pending-user-updates-test.js
similarity index 100%
rename from tests/unit/controllers/pending-user-updates-test.js
rename to packages/frontend/tests/unit/controllers/pending-user-updates-test.js
diff --git a/tests/unit/controllers/program-test.js b/packages/frontend/tests/unit/controllers/program-test.js
similarity index 100%
rename from tests/unit/controllers/program-test.js
rename to packages/frontend/tests/unit/controllers/program-test.js
diff --git a/tests/unit/controllers/reports-test.js b/packages/frontend/tests/unit/controllers/reports-test.js
similarity index 100%
rename from tests/unit/controllers/reports-test.js
rename to packages/frontend/tests/unit/controllers/reports-test.js
diff --git a/tests/unit/controllers/reports/subject.js b/packages/frontend/tests/unit/controllers/reports/subject.js
similarity index 100%
rename from tests/unit/controllers/reports/subject.js
rename to packages/frontend/tests/unit/controllers/reports/subject.js
diff --git a/tests/unit/controllers/school-test.js b/packages/frontend/tests/unit/controllers/school-test.js
similarity index 100%
rename from tests/unit/controllers/school-test.js
rename to packages/frontend/tests/unit/controllers/school-test.js
diff --git a/tests/unit/controllers/search-test.js b/packages/frontend/tests/unit/controllers/search-test.js
similarity index 100%
rename from tests/unit/controllers/search-test.js
rename to packages/frontend/tests/unit/controllers/search-test.js
diff --git a/tests/unit/controllers/user-test.js b/packages/frontend/tests/unit/controllers/user-test.js
similarity index 100%
rename from tests/unit/controllers/user-test.js
rename to packages/frontend/tests/unit/controllers/user-test.js
diff --git a/tests/unit/initializers/inflector-test.js b/packages/frontend/tests/unit/initializers/inflector-test.js
similarity index 100%
rename from tests/unit/initializers/inflector-test.js
rename to packages/frontend/tests/unit/initializers/inflector-test.js
diff --git a/tests/unit/initializers/metrics-imports-test.js b/packages/frontend/tests/unit/initializers/metrics-imports-test.js
similarity index 100%
rename from tests/unit/initializers/metrics-imports-test.js
rename to packages/frontend/tests/unit/initializers/metrics-imports-test.js
diff --git a/tests/unit/mixins/live-search-item-test.js b/packages/frontend/tests/unit/mixins/live-search-item-test.js
similarity index 100%
rename from tests/unit/mixins/live-search-item-test.js
rename to packages/frontend/tests/unit/mixins/live-search-item-test.js
diff --git a/tests/unit/services/data-loader-test.js b/packages/frontend/tests/unit/services/data-loader-test.js
similarity index 100%
rename from tests/unit/services/data-loader-test.js
rename to packages/frontend/tests/unit/services/data-loader-test.js
diff --git a/tests/unit/services/graphql-test.js b/packages/frontend/tests/unit/services/graphql-test.js
similarity index 100%
rename from tests/unit/services/graphql-test.js
rename to packages/frontend/tests/unit/services/graphql-test.js
diff --git a/tests/unit/services/ilios-metrics-test.js b/packages/frontend/tests/unit/services/ilios-metrics-test.js
similarity index 100%
rename from tests/unit/services/ilios-metrics-test.js
rename to packages/frontend/tests/unit/services/ilios-metrics-test.js
diff --git a/tests/unit/services/reporting-test.js b/packages/frontend/tests/unit/services/reporting-test.js
similarity index 100%
rename from tests/unit/services/reporting-test.js
rename to packages/frontend/tests/unit/services/reporting-test.js
diff --git a/tests/unit/services/session-test.js b/packages/frontend/tests/unit/services/session-test.js
similarity index 100%
rename from tests/unit/services/session-test.js
rename to packages/frontend/tests/unit/services/session-test.js
diff --git a/tests/unit/services/user-events-test.js b/packages/frontend/tests/unit/services/user-events-test.js
similarity index 100%
rename from tests/unit/services/user-events-test.js
rename to packages/frontend/tests/unit/services/user-events-test.js
diff --git a/tests/unit/utils/clone-learner-group-test.js b/packages/frontend/tests/unit/utils/clone-learner-group-test.js
similarity index 100%
rename from tests/unit/utils/clone-learner-group-test.js
rename to packages/frontend/tests/unit/utils/clone-learner-group-test.js
diff --git a/tests/unit/utils/count-digits-test.js b/packages/frontend/tests/unit/utils/count-digits-test.js
similarity index 100%
rename from tests/unit/utils/count-digits-test.js
rename to packages/frontend/tests/unit/utils/count-digits-test.js
diff --git a/tests/unit/utils/launch-worker-test.js b/packages/frontend/tests/unit/utils/launch-worker-test.js
similarity index 100%
rename from tests/unit/utils/launch-worker-test.js
rename to packages/frontend/tests/unit/utils/launch-worker-test.js
diff --git a/tests/unit/utils/pcrs-uri-to-number-test.js b/packages/frontend/tests/unit/utils/pcrs-uri-to-number-test.js
similarity index 100%
rename from tests/unit/utils/pcrs-uri-to-number-test.js
rename to packages/frontend/tests/unit/utils/pcrs-uri-to-number-test.js
diff --git a/tests/unit/utils/random-string-test.js b/packages/frontend/tests/unit/utils/random-string-test.js
similarity index 100%
rename from tests/unit/utils/random-string-test.js
rename to packages/frontend/tests/unit/utils/random-string-test.js
diff --git a/tests/unit/utils/readable-file-size-test.js b/packages/frontend/tests/unit/utils/readable-file-size-test.js
similarity index 100%
rename from tests/unit/utils/readable-file-size-test.js
rename to packages/frontend/tests/unit/utils/readable-file-size-test.js
diff --git a/tests/unit/utils/sort-cohorts-test.js b/packages/frontend/tests/unit/utils/sort-cohorts-test.js
similarity index 100%
rename from tests/unit/utils/sort-cohorts-test.js
rename to packages/frontend/tests/unit/utils/sort-cohorts-test.js
diff --git a/translations/en-us.yaml b/packages/frontend/translations/en-us.yaml
similarity index 100%
rename from translations/en-us.yaml
rename to packages/frontend/translations/en-us.yaml
diff --git a/translations/es.yaml b/packages/frontend/translations/es.yaml
similarity index 100%
rename from translations/es.yaml
rename to packages/frontend/translations/es.yaml
diff --git a/translations/fr.yaml b/packages/frontend/translations/fr.yaml
similarity index 100%
rename from translations/fr.yaml
rename to packages/frontend/translations/fr.yaml
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 37f34adc70..a0c97dbfda 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,339 +4,380 @@ settings:
   autoInstallPeers: true
   excludeLinksFromLockfile: false
 
-dependencies:
-  ember-auto-import:
-    specifier: ^2.6.3
-    version: 2.7.2(webpack@5.90.0)
-  moment:
-    specifier: ^2.30.1
-    version: 2.30.1
-  moment-timezone:
-    specifier: ^0.5.42
-    version: 0.5.44
-
-devDependencies:
-  '@babel/core':
-    specifier: ^7.22.20
-    version: 7.23.9(supports-color@8.1.1)
-  '@babel/eslint-parser':
-    specifier: 7.23.3
-    version: 7.23.3(@babel/core@7.23.9)(eslint@8.56.0)
-  '@babel/plugin-proposal-decorators':
-    specifier: ^7.22.15
-    version: 7.23.9(@babel/core@7.23.9)
-  '@ember/edition-utils':
-    specifier: ^1.2.0
-    version: 1.2.0
-  '@ember/optional-features':
-    specifier: ^2.0.0
-    version: 2.0.0
-  '@ember/string':
-    specifier: ^3.1.1
-    version: 3.1.1
-  '@ember/test-helpers':
-    specifier: ^3.2.0
-    version: 3.2.1(ember-source@5.3.0)(webpack@5.90.0)
-  '@embroider/compat':
-    specifier: ~3.4.4
-    version: 3.4.4(@embroider/core@3.4.4)
-  '@embroider/core':
-    specifier: ~3.4.4
-    version: 3.4.4
-  '@embroider/macros':
-    specifier: ^1.13.5
-    version: 1.13.5
-  '@embroider/router':
-    specifier: ^2.1.6
-    version: 2.1.6(@embroider/core@3.4.4)
-  '@embroider/webpack':
-    specifier: ~3.2.2
-    version: 3.2.2(@embroider/core@3.4.4)(webpack@5.90.0)
-  '@glimmer/component':
-    specifier: ^1.1.2
-    version: 1.1.2(@babel/core@7.23.9)
-  '@glimmer/tracking':
-    specifier: ^1.1.2
-    version: 1.1.2
-  '@ilios/ember-template-lint-plugin':
-    specifier: ^3.0.0
-    version: 3.0.0
-  '@percy/cli':
-    specifier: ^1.27.7
-    version: 1.27.7
-  '@percy/ember':
-    specifier: ^4.2.0
-    version: 4.2.0
-  '@sentry/ember':
-    specifier: 7.99.0
-    version: 7.99.0(webpack@5.90.0)
-  broccoli-asset-rev:
-    specifier: ^3.0.0
-    version: 3.0.0
-  broccoli-file-creator:
-    specifier: ^2.1.1
-    version: 2.1.1
-  broccoli-merge-trees:
-    specifier: ^4.2.0
-    version: 4.2.0
-  browserslist:
-    specifier: ^4.22.1
-    version: 4.22.3
-  caniuse-db:
-    specifier: ^1.0.30001583
-    version: 1.0.30001583
-  class-validator:
-    specifier: ^0.14.0
-    version: 0.14.1
-  concurrently:
-    specifier: ^8.2.1
-    version: 8.2.2
-  ember-a11y-refocus:
-    specifier: 3.0.2
-    version: 3.0.2
-  ember-a11y-testing:
-    specifier: ^6.1.1
-    version: 6.1.1(@babel/core@7.23.9)(@ember/test-helpers@3.2.1)(qunit@2.20.0)(webpack@5.90.0)
-  ember-ajax:
-    specifier: ^5.1.2
-    version: 5.1.2
-  ember-async-data:
-    specifier: ^1.0.3
-    version: 1.0.3(ember-source@5.3.0)
-  ember-cli:
-    specifier: ~5.3.0
-    version: 5.3.0
-  ember-cli-app-version:
-    specifier: ^6.0.1
-    version: 6.0.1(ember-source@5.3.0)
-  ember-cli-babel:
-    specifier: ^8.0.0
-    version: 8.2.0(@babel/core@7.23.9)
-  ember-cli-browserstack:
-    specifier: ^3.0.0
-    version: 3.0.0
-  ember-cli-bundle-analyzer:
-    specifier: ^1.0.0
-    version: 1.0.0
-  ember-cli-clean-css:
-    specifier: ^3.0.0
-    version: 3.0.0
-  ember-cli-code-coverage:
-    specifier: ^v2.0.3
-    version: 2.0.3(@embroider/compat@3.4.4)(@embroider/core@3.4.4)
-  ember-cli-dependency-checker:
-    specifier: ^3.3.2
-    version: 3.3.2(ember-cli@5.3.0)
-  ember-cli-dependency-lint:
-    specifier: 2.0.1
-    version: 2.0.1
-  ember-cli-deploy:
-    specifier: 2.0.0
-    version: 2.0.0
-  ember-cli-deploy-archive:
-    specifier: 1.0.0
-    version: 1.0.0
-  ember-cli-deploy-brotli:
-    specifier: ^0.4.0
-    version: 0.4.0
-  ember-cli-deploy-build:
-    specifier: 3.0.0
-    version: 3.0.0(@babel/core@7.23.9)(eslint@8.56.0)
-  ember-cli-deploy-cloudfront:
-    specifier: ^5.0.0
-    version: 5.0.0
-  ember-cli-deploy-display-revisions:
-    specifier: 3.0.0
-    version: 3.0.0
-  ember-cli-deploy-gzip:
-    specifier: ^3.0.0
-    version: 3.0.0(@babel/core@7.23.9)(eslint@8.56.0)
-  ember-cli-deploy-json-config:
-    specifier: 1.0.1
-    version: 1.0.1
-  ember-cli-deploy-revision-data:
-    specifier: 3.0.0
-    version: 3.0.0
-  ember-cli-deploy-s3-index:
-    specifier: 3.0.0
-    version: 3.0.0
-  ember-cli-deprecation-workflow:
-    specifier: 2.2.0
-    version: 2.2.0
-  ember-cli-htmlbars:
-    specifier: ^6.3.0
-    version: 6.3.0
-  ember-cli-image-transformer:
-    specifier: ^7.0.0
-    version: 7.0.0(ember-source@5.3.0)
-  ember-cli-inject-live-reload:
-    specifier: ^2.1.0
-    version: 2.1.0
-  ember-cli-mirage:
-    specifier: ^3.0.2
-    version: 3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.0)
-  ember-cli-new-version:
-    specifier: ^4.1.0
-    version: 4.1.0(@babel/core@7.23.9)
-  ember-cli-page-object:
-    specifier: ^2.2.1
-    version: 2.2.1(@ember/test-helpers@3.2.1)
-  ember-cli-sass:
-    specifier: ^11.0.1
-    version: 11.0.1
-  ember-cli-server-variables:
-    specifier: 3.0.0
-    version: 3.0.0
-  ember-cli-sri:
-    specifier: ^2.1.1
-    version: 2.1.1
-  ember-cli-terser:
-    specifier: ^4.0.2
-    version: 4.0.2
-  ember-focus-trap:
-    specifier: ^1.1.0
-    version: 1.1.0(ember-source@5.3.0)
-  ember-load-initializers:
-    specifier: ^2.1.2
-    version: 2.1.2(@babel/core@7.23.9)
-  ember-metrics:
-    specifier: 1.5.2
-    version: 1.5.2
-  ember-modifier:
-    specifier: ^4.1.0
-    version: 4.1.0(ember-source@5.3.0)
-  ember-moment:
-    specifier: ^10.0.0
-    version: 10.0.0(moment-timezone@0.5.44)(moment@2.30.1)
-  ember-noscript:
-    specifier: ^4.1.0
-    version: 4.1.0
-  ember-page-title:
-    specifier: ^8.0.0
-    version: 8.2.1(ember-source@5.3.0)
-  ember-qunit:
-    specifier: ^8.0.1
-    version: 8.0.2(@ember/test-helpers@3.2.1)(ember-source@5.3.0)(qunit@2.20.0)
-  ember-resolver:
-    specifier: ^11.0.1
-    version: 11.0.1(ember-source@5.3.0)
-  ember-responsive:
-    specifier: ^5.0.0
-    version: 5.0.0
-  ember-source:
-    specifier: ~5.3.0
-    version: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
-  ember-template-lint:
-    specifier: ^5.11.2
-    version: 5.13.0
-  ember-web-app:
-    specifier: ^5.0.0
-    version: 5.0.1
-  eslint:
-    specifier: ^8.49.0
-    version: 8.56.0
-  eslint-config-prettier:
-    specifier: ^9.0.0
-    version: 9.1.0(eslint@8.56.0)
-  eslint-plugin-ember:
-    specifier: ^11.11.1
-    version: 11.12.0(eslint@8.56.0)
-  eslint-plugin-n:
-    specifier: ^16.1.0
-    version: 16.6.2(eslint@8.56.0)
-  eslint-plugin-prettier:
-    specifier: ^5.0.0
-    version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4)
-  eslint-plugin-qunit:
-    specifier: ^8.0.0
-    version: 8.0.1(eslint@8.56.0)
-  file-saver:
-    specifier: ^2.0.5
-    version: 2.0.5
-  ilios-common:
-    specifier: ^87.1.0
-    version: 87.1.0(@ember/test-helpers@3.2.1)(@popperjs/core@2.11.8)(class-validator@0.14.1)(ember-qunit@8.0.2)(ember-source@5.3.0)(flatpickr@4.6.13)(froala-editor@4.1.4)(luxon@3.4.4)(miragejs@0.1.48)(mockdate@3.0.5)(moment-timezone@0.5.44)(moment@2.30.1)(query-string@8.1.0)(scroll-into-view@1.16.2)(striptags@3.2.0)(tracked-built-ins@3.3.0)(typeface-nunito-sans@1.1.13)(typeface-nunito@1.1.13)(validator@13.11.0)(webpack@5.90.0)
-  loader.js:
-    specifier: ^4.7.0
-    version: 4.7.0
-  luxon:
-    specifier: ^3.4.4
-    version: 3.4.4
-  miragejs:
-    specifier: ^0.1.48
-    version: 0.1.48
-  mockdate:
-    specifier: ^3.0.5
-    version: 3.0.5
-  pad:
-    specifier: ^3.2.0
-    version: 3.2.0
-  papaparse:
-    specifier: ^5.4.1
-    version: 5.4.1
-  pre-commit:
-    specifier: ^1.2.2
-    version: 1.2.2
-  prettier:
-    specifier: ^3.0.3
-    version: 3.2.4
-  query-string:
-    specifier: ^8.1.0
-    version: 8.1.0
-  qunit:
-    specifier: ^2.19.4
-    version: 2.20.0
-  qunit-dom:
-    specifier: ^2.0.0
-    version: 2.0.0
-  sass:
-    specifier: ^1.70.0
-    version: 1.70.0
-  scroll-into-view:
-    specifier: ^1.16.2
-    version: 1.16.2
-  striptags:
-    specifier: ^3.2.0
-    version: 3.2.0
-  stylelint:
-    specifier: ^15.10.3
-    version: 15.11.0
-  stylelint-config-recommended-scss:
-    specifier: ^13.1.0
-    version: 13.1.0(postcss@8.4.33)(stylelint@15.11.0)
-  stylelint-config-standard:
-    specifier: ^34.0.0
-    version: 34.0.0(stylelint@15.11.0)
-  stylelint-prettier:
-    specifier: ^4.0.2
-    version: 4.1.0(prettier@3.2.4)(stylelint@15.11.0)
-  stylelint-scss:
-    specifier: ^5.3.2
-    version: 5.3.2(stylelint@15.11.0)
-  terser-webpack-plugin:
-    specifier: ^5.3.9
-    version: 5.3.10(webpack@5.90.0)
-  testem-failure-only-reporter:
-    specifier: ^1.0.0
-    version: 1.0.0
-  tracked-built-ins:
-    specifier: ^3.2.0
-    version: 3.3.0
-  validator:
-    specifier: ^13.11.0
-    version: 13.11.0
-  webpack:
-    specifier: ^5.88.2
-    version: 5.90.0
-  webpack-bundle-analyzer:
-    specifier: ^4.10.1
-    version: 4.10.1
-  webpack-retry-chunk-load-plugin:
-    specifier: ^3.0.0
-    version: 3.1.1(webpack@5.90.0)
-  zxcvbn:
-    specifier: ^4.4.2
-    version: 4.4.2
+importers:
+
+  .:
+    devDependencies:
+      concurrently:
+        specifier: ^8.2.0
+        version: 8.2.2
+      ember-template-lint:
+        specifier: ^5.13.0
+        version: 5.13.0
+      eslint:
+        specifier: ^8.55.0
+        version: 8.56.0
+      eslint-config-prettier:
+        specifier: ^9.1.0
+        version: 9.1.0(eslint@8.56.0)
+      eslint-plugin-ember:
+        specifier: ^11.11.1
+        version: 11.12.0(eslint@8.56.0)
+      eslint-plugin-n:
+        specifier: ^16.4.0
+        version: 16.6.2(eslint@8.56.0)
+      eslint-plugin-prettier:
+        specifier: ^5.0.1
+        version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4)
+      eslint-plugin-qunit:
+        specifier: ^8.0.1
+        version: 8.0.1(eslint@8.56.0)
+      prettier:
+        specifier: ^3.1.1
+        version: 3.2.4
+      stylelint:
+        specifier: ^15.11.0
+        version: 15.11.0
+      stylelint-config-recommended-scss:
+        specifier: ^13.0.0
+        version: 13.1.0(postcss@8.4.33)(stylelint@15.11.0)
+      stylelint-config-standard:
+        specifier: ^34.0.0
+        version: 34.0.0(stylelint@15.11.0)
+      stylelint-prettier:
+        specifier: ^4.1.0
+        version: 4.1.0(prettier@3.2.4)(stylelint@15.11.0)
+      stylelint-scss:
+        specifier: ^5.0.0
+        version: 5.3.2(stylelint@15.11.0)
+
+  packages/frontend:
+    dependencies:
+      ember-auto-import:
+        specifier: ^2.6.3
+        version: 2.7.2(webpack@5.90.1)
+      moment:
+        specifier: ^2.30.1
+        version: 2.30.1
+      moment-timezone:
+        specifier: ^0.5.42
+        version: 0.5.44
+    devDependencies:
+      '@babel/core':
+        specifier: ^7.22.20
+        version: 7.23.9(supports-color@8.1.1)
+      '@babel/eslint-parser':
+        specifier: 7.23.3
+        version: 7.23.3(@babel/core@7.23.9)(eslint@8.56.0)
+      '@babel/plugin-proposal-decorators':
+        specifier: ^7.22.15
+        version: 7.23.9(@babel/core@7.23.9)
+      '@ember/edition-utils':
+        specifier: ^1.2.0
+        version: 1.2.0
+      '@ember/optional-features':
+        specifier: ^2.0.0
+        version: 2.0.0
+      '@ember/string':
+        specifier: ^3.1.1
+        version: 3.1.1
+      '@ember/test-helpers':
+        specifier: ^3.2.0
+        version: 3.2.1(ember-source@5.3.0)(webpack@5.90.1)
+      '@embroider/compat':
+        specifier: ~3.4.4
+        version: 3.4.4(@embroider/core@3.4.4)
+      '@embroider/core':
+        specifier: ~3.4.4
+        version: 3.4.4
+      '@embroider/macros':
+        specifier: ^1.13.5
+        version: 1.13.5
+      '@embroider/router':
+        specifier: ^2.1.6
+        version: 2.1.6(@embroider/core@3.4.4)
+      '@embroider/webpack':
+        specifier: ~3.2.2
+        version: 3.2.2(@embroider/core@3.4.4)(webpack@5.90.1)
+      '@glimmer/component':
+        specifier: ^1.1.2
+        version: 1.1.2(@babel/core@7.23.9)
+      '@glimmer/tracking':
+        specifier: ^1.1.2
+        version: 1.1.2
+      '@percy/cli':
+        specifier: ^1.27.7
+        version: 1.27.7
+      '@percy/ember':
+        specifier: ^4.2.0
+        version: 4.2.0
+      '@sentry/ember':
+        specifier: 7.99.0
+        version: 7.99.0(webpack@5.90.1)
+      broccoli-asset-rev:
+        specifier: ^3.0.0
+        version: 3.0.0
+      broccoli-file-creator:
+        specifier: ^2.1.1
+        version: 2.1.1
+      broccoli-merge-trees:
+        specifier: ^4.2.0
+        version: 4.2.0
+      browserslist:
+        specifier: ^4.22.1
+        version: 4.22.3
+      caniuse-db:
+        specifier: ^1.0.30001583
+        version: 1.0.30001583
+      class-validator:
+        specifier: ^0.14.0
+        version: 0.14.1
+      concurrently:
+        specifier: ^8.2.1
+        version: 8.2.2
+      ember-a11y-refocus:
+        specifier: 3.0.2
+        version: 3.0.2
+      ember-a11y-testing:
+        specifier: ^6.1.1
+        version: 6.1.1(@babel/core@7.23.9)(@ember/test-helpers@3.2.1)(qunit@2.20.0)(webpack@5.90.1)
+      ember-ajax:
+        specifier: ^5.1.2
+        version: 5.1.2
+      ember-async-data:
+        specifier: ^1.0.3
+        version: 1.0.3(ember-source@5.3.0)
+      ember-cli:
+        specifier: ~5.3.0
+        version: 5.3.0
+      ember-cli-app-version:
+        specifier: ^6.0.1
+        version: 6.0.1(ember-source@5.3.0)
+      ember-cli-babel:
+        specifier: ^8.0.0
+        version: 8.2.0(@babel/core@7.23.9)
+      ember-cli-browserstack:
+        specifier: ^3.0.0
+        version: 3.0.0
+      ember-cli-bundle-analyzer:
+        specifier: ^1.0.0
+        version: 1.0.0
+      ember-cli-clean-css:
+        specifier: ^3.0.0
+        version: 3.0.0
+      ember-cli-code-coverage:
+        specifier: ^v2.0.3
+        version: 2.0.3(@embroider/compat@3.4.4)(@embroider/core@3.4.4)
+      ember-cli-dependency-checker:
+        specifier: ^3.3.2
+        version: 3.3.2(ember-cli@5.3.0)
+      ember-cli-dependency-lint:
+        specifier: 2.0.1
+        version: 2.0.1
+      ember-cli-deploy:
+        specifier: 2.0.0
+        version: 2.0.0
+      ember-cli-deploy-archive:
+        specifier: 1.0.0
+        version: 1.0.0
+      ember-cli-deploy-brotli:
+        specifier: ^0.4.0
+        version: 0.4.0
+      ember-cli-deploy-build:
+        specifier: 3.0.0
+        version: 3.0.0(@babel/core@7.23.9)(eslint@8.56.0)
+      ember-cli-deploy-cloudfront:
+        specifier: ^5.0.0
+        version: 5.0.0
+      ember-cli-deploy-display-revisions:
+        specifier: 3.0.0
+        version: 3.0.0
+      ember-cli-deploy-gzip:
+        specifier: ^3.0.0
+        version: 3.0.0(@babel/core@7.23.9)(eslint@8.56.0)
+      ember-cli-deploy-json-config:
+        specifier: 1.0.1
+        version: 1.0.1
+      ember-cli-deploy-revision-data:
+        specifier: 3.0.0
+        version: 3.0.0
+      ember-cli-deploy-s3-index:
+        specifier: 3.0.0
+        version: 3.0.0
+      ember-cli-deprecation-workflow:
+        specifier: 2.2.0
+        version: 2.2.0
+      ember-cli-htmlbars:
+        specifier: ^6.3.0
+        version: 6.3.0
+      ember-cli-image-transformer:
+        specifier: ^7.0.0
+        version: 7.0.0(ember-source@5.3.0)
+      ember-cli-inject-live-reload:
+        specifier: ^2.1.0
+        version: 2.1.0
+      ember-cli-mirage:
+        specifier: ^3.0.2
+        version: 3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.1)
+      ember-cli-new-version:
+        specifier: ^4.1.0
+        version: 4.1.0(@babel/core@7.23.9)
+      ember-cli-page-object:
+        specifier: ^2.2.1
+        version: 2.2.1(@ember/test-helpers@3.2.1)
+      ember-cli-sass:
+        specifier: ^11.0.1
+        version: 11.0.1
+      ember-cli-server-variables:
+        specifier: 3.0.0
+        version: 3.0.0
+      ember-cli-sri:
+        specifier: ^2.1.1
+        version: 2.1.1
+      ember-cli-terser:
+        specifier: ^4.0.2
+        version: 4.0.2
+      ember-focus-trap:
+        specifier: ^1.1.0
+        version: 1.1.0(ember-source@5.3.0)
+      ember-load-initializers:
+        specifier: ^2.1.2
+        version: 2.1.2(@babel/core@7.23.9)
+      ember-metrics:
+        specifier: 1.5.2
+        version: 1.5.2
+      ember-modifier:
+        specifier: ^4.1.0
+        version: 4.1.0(ember-source@5.3.0)
+      ember-moment:
+        specifier: ^10.0.0
+        version: 10.0.0(moment-timezone@0.5.44)(moment@2.30.1)
+      ember-noscript:
+        specifier: ^4.1.0
+        version: 4.1.0
+      ember-page-title:
+        specifier: ^8.0.0
+        version: 8.2.1(ember-source@5.3.0)
+      ember-qunit:
+        specifier: ^8.0.1
+        version: 8.0.2(@ember/test-helpers@3.2.1)(ember-source@5.3.0)(qunit@2.20.0)
+      ember-resolver:
+        specifier: ^11.0.1
+        version: 11.0.1(ember-source@5.3.0)
+      ember-responsive:
+        specifier: ^5.0.0
+        version: 5.0.0
+      ember-source:
+        specifier: ~5.3.0
+        version: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
+      ember-template-lint:
+        specifier: ^5.11.2
+        version: 5.13.0
+      ember-web-app:
+        specifier: ^5.0.0
+        version: 5.0.1
+      eslint:
+        specifier: ^8.49.0
+        version: 8.56.0
+      eslint-config-prettier:
+        specifier: ^9.0.0
+        version: 9.1.0(eslint@8.56.0)
+      eslint-plugin-ember:
+        specifier: ^11.11.1
+        version: 11.12.0(eslint@8.56.0)
+      eslint-plugin-n:
+        specifier: ^16.1.0
+        version: 16.6.2(eslint@8.56.0)
+      eslint-plugin-prettier:
+        specifier: ^5.0.0
+        version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4)
+      eslint-plugin-qunit:
+        specifier: ^8.0.0
+        version: 8.0.1(eslint@8.56.0)
+      file-saver:
+        specifier: ^2.0.5
+        version: 2.0.5
+      ilios-common:
+        specifier: ^87.1.0
+        version: 87.1.0(@ember/test-helpers@3.2.1)(@popperjs/core@2.11.8)(class-validator@0.14.1)(ember-qunit@8.0.2)(ember-source@5.3.0)(flatpickr@4.6.13)(froala-editor@4.1.4)(luxon@3.4.4)(miragejs@0.1.48)(mockdate@3.0.5)(moment-timezone@0.5.44)(moment@2.30.1)(query-string@8.1.0)(scroll-into-view@1.16.2)(striptags@3.2.0)(tracked-built-ins@3.3.0)(typeface-nunito-sans@1.1.13)(typeface-nunito@1.1.13)(validator@13.11.0)(webpack@5.90.1)
+      loader.js:
+        specifier: ^4.7.0
+        version: 4.7.0
+      luxon:
+        specifier: ^3.4.4
+        version: 3.4.4
+      miragejs:
+        specifier: ^0.1.48
+        version: 0.1.48
+      mockdate:
+        specifier: ^3.0.5
+        version: 3.0.5
+      pad:
+        specifier: ^3.2.0
+        version: 3.2.0
+      papaparse:
+        specifier: ^5.4.1
+        version: 5.4.1
+      prettier:
+        specifier: ^3.0.3
+        version: 3.2.4
+      query-string:
+        specifier: ^8.1.0
+        version: 8.1.0
+      qunit:
+        specifier: ^2.19.4
+        version: 2.20.0
+      qunit-dom:
+        specifier: ^2.0.0
+        version: 2.0.0
+      sass:
+        specifier: ^1.70.0
+        version: 1.70.0
+      scroll-into-view:
+        specifier: ^1.16.2
+        version: 1.16.2
+      striptags:
+        specifier: ^3.2.0
+        version: 3.2.0
+      stylelint:
+        specifier: ^15.10.3
+        version: 15.11.0
+      stylelint-config-recommended-scss:
+        specifier: ^13.1.0
+        version: 13.1.0(postcss@8.4.33)(stylelint@15.11.0)
+      stylelint-config-standard:
+        specifier: ^34.0.0
+        version: 34.0.0(stylelint@15.11.0)
+      stylelint-prettier:
+        specifier: ^4.0.2
+        version: 4.1.0(prettier@3.2.4)(stylelint@15.11.0)
+      stylelint-scss:
+        specifier: ^5.3.2
+        version: 5.3.2(stylelint@15.11.0)
+      terser-webpack-plugin:
+        specifier: ^5.3.9
+        version: 5.3.10(webpack@5.90.1)
+      testem-failure-only-reporter:
+        specifier: ^1.0.0
+        version: 1.0.0
+      tracked-built-ins:
+        specifier: ^3.2.0
+        version: 3.3.0
+      validator:
+        specifier: ^13.11.0
+        version: 13.11.0
+      webpack:
+        specifier: ^5.88.2
+        version: 5.90.1
+      webpack-bundle-analyzer:
+        specifier: ^4.10.1
+        version: 4.10.1
+      webpack-retry-chunk-load-plugin:
+        specifier: ^3.0.0
+        version: 3.1.1(webpack@5.90.1)
+      zxcvbn:
+        specifier: ^4.4.2
+        version: 4.4.2
 
 packages:
 
@@ -1638,9 +1679,9 @@ packages:
       '@ember/edition-utils': 1.2.0
       '@ember/string': 3.1.1
       '@embroider/macros': 1.13.5
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 8.2.0(@babel/core@7.23.9)
-      webpack: 5.90.0
+      webpack: 5.90.1
     transitivePeerDependencies:
       - '@glint/template'
       - '@swc/core'
@@ -1901,7 +1942,7 @@ packages:
       '@embroider/macros': 1.13.5
       ember-cli-babel: 7.26.11
       ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.23.9)
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - '@babel/core'
       - supports-color
@@ -1916,7 +1957,7 @@ packages:
       - supports-color
     dev: true
 
-  /@ember/test-helpers@3.2.1(ember-source@5.3.0)(webpack@5.90.0):
+  /@ember/test-helpers@3.2.1(ember-source@5.3.0)(webpack@5.90.1):
     resolution: {integrity: sha512-DvJSihJPV4xshwEgBrFN4aUVc9m/Y/hVzwcslfSVq/h3dMWCyAj4+agkkdJPQrwBaE+H4IyGNzr555S7bTErEA==}
     engines: {node: 16.* || >= 18}
     peerDependencies:
@@ -1927,10 +1968,10 @@ packages:
       '@simple-dom/interface': 1.4.0
       broccoli-debug: 0.6.5
       broccoli-funnel: 3.0.8
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-cli-htmlbars: 6.3.0
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - '@glint/template'
       - supports-color
@@ -1968,7 +2009,7 @@ packages:
       - supports-color
     dev: true
 
-  /@embroider/babel-loader-9@3.1.1(@embroider/core@3.4.4)(supports-color@8.1.1)(webpack@5.90.0):
+  /@embroider/babel-loader-9@3.1.1(@embroider/core@3.4.4)(supports-color@8.1.1)(webpack@5.90.1):
     resolution: {integrity: sha512-8mIDRXvwntYIQc2JFVvGXEppHUJRhw+6aEzHtbCZDr4oOKw55IyY+RHzas3JILRq64owLA+Ox0yu6nkwL1ApRQ==}
     engines: {node: 12.* || 14.* || >= 16}
     peerDependencies:
@@ -1976,7 +2017,7 @@ packages:
     dependencies:
       '@babel/core': 7.23.9(supports-color@8.1.1)
       '@embroider/core': 3.4.4
-      babel-loader: 9.1.3(@babel/core@7.23.9)(webpack@5.90.0)
+      babel-loader: 9.1.3(@babel/core@7.23.9)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
       - webpack
@@ -2075,7 +2116,7 @@ packages:
       - utf-8-validate
     dev: true
 
-  /@embroider/hbs-loader@3.0.3(@embroider/core@3.4.4)(webpack@5.90.0):
+  /@embroider/hbs-loader@3.0.3(@embroider/core@3.4.4)(webpack@5.90.1):
     resolution: {integrity: sha512-sI2K3/III1WGGxS+aIf8uW5tgcNiE7APNhThn2ZTwqU47fK20Uz8TJZhst0GfNZFsCsmuQMRUikRJvQU8naSWA==}
     engines: {node: 12.* || 14.* || >= 16}
     peerDependencies:
@@ -2083,7 +2124,7 @@ packages:
       webpack: ^5
     dependencies:
       '@embroider/core': 3.4.4
-      webpack: 5.90.0
+      webpack: 5.90.1
     dev: true
 
   /@embroider/macros@1.13.5:
@@ -2148,22 +2189,6 @@ packages:
       typescript-memoize: 1.1.1
     dev: true
 
-  /@embroider/shared-internals@2.5.1:
-    resolution: {integrity: sha512-b+TWDBisH1p6HeTbJIO8pgu1WzfTP0ZSAlZBqjXwOyrS0ZxP1qNYRrEX+IxyzIibEFjXBxeLakiejz3DJvZX5A==}
-    engines: {node: 12.* || 14.* || >= 16}
-    dependencies:
-      babel-import-util: 2.0.1
-      debug: 4.3.4(supports-color@8.1.1)
-      ember-rfc176-data: 0.3.18
-      fs-extra: 9.1.0
-      js-string-escape: 1.0.1
-      lodash: 4.17.21
-      resolve-package-path: 4.0.3
-      semver: 7.5.4
-      typescript-memoize: 1.1.1
-    transitivePeerDependencies:
-      - supports-color
-
   /@embroider/shared-internals@2.5.2(supports-color@8.1.1):
     resolution: {integrity: sha512-jNDJ9YlV6Qp9Na9v17qirUewVuq6T0t32nn+bbnFlCRTvmllKluZdYPSC5RuRnEZKTloVYRSF0+f1rgkTIEvxQ==}
     engines: {node: 12.* || 14.* || >= 16}
@@ -2196,12 +2221,12 @@ packages:
       '@embroider/macros': 1.13.5
       broccoli-funnel: 3.0.8
       ember-cli-babel: 7.26.11
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /@embroider/webpack@3.2.2(@embroider/core@3.4.4)(webpack@5.90.0):
+  /@embroider/webpack@3.2.2(@embroider/core@3.4.4)(webpack@5.90.1):
     resolution: {integrity: sha512-ygUQiej6uEgtF63opuyzvnoF8SjEsgOFaIDY9osaMKmoFe06QidjT2utLVqOB+k3vBiYfxQkVZ1HJaM0ud4F4A==}
     engines: {node: 12.* || 14.* || >= 16}
     peerDependencies:
@@ -2209,29 +2234,29 @@ packages:
       webpack: ^5.0.0
     dependencies:
       '@babel/core': 7.23.9(supports-color@8.1.1)
-      '@embroider/babel-loader-9': 3.1.1(@embroider/core@3.4.4)(supports-color@8.1.1)(webpack@5.90.0)
+      '@embroider/babel-loader-9': 3.1.1(@embroider/core@3.4.4)(supports-color@8.1.1)(webpack@5.90.1)
       '@embroider/core': 3.4.4
-      '@embroider/hbs-loader': 3.0.3(@embroider/core@3.4.4)(webpack@5.90.0)
+      '@embroider/hbs-loader': 3.0.3(@embroider/core@3.4.4)(webpack@5.90.1)
       '@embroider/shared-internals': 2.5.2(supports-color@8.1.1)
       '@types/supports-color': 8.1.3
       assert-never: 1.2.1
-      babel-loader: 8.3.0(@babel/core@7.23.9)(webpack@5.90.0)
+      babel-loader: 8.3.0(@babel/core@7.23.9)(webpack@5.90.1)
       babel-preset-env: 1.7.0(supports-color@8.1.1)
-      css-loader: 5.2.7(webpack@5.90.0)
+      css-loader: 5.2.7(webpack@5.90.1)
       csso: 4.2.0
       debug: 4.3.4(supports-color@8.1.1)
       escape-string-regexp: 4.0.0
       fs-extra: 9.1.0
       jsdom: 16.7.0(supports-color@8.1.1)
       lodash: 4.17.21
-      mini-css-extract-plugin: 2.8.0(webpack@5.90.0)
+      mini-css-extract-plugin: 2.8.0(webpack@5.90.1)
       semver: 7.5.4
       source-map-url: 0.4.1
-      style-loader: 2.0.0(webpack@5.90.0)
+      style-loader: 2.0.0(webpack@5.90.1)
       supports-color: 8.1.1
       terser: 5.27.0
-      thread-loader: 3.0.4(webpack@5.90.0)
-      webpack: 5.90.0
+      thread-loader: 3.0.4(webpack@5.90.1)
+      webpack: 5.90.1
     transitivePeerDependencies:
       - bufferutil
       - canvas
@@ -2261,7 +2286,7 @@ packages:
       debug: 4.3.4(supports-color@8.1.1)
       espree: 9.6.1
       globals: 13.24.0
-      ignore: 5.3.0
+      ignore: 5.3.1
       import-fresh: 3.3.0
       js-yaml: 4.1.0
       minimatch: 3.1.2
@@ -2621,10 +2646,6 @@ packages:
     resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
     dev: true
 
-  /@ilios/ember-template-lint-plugin@3.0.0:
-    resolution: {integrity: sha512-1uCmP9E97H4DeBLzLUhGUW2Wew8y9MMmJyU4Hfs3TDgnFE2woL8DkUa2EZWs1tja5atcbYyUfnubaWkOnNSlsg==}
-    dev: true
-
   /@isaacs/cliui@8.0.2:
     resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
     engines: {node: '>=12'}
@@ -3066,7 +3087,7 @@ packages:
       '@sentry/utils': 7.99.0
     dev: true
 
-  /@sentry/ember@7.99.0(webpack@5.90.0):
+  /@sentry/ember@7.99.0(webpack@5.90.1):
     resolution: {integrity: sha512-GIpennBvIHK5HcpmnTietSMNEdWAO6OuXgq09glAFh55c8mfhszxR87rqxgLWk03mIAcZGa6m8pPXTEYbzYHUg==}
     engines: {node: 14.* || 16.* || >= 18}
     dependencies:
@@ -3075,7 +3096,7 @@ packages:
       '@sentry/core': 7.99.0
       '@sentry/types': 7.99.0
       '@sentry/utils': 7.99.0
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-cli-htmlbars: 6.3.0
       ember-cli-typescript: 5.2.1
@@ -4019,12 +4040,12 @@ packages:
     hasBin: true
     dev: true
 
-  /available-typed-arrays@1.0.5:
-    resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+  /available-typed-arrays@1.0.6:
+    resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==}
     engines: {node: '>= 0.4'}
 
-  /aws-sdk@2.1547.0:
-    resolution: {integrity: sha512-jk7u3KtDZ5F20k2X6D2FhndpLGkt3ZuNfRU5crp+fI6B/GFj/S91GJDoZh/Yw3rW+CemY1sFmdFT8ReA2G8WkA==}
+  /aws-sdk@2.1549.0:
+    resolution: {integrity: sha512-SoVfrrV3A2mxH+NV2tA0eMtG301glhewvhL3Ob4107qLWjvwjy/CoWLclMLmfXniTGxbI8tsgN0r5mLZUKey3Q==}
     engines: {node: '>= 10.0.0'}
     dependencies:
       buffer: 4.9.2
@@ -4241,7 +4262,7 @@ packages:
       webpack: 4.47.0
     dev: true
 
-  /babel-loader@8.3.0(@babel/core@7.23.9)(webpack@5.90.0):
+  /babel-loader@8.3.0(@babel/core@7.23.9)(webpack@5.90.1):
     resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
     engines: {node: '>= 8.9'}
     peerDependencies:
@@ -4253,9 +4274,9 @@ packages:
       loader-utils: 2.0.4
       make-dir: 3.1.0
       schema-utils: 2.7.1
-      webpack: 5.90.0
+      webpack: 5.90.1
 
-  /babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.90.0):
+  /babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.90.1):
     resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
     engines: {node: '>= 14.15.0'}
     peerDependencies:
@@ -4265,7 +4286,7 @@ packages:
       '@babel/core': 7.23.9(supports-color@8.1.1)
       find-cache-dir: 4.0.0
       schema-utils: 4.2.0
-      webpack: 5.90.0
+      webpack: 5.90.1
     dev: true
 
   /babel-messages@6.23.0:
@@ -4807,7 +4828,6 @@ packages:
   /binary-extensions@2.2.0:
     resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
     engines: {node: '>=8'}
-    requiresBuild: true
     dev: true
 
   /binaryextensions@2.3.0:
@@ -5561,8 +5581,8 @@ packages:
     resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==}
     hasBin: true
     dependencies:
-      caniuse-lite: 1.0.30001582
-      electron-to-chromium: 1.4.653
+      caniuse-lite: 1.0.30001583
+      electron-to-chromium: 1.4.655
     dev: true
 
   /browserslist@4.22.3:
@@ -5570,8 +5590,8 @@ packages:
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
     dependencies:
-      caniuse-lite: 1.0.30001581
-      electron-to-chromium: 1.4.651
+      caniuse-lite: 1.0.30001583
+      electron-to-chromium: 1.4.655
       node-releases: 2.0.14
       update-browserslist-db: 1.0.13(browserslist@4.22.3)
 
@@ -5622,7 +5642,7 @@ packages:
     resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==}
     dependencies:
       base64-js: 1.5.1
-      ieee754: 1.2.1
+      ieee754: 1.1.13
       isarray: 1.0.0
     dev: true
 
@@ -5749,7 +5769,7 @@ packages:
     resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
     dependencies:
       browserslist: 4.22.3
-      caniuse-lite: 1.0.30001582
+      caniuse-lite: 1.0.30001583
       lodash.memoize: 4.1.2
       lodash.uniq: 4.5.0
     dev: true
@@ -5758,12 +5778,8 @@ packages:
     resolution: {integrity: sha512-ANscoxMPL2Rrffj9x6qDqRQu4jGhYD06Fg/ma4g3fkv1CVEe6xB3pfOHiurPNLsCJb75V/02ZCTdYjpovSd6XA==}
     dev: true
 
-  /caniuse-lite@1.0.30001581:
-    resolution: {integrity: sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==}
-
-  /caniuse-lite@1.0.30001582:
-    resolution: {integrity: sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==}
-    dev: true
+  /caniuse-lite@1.0.30001583:
+    resolution: {integrity: sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==}
 
   /capture-exit@2.0.0:
     resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==}
@@ -6543,14 +6559,6 @@ packages:
       sha.js: 2.4.11
     dev: true
 
-  /cross-spawn@5.1.0:
-    resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
-    dependencies:
-      lru-cache: 4.1.5
-      shebang-command: 1.2.0
-      which: 1.2.14
-    dev: true
-
   /cross-spawn@6.0.5:
     resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==}
     engines: {node: '>=4.8'}
@@ -6597,7 +6605,7 @@ packages:
     engines: {node: '>=12 || >=16'}
     dev: true
 
-  /css-loader@5.2.7(webpack@5.90.0):
+  /css-loader@5.2.7(webpack@5.90.1):
     resolution: {integrity: sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==}
     engines: {node: '>= 10.13.0'}
     peerDependencies:
@@ -6613,7 +6621,7 @@ packages:
       postcss-value-parser: 4.2.0
       schema-utils: 3.3.0
       semver: 7.5.4
-      webpack: 5.90.0
+      webpack: 5.90.1
 
   /css-select@1.2.0:
     resolution: {integrity: sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==}
@@ -7167,12 +7175,8 @@ packages:
       jake: 10.8.7
     dev: true
 
-  /electron-to-chromium@1.4.651:
-    resolution: {integrity: sha512-jjks7Xx+4I7dslwsbaFocSwqBbGHQmuXBJUK9QBZTIrzPq3pzn6Uf2szFSP728FtLYE3ldiccmlkOM/zhGKCpA==}
-
-  /electron-to-chromium@1.4.653:
-    resolution: {integrity: sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==}
-    dev: true
+  /electron-to-chromium@1.4.655:
+    resolution: {integrity: sha512-2yszojF7vIZ68adIOvzV4bku8OZad9w5H9xF3ZAMZjPuOjBarlflUkjN6DggdV+L71WZuKUfKUhov/34+G5QHg==}
 
   /elliptic@6.5.4:
     resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
@@ -7196,7 +7200,7 @@ packages:
       - supports-color
     dev: true
 
-  /ember-a11y-testing@6.1.1(@babel/core@7.23.9)(@ember/test-helpers@3.2.1)(qunit@2.20.0)(webpack@5.90.0):
+  /ember-a11y-testing@6.1.1(@babel/core@7.23.9)(@ember/test-helpers@3.2.1)(qunit@2.20.0)(webpack@5.90.1):
     resolution: {integrity: sha512-bDpw5+B2q++xwz5DWcbYB6dXp6nNe4jBwDkT6CqMESiVWWsSKPHs3ygt1Y89ESucesRIiv/49gNKMftZNsCpkw==}
     engines: {node: 16.* || >= 18}
     peerDependencies:
@@ -7206,13 +7210,13 @@ packages:
       qunit:
         optional: true
     dependencies:
-      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.0)
+      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.1)
       '@ember/test-waiters': 3.1.0
       '@scalvert/ember-setup-middleware-reporter': 0.1.1
       axe-core: 4.8.3
       body-parser: 1.20.2
       broccoli-persistent-filter: 3.1.3
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-cli-typescript: 4.2.1
       ember-cli-version-checker: 5.1.2
@@ -7245,7 +7249,7 @@ packages:
     dependencies:
       '@ember/test-waiters': 3.1.0
       '@embroider/addon-shim': 1.8.7
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -7289,7 +7293,7 @@ packages:
       - webpack-command
     dev: true
 
-  /ember-auto-import@2.7.2(webpack@5.90.0):
+  /ember-auto-import@2.7.2(webpack@5.90.1):
     resolution: {integrity: sha512-pkWIljmJClYL17YBk8FjO7NrZPQoY9v0b+FooJvaHf/xlDQIBYVP7OaDHbNuNbpj7+wAwSDAnnwxjCoLsmm4cw==}
     engines: {node: 12.* || 14.* || >= 16}
     dependencies:
@@ -7300,8 +7304,8 @@ packages:
       '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9)
       '@babel/preset-env': 7.23.9(@babel/core@7.23.9)
       '@embroider/macros': 1.13.5
-      '@embroider/shared-internals': 2.5.1
-      babel-loader: 8.3.0(@babel/core@7.23.9)(webpack@5.90.0)
+      '@embroider/shared-internals': 2.5.2(supports-color@8.1.1)
+      babel-loader: 8.3.0(@babel/core@7.23.9)(webpack@5.90.1)
       babel-plugin-ember-modules-api-polyfill: 3.5.0
       babel-plugin-ember-template-compilation: 2.2.1
       babel-plugin-htmlbars-inline-precompile: 5.3.1
@@ -7311,20 +7315,20 @@ packages:
       broccoli-merge-trees: 4.2.0
       broccoli-plugin: 4.0.7
       broccoli-source: 3.0.1
-      css-loader: 5.2.7(webpack@5.90.0)
+      css-loader: 5.2.7(webpack@5.90.1)
       debug: 4.3.4(supports-color@8.1.1)
       fs-extra: 10.1.0
       fs-tree-diff: 2.0.1
       handlebars: 4.7.8
       js-string-escape: 1.0.1
       lodash: 4.17.21
-      mini-css-extract-plugin: 2.7.7(webpack@5.90.0)
+      mini-css-extract-plugin: 2.8.0(webpack@5.90.1)
       minimatch: 3.1.2
       parse5: 6.0.1
       resolve: 1.22.8
       resolve-package-path: 4.0.3
       semver: 7.5.4
-      style-loader: 2.0.0(webpack@5.90.0)
+      style-loader: 2.0.0(webpack@5.90.1)
       typescript-memoize: 1.1.1
       walk-sync: 3.0.0
     transitivePeerDependencies:
@@ -7357,7 +7361,7 @@ packages:
       ember-cache-primitive-polyfill: 1.0.1(@babel/core@7.23.9)
       ember-cli-babel: 7.26.11
       ember-cli-babel-plugin-helpers: 1.1.1
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - '@babel/core'
       - '@glint/template'
@@ -7371,7 +7375,7 @@ packages:
       ember-source: ^3.28.0 || >= 4.0.0
     dependencies:
       ember-cli-babel: 7.26.11
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
       git-repo-info: 2.1.1
     transitivePeerDependencies:
       - supports-color
@@ -7593,7 +7597,7 @@ packages:
     resolution: {integrity: sha512-6M1r9Au0sWCwHONyzLqgJzTRCpAskqJptN/HKJFzORZ917iflEl3Z4g1r22UVJau8Iwoc6hdB6TKZ2Ake5b51g==}
     engines: {node: 14.* || >= 16}
     dependencies:
-      aws-sdk: 2.1547.0
+      aws-sdk: 2.1549.0
       core-object: 3.1.5
       ember-cli-deploy-plugin: 0.2.9
       rsvp: 4.8.5
@@ -7671,7 +7675,7 @@ packages:
     resolution: {integrity: sha512-+kYMoEh+RPVrrGy3wkURnY35nv8qfQQYZ50ESaodS8wAYzXAgJqcy72zRmJ+wbP66ZPBABfKdC3CtwWqQkS6jQ==}
     engines: {node: 14.* || 16.* || 18.* || >= 20}
     dependencies:
-      aws-sdk: 2.1547.0
+      aws-sdk: 2.1549.0
       core-object: 3.1.5
       ember-cli-deploy-plugin: 0.2.9
       mime-types: 2.1.35
@@ -7706,14 +7710,14 @@ packages:
       - supports-color
     dev: true
 
-  /ember-cli-flash@4.0.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.0):
+  /ember-cli-flash@4.0.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.1):
     resolution: {integrity: sha512-FEynX637xuFlmjMptAUBlww+GeYBcalnMYtDtzsBtLvnsBfU2Gd8xZVrCqQaqEAmHobxKLrYdTKu0YSY7ptIuQ==}
     engines: {node: 12.* || 14.* || >= 16}
     dependencies:
       '@ember/render-modifiers': 2.1.0(@babel/core@7.23.9)(ember-source@5.3.0)
       '@glimmer/component': 1.1.2(@babel/core@7.23.9)
       '@glimmer/tracking': 1.1.2
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-cli-htmlbars: 6.3.0
     transitivePeerDependencies:
@@ -7807,7 +7811,7 @@ packages:
       broccoli-merge-trees: 4.2.0
       ember-cli-babel: 7.26.11
       ember-cli-htmlbars: 6.3.0
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
       rsvp: 4.8.5
       sharp: 0.32.6
     transitivePeerDependencies:
@@ -7831,7 +7835,7 @@ packages:
     engines: {node: ^4.5 || 6.* || >= 7.*}
     dev: true
 
-  /ember-cli-mirage@3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.0):
+  /ember-cli-mirage@3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.1):
     resolution: {integrity: sha512-SthtL8i/tvo7F/XwkSa/XEE1h99p2o1wS2O3DzyEzPqySpSD8a8YKauvN/FgZQVwjcXJuprSrCiWne8+bb6rYA==}
     engines: {node: 16.* || >= 18}
     peerDependencies:
@@ -7852,18 +7856,18 @@ packages:
         optional: true
     dependencies:
       '@babel/core': 7.23.9(supports-color@8.1.1)
-      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.0)
+      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.1)
       '@embroider/macros': 1.13.5
       broccoli-file-creator: 2.1.1
       broccoli-funnel: 3.0.8
       broccoli-merge-trees: 4.2.0
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 8.2.0(@babel/core@7.23.9)
       ember-data: 5.3.0(@babel/core@7.23.9)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0)
       ember-get-config: 2.1.1
       ember-inflector: 4.0.2
       ember-qunit: 8.0.2(@ember/test-helpers@3.2.1)(ember-source@5.3.0)(qunit@2.20.0)
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
       miragejs: 0.1.48
     transitivePeerDependencies:
       - '@glint/template'
@@ -7906,7 +7910,7 @@ packages:
       '@ember/jquery':
         optional: true
     dependencies:
-      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.0)
+      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.1)
       '@embroider/addon-shim': 1.8.7
       '@ro0gr/ceibo': 2.2.0
       '@types/jquery': 3.5.29
@@ -8328,7 +8332,7 @@ packages:
       ember-cli-babel-plugin-helpers: 1.1.1
       ember-cli-htmlbars: 6.3.0
       ember-compatibility-helpers: 1.2.7(@babel/core@7.23.9)
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - '@babel/core'
       - supports-color
@@ -8375,10 +8379,10 @@ packages:
       '@ember/string': 3.1.1
       '@embroider/macros': 1.13.5
       broccoli-merge-trees: 4.2.0
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 8.2.0(@babel/core@7.23.9)
       ember-inflector: 4.0.2
-      webpack: 5.90.0
+      webpack: 5.90.1
     transitivePeerDependencies:
       - '@babel/core'
       - '@glimmer/tracking'
@@ -8444,7 +8448,7 @@ packages:
       - supports-color
     dev: true
 
-  /ember-file-upload@9.0.0(@ember/test-helpers@3.2.1)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-cli-mirage@3.0.2)(ember-modifier@4.1.0)(miragejs@0.1.48)(tracked-built-ins@3.3.0)(webpack@5.90.0):
+  /ember-file-upload@9.0.0(@ember/test-helpers@3.2.1)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-cli-mirage@3.0.2)(ember-modifier@4.1.0)(miragejs@0.1.48)(tracked-built-ins@3.3.0)(webpack@5.90.1):
     resolution: {integrity: sha512-7WJTXOoeXqN34aDNpKBIgUf07pYDjtqZRcyqYe4U1GNJGfJdsL+y42y+bKYLfuHLhbOAlZ1ZyEop34LR+hOZSA==}
     engines: {node: 16.* || >= 18}
     peerDependencies:
@@ -8461,14 +8465,14 @@ packages:
       miragejs:
         optional: true
     dependencies:
-      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.0)
+      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.1)
       '@ember/test-waiters': 3.1.0
       '@embroider/addon-shim': 1.8.7
       '@embroider/macros': 1.13.5
       '@glimmer/component': 1.1.2(@babel/core@7.23.9)
       '@glimmer/tracking': 1.1.2
-      ember-auto-import: 2.7.2(webpack@5.90.0)
-      ember-cli-mirage: 3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
+      ember-cli-mirage: 3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.1)
       ember-modifier: 4.1.0(ember-source@5.3.0)
       miragejs: 0.1.48
       tracked-built-ins: 3.3.0
@@ -8485,7 +8489,7 @@ packages:
       ember-source: ^4.0.0 || ^5.0.0
     dependencies:
       '@embroider/addon-shim': 1.8.7
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
       focus-trap: 6.9.4
     transitivePeerDependencies:
       - supports-color
@@ -8500,7 +8504,7 @@ packages:
       ember-cli-babel: 7.26.11
       ember-cli-typescript: 5.2.1
       ember-cli-version-checker: 5.1.2
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -8528,12 +8532,12 @@ packages:
       - supports-color
     dev: true
 
-  /ember-in-viewport@4.1.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.0):
+  /ember-in-viewport@4.1.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.1):
     resolution: {integrity: sha512-3y6qWXuJPPc6vX2GfxWgtr+sDjb+bdZF9babstr0lTd8t8c1b42gJ13GaJqlylZIyZz2dEXFCimX9WAeudPv9g==}
     engines: {node: 12.* || 14.* || >= 16}
     dependencies:
       '@embroider/macros': 1.13.5
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-destroyable-polyfill: 2.0.3(@babel/core@7.23.9)
       ember-modifier: 4.1.0(ember-source@5.3.0)
@@ -8557,7 +8561,7 @@ packages:
       - supports-color
     dev: true
 
-  /ember-intl@6.4.0(@babel/core@7.23.9)(webpack@5.90.0):
+  /ember-intl@6.4.0(@babel/core@7.23.9)(webpack@5.90.1):
     resolution: {integrity: sha512-BXxscjgoqzXQ6tUSV8aJsQcUAIcfqLJnNjegarFWdBBHLEOffQ8xARhvQC0hW40zGi/RHFEyTTx7vbiCPGtP1A==}
     engines: {node: 16.* || >= 18}
     peerDependencies:
@@ -8576,7 +8580,7 @@ packages:
       broccoli-stew: 3.0.0
       calculate-cache-key-for-tree: 2.0.0
       cldr-core: 44.1.0
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 8.2.0(@babel/core@7.23.9)
       ember-cli-typescript: 5.2.1
       eventemitter3: 5.0.1
@@ -8611,7 +8615,7 @@ packages:
       ember-source: ^4.0.0 || ^5.0.0
     dependencies:
       '@embroider/addon-shim': 1.8.7
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -8650,7 +8654,7 @@ packages:
       '@embroider/addon-shim': 1.8.7
       ember-cli-normalize-entity-name: 1.0.0
       ember-cli-string-utils: 1.1.0
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -8677,11 +8681,11 @@ packages:
     engines: {node: 8.* || >= 10.*}
     dev: true
 
-  /ember-on-resize-modifier@2.0.2(ember-source@5.3.0)(webpack@5.90.0):
+  /ember-on-resize-modifier@2.0.2(ember-source@5.3.0)(webpack@5.90.1):
     resolution: {integrity: sha512-7mcD7CNbiCaZEIASWlRz/Wmn47afCMSFTdQJSSUe0WCgnXxn9DVoqZ39B7ZuddTHa0V6otTFrV/lIRYpggQ+eg==}
     engines: {node: 12.* || 14.* || >= 16}
     dependencies:
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-cli-htmlbars: 5.7.2
       ember-modifier: 4.1.0(ember-source@5.3.0)
@@ -8701,7 +8705,7 @@ packages:
     dependencies:
       '@embroider/addon-shim': 1.8.7
       '@simple-dom/document': 1.4.0
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -8713,11 +8717,11 @@ packages:
       ember-source: '>=4.0.0'
       qunit: ^2.13.0
     dependencies:
-      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.0)
+      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.1)
       '@embroider/addon-shim': 1.8.7
       '@embroider/macros': 1.13.5
       ember-cli-test-loader: 3.1.0
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
       qunit: 2.20.0
     transitivePeerDependencies:
       - '@glint/template'
@@ -8758,7 +8762,7 @@ packages:
         optional: true
     dependencies:
       ember-cli-babel: 7.26.11
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -8794,7 +8798,7 @@ packages:
       '@ember/test-helpers':
         optional: true
     dependencies:
-      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.0)
+      '@ember/test-helpers': 3.2.1(ember-source@5.3.0)(webpack@5.90.1)
       '@ember/test-waiters': 3.1.0
       '@embroider/addon-shim': 1.8.7
       '@embroider/macros': 1.13.5
@@ -8806,7 +8810,7 @@ packages:
       - supports-color
     dev: true
 
-  /ember-simple-charts@11.0.1(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.0):
+  /ember-simple-charts@11.0.1(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.1):
     resolution: {integrity: sha512-xstuVhudN/3MRhlmPfDVIWerAS8DIvWlDqTq2ji9XnYTvKjKFvdScJdpNTRFftpEpGWB4Rr0oEllJqLLbR1bRA==}
     engines: {node: 14.* || 16.* || >= 18, npm: '>= 8'}
     peerDependencies:
@@ -8825,15 +8829,15 @@ packages:
       d3-selection: 3.0.0
       d3-shape: 3.2.0
       d3-transition: 3.0.1(d3-selection@3.0.0)
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-cli-htmlbars: 6.3.0
       ember-cli-sass: 11.0.1
       ember-concurrency: 3.1.1(@babel/core@7.23.9)(ember-source@5.3.0)
       ember-in-element-polyfill: 1.0.1
-      ember-on-resize-modifier: 2.0.2(ember-source@5.3.0)(webpack@5.90.0)
+      ember-on-resize-modifier: 2.0.2(ember-source@5.3.0)(webpack@5.90.1)
       ember-resize-observer-polyfill: 0.0.1
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - '@babel/core'
       - '@glint/environment-ember-loose'
@@ -8844,7 +8848,7 @@ packages:
       - webpack-command
     dev: true
 
-  /ember-source@5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0):
+  /ember-source@5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1):
     resolution: {integrity: sha512-MnsPEYo2gArYzlY0uu5bBH60oNYcgcayYQEd27nJumuaceN1sMLMu1jGQmjiQzZ4b6U5edEUNQbCIZ/9TXbASw==}
     engines: {node: '>= 16.*'}
     peerDependencies:
@@ -8879,7 +8883,7 @@ packages:
       broccoli-funnel: 3.0.8
       broccoli-merge-trees: 4.2.0
       chalk: 4.1.2
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 7.26.11
       ember-cli-get-component-path-option: 1.0.0
       ember-cli-is-package-missing: 1.0.0
@@ -8995,7 +8999,7 @@ packages:
     dependencies:
       '@embroider/addon-shim': 1.8.7
       ember-functions-as-helper-polyfill: 2.1.2(ember-source@5.3.0)
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -9136,7 +9140,7 @@ packages:
     dependencies:
       array-buffer-byte-length: 1.0.0
       arraybuffer.prototype.slice: 1.0.2
-      available-typed-arrays: 1.0.5
+      available-typed-arrays: 1.0.6
       call-bind: 1.0.5
       es-set-tostringtag: 2.0.2
       es-to-primitive: 1.2.1
@@ -9156,7 +9160,7 @@ packages:
       is-regex: 1.1.4
       is-shared-array-buffer: 1.0.2
       is-string: 1.0.7
-      is-typed-array: 1.1.12
+      is-typed-array: 1.1.13
       is-weakref: 1.0.2
       object-inspect: 1.13.1
       object-keys: 1.1.1
@@ -9172,7 +9176,7 @@ packages:
       typed-array-byte-offset: 1.0.0
       typed-array-length: 1.0.4
       unbox-primitive: 1.0.2
-      which-typed-array: 1.1.13
+      which-typed-array: 1.1.14
 
   /es-module-lexer@1.4.1:
     resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
@@ -9182,7 +9186,7 @@ packages:
     engines: {node: '>= 0.4'}
     dependencies:
       get-intrinsic: 1.2.2
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
       hasown: 2.0.0
 
   /es-to-primitive@1.2.1:
@@ -9302,7 +9306,7 @@ packages:
       eslint-plugin-es-x: 7.5.0(eslint@8.56.0)
       get-tsconfig: 4.7.2
       globals: 13.24.0
-      ignore: 5.3.0
+      ignore: 5.3.1
       is-builtin-module: 3.2.1
       is-core-module: 2.13.1
       minimatch: 3.1.2
@@ -9414,7 +9418,7 @@ packages:
       glob-parent: 6.0.2
       globals: 13.24.0
       graphemer: 1.4.0
-      ignore: 5.3.0
+      ignore: 5.3.1
       imurmurhash: 0.1.4
       is-glob: 4.0.3
       is-path-inside: 3.0.3
@@ -10619,7 +10623,7 @@ packages:
       dir-glob: 3.0.1
       fast-glob: 3.3.2
       glob: 7.2.3
-      ignore: 5.3.0
+      ignore: 5.3.1
       merge2: 1.4.1
       slash: 3.0.0
     dev: true
@@ -10631,7 +10635,7 @@ packages:
       array-union: 2.1.0
       dir-glob: 3.0.1
       fast-glob: 3.3.2
-      ignore: 5.3.0
+      ignore: 5.3.1
       merge2: 1.4.1
       slash: 3.0.0
     dev: true
@@ -10642,7 +10646,7 @@ packages:
     dependencies:
       dir-glob: 3.0.1
       fast-glob: 3.3.2
-      ignore: 5.3.0
+      ignore: 5.3.1
       merge2: 1.4.1
       slash: 4.0.0
     dev: true
@@ -10738,8 +10742,8 @@ packages:
     resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
     engines: {node: '>= 0.4'}
 
-  /has-tostringtag@1.0.0:
-    resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+  /has-tostringtag@1.0.2:
+    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
     engines: {node: '>= 0.4'}
     dependencies:
       has-symbols: 1.0.3
@@ -11028,12 +11032,12 @@ packages:
     resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==}
     dev: true
 
-  /ignore@5.3.0:
-    resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
+  /ignore@5.3.1:
+    resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
     engines: {node: '>= 4'}
     dev: true
 
-  /ilios-common@87.1.0(@ember/test-helpers@3.2.1)(@popperjs/core@2.11.8)(class-validator@0.14.1)(ember-qunit@8.0.2)(ember-source@5.3.0)(flatpickr@4.6.13)(froala-editor@4.1.4)(luxon@3.4.4)(miragejs@0.1.48)(mockdate@3.0.5)(moment-timezone@0.5.44)(moment@2.30.1)(query-string@8.1.0)(scroll-into-view@1.16.2)(striptags@3.2.0)(tracked-built-ins@3.3.0)(typeface-nunito-sans@1.1.13)(typeface-nunito@1.1.13)(validator@13.11.0)(webpack@5.90.0):
+  /ilios-common@87.1.0(@ember/test-helpers@3.2.1)(@popperjs/core@2.11.8)(class-validator@0.14.1)(ember-qunit@8.0.2)(ember-source@5.3.0)(flatpickr@4.6.13)(froala-editor@4.1.4)(luxon@3.4.4)(miragejs@0.1.48)(mockdate@3.0.5)(moment-timezone@0.5.44)(moment@2.30.1)(query-string@8.1.0)(scroll-into-view@1.16.2)(striptags@3.2.0)(tracked-built-ins@3.3.0)(typeface-nunito-sans@1.1.13)(typeface-nunito@1.1.13)(validator@13.11.0)(webpack@5.90.1):
     resolution: {integrity: sha512-S/XhlLdDoLFzXpUU1FcZKme1CFbc5RR8pbY+lq+/NgKfq4ZycmNt7vG+hkRajRmdBUNKxTfFjezywW3Y++t5/A==}
     engines: {node: '>= 18', npm: use pnpm, yarn: use pnpm}
     peerDependencies:
@@ -11067,11 +11071,11 @@ packages:
       broccoli-merge-trees: 4.2.0
       class-validator: 0.14.1
       ember-async-data: 1.0.3(ember-source@5.3.0)
-      ember-auto-import: 2.7.2(webpack@5.90.0)
+      ember-auto-import: 2.7.2(webpack@5.90.1)
       ember-cli-babel: 8.2.0(@babel/core@7.23.9)
-      ember-cli-flash: 4.0.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.0)
+      ember-cli-flash: 4.0.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.1)
       ember-cli-htmlbars: 6.3.0
-      ember-cli-mirage: 3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.0)
+      ember-cli-mirage: 3.0.2(@ember/test-helpers@3.2.1)(ember-data@5.3.0)(ember-qunit@8.0.2)(ember-source@5.3.0)(miragejs@0.1.48)(webpack@5.90.1)
       ember-cli-page-object: 2.2.1(@ember/test-helpers@3.2.1)
       ember-cli-string-helpers: 6.1.0
       ember-click-outside: 6.1.0(ember-source@5.3.0)
@@ -11080,18 +11084,18 @@ packages:
       ember-data: 5.3.0(@babel/core@7.23.9)(@ember/string@3.1.1)(@glimmer/tracking@1.1.2)(ember-source@5.3.0)
       ember-event-helpers: 0.1.1
       ember-feature-flags: 6.0.0
-      ember-file-upload: 9.0.0(@ember/test-helpers@3.2.1)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-cli-mirage@3.0.2)(ember-modifier@4.1.0)(miragejs@0.1.48)(tracked-built-ins@3.3.0)(webpack@5.90.0)
+      ember-file-upload: 9.0.0(@ember/test-helpers@3.2.1)(@glimmer/component@1.1.2)(@glimmer/tracking@1.1.2)(ember-cli-mirage@3.0.2)(ember-modifier@4.1.0)(miragejs@0.1.48)(tracked-built-ins@3.3.0)(webpack@5.90.1)
       ember-focus-trap: 1.1.0(ember-source@5.3.0)
       ember-in-element-polyfill: 1.0.1
-      ember-in-viewport: 4.1.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.0)
+      ember-in-viewport: 4.1.0(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.1)
       ember-inflector: 4.0.2
-      ember-intl: 6.4.0(@babel/core@7.23.9)(webpack@5.90.0)
+      ember-intl: 6.4.0(@babel/core@7.23.9)(webpack@5.90.1)
       ember-math-helpers: 4.0.0(ember-source@5.3.0)
       ember-modifier: 4.1.0(ember-source@5.3.0)
       ember-moment: 10.0.0(moment-timezone@0.5.44)(moment@2.30.1)
       ember-simple-auth: 6.0.0(@ember/test-helpers@3.2.1)
-      ember-simple-charts: 11.0.1(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.0)
-      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.0)
+      ember-simple-charts: 11.0.1(@babel/core@7.23.9)(ember-source@5.3.0)(webpack@5.90.1)
+      ember-source: 5.3.0(@babel/core@7.23.9)(@glimmer/component@1.1.2)(rsvp@4.8.5)(webpack@5.90.1)
       ember-test-selectors: 6.0.0
       ember-truth-helpers: 4.0.3(ember-source@5.3.0)
       flatpickr: 4.6.13
@@ -11100,9 +11104,9 @@ packages:
       miragejs: 0.1.48
       mockdate: 3.0.5
       moment: 2.30.1
-      moment-locales-webpack-plugin: 1.2.0(moment@2.30.1)(webpack@5.90.0)
+      moment-locales-webpack-plugin: 1.2.0(moment@2.30.1)(webpack@5.90.1)
       moment-timezone: 0.5.44
-      moment-timezone-data-webpack-plugin: 1.5.1(moment-timezone@0.5.44)(webpack@5.90.0)
+      moment-timezone-data-webpack-plugin: 1.5.1(moment-timezone@0.5.44)(webpack@5.90.1)
       normalize.css: 8.0.1
       query-string: 8.1.0
       scroll-into-view: 1.16.2
@@ -11316,7 +11320,7 @@ packages:
     engines: {node: '>= 0.4'}
     dependencies:
       call-bind: 1.0.5
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
     dev: true
 
   /is-array-buffer@3.0.2:
@@ -11324,7 +11328,7 @@ packages:
     dependencies:
       call-bind: 1.0.5
       get-intrinsic: 1.2.2
-      is-typed-array: 1.1.12
+      is-typed-array: 1.1.13
 
   /is-array@1.0.1:
     resolution: {integrity: sha512-gxiZ+y/u67AzpeFmAmo4CbtME/bs7J2C++su5zQzvQyaxUqVzkh69DI+jN+KZuSO6JaH6TIIU6M6LhqxMjxEpw==}
@@ -11355,7 +11359,6 @@ packages:
   /is-binary-path@2.1.0:
     resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
     engines: {node: '>=8'}
-    requiresBuild: true
     dependencies:
       binary-extensions: 2.2.0
     dev: true
@@ -11365,7 +11368,7 @@ packages:
     engines: {node: '>= 0.4'}
     dependencies:
       call-bind: 1.0.5
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
 
   /is-buffer@1.1.6:
     resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
@@ -11398,7 +11401,7 @@ packages:
     resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
     engines: {node: '>= 0.4'}
     dependencies:
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
 
   /is-descriptor@0.1.7:
     resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
@@ -11458,7 +11461,7 @@ packages:
     resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
     engines: {node: '>= 0.4'}
     dependencies:
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
     dev: true
 
   /is-git-url@1.0.0:
@@ -11499,7 +11502,7 @@ packages:
     resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
     engines: {node: '>= 0.4'}
     dependencies:
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
 
   /is-number@3.0.0:
     resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
@@ -11560,7 +11563,7 @@ packages:
     engines: {node: '>= 0.4'}
     dependencies:
       call-bind: 1.0.5
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
 
   /is-running@2.1.0:
     resolution: {integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==}
@@ -11585,7 +11588,7 @@ packages:
     resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
     engines: {node: '>= 0.4'}
     dependencies:
-      has-tostringtag: 1.0.0
+      has-tostringtag: 1.0.2
 
   /is-symbol@1.0.4:
     resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
@@ -11599,11 +11602,11 @@ packages:
       core-util-is: 1.0.3
     dev: true
 
-  /is-typed-array@1.1.12:
-    resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
+  /is-typed-array@1.1.13:
+    resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
     engines: {node: '>= 0.4'}
     dependencies:
-      which-typed-array: 1.1.13
+      which-typed-array: 1.1.14
 
   /is-typedarray@1.0.0:
     resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
@@ -12318,13 +12321,6 @@ packages:
     engines: {node: 14 || >=16.14}
     dev: true
 
-  /lru-cache@4.1.5:
-    resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
-    dependencies:
-      pseudomap: 1.0.2
-      yallist: 2.1.2
-    dev: true
-
   /lru-cache@5.1.1:
     resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
     dependencies:
@@ -12634,16 +12630,7 @@ packages:
     engines: {node: '>=4'}
     dev: true
 
-  /mini-css-extract-plugin@2.7.7(webpack@5.90.0):
-    resolution: {integrity: sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw==}
-    engines: {node: '>= 12.13.0'}
-    peerDependencies:
-      webpack: ^5.0.0
-    dependencies:
-      schema-utils: 4.2.0
-      webpack: 5.90.0
-
-  /mini-css-extract-plugin@2.8.0(webpack@5.90.0):
+  /mini-css-extract-plugin@2.8.0(webpack@5.90.1):
     resolution: {integrity: sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==}
     engines: {node: '>= 12.13.0'}
     peerDependencies:
@@ -12651,8 +12638,7 @@ packages:
     dependencies:
       schema-utils: 4.2.0
       tapable: 2.2.1
-      webpack: 5.90.0
-    dev: true
+      webpack: 5.90.1
 
   /minimalistic-assert@1.0.1:
     resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
@@ -12796,7 +12782,7 @@ packages:
     resolution: {integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==}
     dev: true
 
-  /moment-locales-webpack-plugin@1.2.0(moment@2.30.1)(webpack@5.90.0):
+  /moment-locales-webpack-plugin@1.2.0(moment@2.30.1)(webpack@5.90.1):
     resolution: {integrity: sha512-QAi5v0OlPUP7GXviKMtxnpBAo8WmTHrUNN7iciAhNOEAd9evCOvuN0g1N7ThIg3q11GLCkjY1zQ2saRcf/43nQ==}
     peerDependencies:
       moment: ^2.8.0
@@ -12804,10 +12790,10 @@ packages:
     dependencies:
       lodash.difference: 4.5.0
       moment: 2.30.1
-      webpack: 5.90.0
+      webpack: 5.90.1
     dev: true
 
-  /moment-timezone-data-webpack-plugin@1.5.1(moment-timezone@0.5.44)(webpack@5.90.0):
+  /moment-timezone-data-webpack-plugin@1.5.1(moment-timezone@0.5.44)(webpack@5.90.1):
     resolution: {integrity: sha512-1le6a35GgYdWMVYFzrfpE/F6Pk4bj0M3QKD6Iv6ba9LqWGoVqHQRHyCTLvLis5E1J98Sz40ET6yhZzMVakwpjg==}
     peerDependencies:
       moment-timezone: '>= 0.1.0'
@@ -12816,7 +12802,7 @@ packages:
       find-cache-dir: 3.3.2
       make-dir: 3.1.0
       moment-timezone: 0.5.44
-      webpack: 5.90.0
+      webpack: 5.90.1
     dev: true
 
   /moment-timezone@0.5.44:
@@ -13061,7 +13047,6 @@ packages:
   /normalize-path@2.1.1:
     resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
     engines: {node: '>=0.10.0'}
-    requiresBuild: true
     dependencies:
       remove-trailing-separator: 1.1.0
     dev: true
@@ -13285,11 +13270,6 @@ packages:
       mem: 5.1.1
     dev: true
 
-  /os-shim@0.1.3:
-    resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==}
-    engines: {node: '>= 0.4.0'}
-    dev: true
-
   /os-tmpdir@1.0.2:
     resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
     engines: {node: '>=0.10.0'}
@@ -13710,15 +13690,6 @@ packages:
       picocolors: 1.0.0
       source-map-js: 1.0.2
 
-  /pre-commit@1.2.2:
-    resolution: {integrity: sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA==}
-    requiresBuild: true
-    dependencies:
-      cross-spawn: 5.1.0
-      spawn-sync: 1.0.15
-      which: 1.2.14
-    dev: true
-
   /prebuild-install@7.1.1:
     resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
     engines: {node: '>=10'}
@@ -13853,10 +13824,6 @@ packages:
       event-stream: 3.3.4
     dev: true
 
-  /pseudomap@1.0.2:
-    resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
-    dev: true
-
   /psl@1.9.0:
     resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
     dev: true
@@ -14116,7 +14083,6 @@ packages:
   /readdirp@3.6.0:
     resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
     engines: {node: '>=8.10.0'}
-    requiresBuild: true
     dependencies:
       picomatch: 2.3.1
     dev: true
@@ -14231,7 +14197,6 @@ packages:
 
   /remove-trailing-separator@1.1.0:
     resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
-    requiresBuild: true
     dev: true
 
   /remove-types@1.0.0:
@@ -15101,14 +15066,6 @@ packages:
     resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
     dev: true
 
-  /spawn-sync@1.0.15:
-    resolution: {integrity: sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==}
-    requiresBuild: true
-    dependencies:
-      concat-stream: 1.6.2
-      os-shim: 0.1.3
-    dev: true
-
   /spdx-correct@3.2.0:
     resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
     dependencies:
@@ -15228,8 +15185,8 @@ packages:
     resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
     dev: true
 
-  /streamx@2.15.6:
-    resolution: {integrity: sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==}
+  /streamx@2.15.7:
+    resolution: {integrity: sha512-NPEKS5+yjyo597eafGbKW5ujh7Sm6lDLHZQd/lRSz6S0VarpADBJItqfB4PnwpS+472oob1GX5cCY9vzfJpHUA==}
     dependencies:
       fast-fifo: 1.3.2
       queue-tick: 1.0.1
@@ -15387,7 +15344,7 @@ packages:
     resolution: {integrity: sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==}
     dev: true
 
-  /style-loader@2.0.0(webpack@5.90.0):
+  /style-loader@2.0.0(webpack@5.90.1):
     resolution: {integrity: sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==}
     engines: {node: '>= 10.13.0'}
     peerDependencies:
@@ -15395,7 +15352,7 @@ packages:
     dependencies:
       loader-utils: 2.0.4
       schema-utils: 3.3.0
-      webpack: 5.90.0
+      webpack: 5.90.1
 
   /style-search@0.1.0:
     resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
@@ -15487,7 +15444,7 @@ packages:
       globby: 11.1.0
       globjoin: 0.1.4
       html-tags: 3.3.1
-      ignore: 5.3.0
+      ignore: 5.3.1
       import-lazy: 4.0.0
       imurmurhash: 0.1.4
       is-plain-object: 5.0.0
@@ -15667,7 +15624,7 @@ packages:
     dependencies:
       b4a: 1.6.4
       fast-fifo: 1.3.2
-      streamx: 2.15.6
+      streamx: 2.15.7
     dev: true
 
   /tar@6.2.0:
@@ -15715,7 +15672,7 @@ packages:
       worker-farm: 1.7.0
     dev: true
 
-  /terser-webpack-plugin@5.3.10(webpack@5.90.0):
+  /terser-webpack-plugin@5.3.10(webpack@5.90.1):
     resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
     engines: {node: '>= 10.13.0'}
     peerDependencies:
@@ -15736,7 +15693,7 @@ packages:
       schema-utils: 3.3.0
       serialize-javascript: 6.0.2
       terser: 5.27.0
-      webpack: 5.90.0
+      webpack: 5.90.1
 
   /terser@4.8.1:
     resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==}
@@ -15932,7 +15889,7 @@ packages:
     resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==}
     engines: {node: '>=0.8'}
 
-  /thread-loader@3.0.4(webpack@5.90.0):
+  /thread-loader@3.0.4(webpack@5.90.1):
     resolution: {integrity: sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==}
     engines: {node: '>= 10.13.0'}
     peerDependencies:
@@ -15943,7 +15900,7 @@ packages:
       loader-utils: 2.0.4
       neo-async: 2.6.2
       schema-utils: 3.3.0
-      webpack: 5.90.0
+      webpack: 5.90.1
     dev: true
 
   /through2@2.0.5:
@@ -16209,7 +16166,7 @@ packages:
     dependencies:
       call-bind: 1.0.5
       get-intrinsic: 1.2.2
-      is-typed-array: 1.1.12
+      is-typed-array: 1.1.13
 
   /typed-array-byte-length@1.0.0:
     resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
@@ -16218,24 +16175,24 @@ packages:
       call-bind: 1.0.5
       for-each: 0.3.3
       has-proto: 1.0.1
-      is-typed-array: 1.1.12
+      is-typed-array: 1.1.13
 
   /typed-array-byte-offset@1.0.0:
     resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
     engines: {node: '>= 0.4'}
     dependencies:
-      available-typed-arrays: 1.0.5
+      available-typed-arrays: 1.0.6
       call-bind: 1.0.5
       for-each: 0.3.3
       has-proto: 1.0.1
-      is-typed-array: 1.1.12
+      is-typed-array: 1.1.13
 
   /typed-array-length@1.0.4:
     resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
     dependencies:
       call-bind: 1.0.5
       for-each: 0.3.3
-      is-typed-array: 1.1.12
+      is-typed-array: 1.1.13
 
   /typedarray-to-buffer@3.1.5:
     resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
@@ -16446,8 +16403,8 @@ packages:
       inherits: 2.0.4
       is-arguments: 1.1.1
       is-generator-function: 1.0.10
-      is-typed-array: 1.1.12
-      which-typed-array: 1.1.13
+      is-typed-array: 1.1.13
+      which-typed-array: 1.1.14
     dev: true
 
   /utils-merge@1.0.1:
@@ -16664,13 +16621,13 @@ packages:
       - utf-8-validate
     dev: true
 
-  /webpack-retry-chunk-load-plugin@3.1.1(webpack@5.90.0):
+  /webpack-retry-chunk-load-plugin@3.1.1(webpack@5.90.1):
     resolution: {integrity: sha512-BKq/7EcelyWUUI6SeBaUKB1G+fSZP0rlxIwRQ+aO6mK5tffljaHdpJ4I2q54rpaaKjSbwbZRQlaITXe93SL9nA==}
     peerDependencies:
       webpack: '>=5.0.0'
     dependencies:
       prettier: 2.8.8
-      webpack: 5.90.0
+      webpack: 5.90.1
     dev: true
 
   /webpack-sources@1.4.3:
@@ -16724,8 +16681,8 @@ packages:
       - supports-color
     dev: true
 
-  /webpack@5.90.0:
-    resolution: {integrity: sha512-bdmyXRCXeeNIePv6R6tGPyy20aUobw4Zy8r0LUS2EWO+U+Ke/gYDgsCh7bl5rB6jPpr4r0SZa6dPxBxLooDT3w==}
+  /webpack@5.90.1:
+    resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==}
     engines: {node: '>=10.13.0'}
     hasBin: true
     peerDependencies:
@@ -16755,7 +16712,7 @@ packages:
       neo-async: 2.6.2
       schema-utils: 3.3.0
       tapable: 2.2.1
-      terser-webpack-plugin: 5.3.10(webpack@5.90.0)
+      terser-webpack-plugin: 5.3.10(webpack@5.90.1)
       watchpack: 2.4.0
       webpack-sources: 3.2.3
     transitivePeerDependencies:
@@ -16816,22 +16773,15 @@ packages:
       is-string: 1.0.7
       is-symbol: 1.0.4
 
-  /which-typed-array@1.1.13:
-    resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
+  /which-typed-array@1.1.14:
+    resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
     engines: {node: '>= 0.4'}
     dependencies:
-      available-typed-arrays: 1.0.5
+      available-typed-arrays: 1.0.6
       call-bind: 1.0.5
       for-each: 0.3.3
       gopd: 1.0.1
-      has-tostringtag: 1.0.0
-
-  /which@1.2.14:
-    resolution: {integrity: sha512-16uPglFkRPzgiUXYMi1Jf8Z5EzN1iB4V0ZtMXcHZnwsBtQhhHeCqoWw7tsUY42hJGNDWtUsVLTjakIa5BgAxCw==}
-    hasBin: true
-    dependencies:
-      isexe: 2.0.0
-    dev: true
+      has-tostringtag: 1.0.2
 
   /which@1.3.1:
     resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
@@ -17007,10 +16957,6 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  /yallist@2.1.2:
-    resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
-    dev: true
-
   /yallist@3.1.1:
     resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
 
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 0000000000..3c993ab32c
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,2 @@
+packages:
+  - "packages/frontend"