From 8519ded5ce8fe4e560601fcdf4a2927b6b175308 Mon Sep 17 00:00:00 2001 From: Kristin Ouellette Muskat <122126772+kristinoletmuskat@users.noreply.github.com> Date: Tue, 19 Mar 2024 16:04:44 -0600 Subject: [PATCH 1/5] Adding secondary research template Signed-off-by: Kristin Ouellette Muskat <122126772+kristinoletmuskat@users.noreply.github.com> --- .../research/Secondary research template.xlsx | Bin 0 -> 22787 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentation/research/Secondary research template.xlsx diff --git a/documentation/research/Secondary research template.xlsx b/documentation/research/Secondary research template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4d0009bcd88b7cb1f3a536010842b2c0f58afb56 GIT binary patch literal 22787 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 literal 0 HcmV?d00001 From 0e35073a93a267b323c5087c77b19c8b659a452f Mon Sep 17 00:00:00 2001 From: Kristin Ouellette Muskat <122126772+kristinoletmuskat@users.noreply.github.com> Date: Tue, 19 Mar 2024 17:00:40 -0600 Subject: [PATCH 2/5] Create researchplan.md (#174) Signed-off-by: Kristin Ouellette Muskat <122126772+kristinoletmuskat@users.noreply.github.com> --- documentation/research/researchplan.md | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 documentation/research/researchplan.md diff --git a/documentation/research/researchplan.md b/documentation/research/researchplan.md new file mode 100644 index 0000000..2de7332 --- /dev/null +++ b/documentation/research/researchplan.md @@ -0,0 +1,56 @@ +## RESEARCH PLAN + +### Design Research Goals + +We will conduct design research activities with first-time prospective college students aged 15-25 to understand their needs, desires, and mental models related to finding and applying to college. We are looking to learn: + + + +* How prospective students think about the college application process: + * What they anticipate the experience will be like, and how it works (aka, the mental model) + * What pain points they forsee for themselves or peers + * What their need, goals, and fears are + * Other tools they use to accomplish college-related tasks + * What motivates and demotivates them related to applying to college - functionally, emotionally and socially +* How effective our MVP is at helping students meet their needs related to: + * Finding colleges that might be a good fit + * Applying for those colleges +* How students would rate and prioritize post-MVP features like saving colleges, tracking applications, and the college/financial aid quiz. + + +### Methodology + +We propose 60-minute, 1:1 interviews with students. They could follow this general format: + + + +* Part 1: Open ended questions +* Part 2: Usability testing session +* Part 3: Concept testing session + +In a **usability-testing session**, a researcher asks a participant to perform tasks, usually using one or more specific user interfaces. While the participant completes each task, the researcher observes the participant’s behavior and listens for feedback. + +A **concept testing session** involves collecting users’ thoughts and attitudes about a product idea (“concept”) in its early stages, usually through a qualitative survey or interview. It is used very early in the discovery phase of the design process to understand whether a specific product idea meets users’ needs and expectations. + + +### Outcome + +Our learnings will inform content and visual enhancements along with metrics to the measure effectivity, ensuring that we are building for the right mental model, and help us build out a roadmap for the product’s future. + + +### Recruitment Approach + +Since we’re focusing on first-time college applicants, our primary source of students would likely be highschools or programs for high-school aged students (like community-based organizations, college prep programs, etc). We would prioritize speaking with students from underserved communities, or those who may need more support overcoming systemic obstacles to college. + +We might also invite a few adults from advocacy organization that could help us understand the landscape of college applications and financial aid. + +Our recruitment methods would be determined in collaboration with DoE stakeholders. + + +### Next steps + + + +* Research plan adjustment and approval with stakeholders +* Flesh out recruitment plan +* Create moderator guide From 635152a8f258f1d275b851f3a79ecec55c96d7d7 Mon Sep 17 00:00:00 2001 From: Kristin Ouellette Muskat <122126772+kristinoletmuskat@users.noreply.github.com> Date: Tue, 19 Mar 2024 17:07:47 -0600 Subject: [PATCH 3/5] Delete documentation/design/design.md (#181) it's empty Signed-off-by: Kristin Ouellette Muskat <122126772+kristinoletmuskat@users.noreply.github.com> --- documentation/design/design.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 documentation/design/design.md diff --git a/documentation/design/design.md b/documentation/design/design.md deleted file mode 100644 index 3d14cb7..0000000 --- a/documentation/design/design.md +++ /dev/null @@ -1 +0,0 @@ -# Design From 276d952605579c0365ec5351a6e74928dd9e2332 Mon Sep 17 00:00:00 2001 From: Buddhima Kurukulasuriya <143657406+buddhima-coforma@users.noreply.github.com> Date: Tue, 19 Mar 2024 18:17:51 -0500 Subject: [PATCH 4/5] Update Post-MVP Ecosystem Design Thinking.md (#182) Signed-off-by: Buddhima Kurukulasuriya <143657406+buddhima-coforma@users.noreply.github.com> Co-authored-by: Dan Miller --- .../Post-MVP Ecosystem Design Thinking.md | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/documentation/design/Post-MVP Ecosystem Design Thinking.md b/documentation/design/Post-MVP Ecosystem Design Thinking.md index 0e33c72..87a2779 100644 --- a/documentation/design/Post-MVP Ecosystem Design Thinking.md +++ b/documentation/design/Post-MVP Ecosystem Design Thinking.md @@ -1,39 +1,37 @@ # Post-MVP Ecosystem Design Thinking -To iterate on our MVP designs, we focused on items in our prioritization matrix that held high user value but brought additional implementation challenges over a short timeframe: +To iterate on our MVP goals and designs, we focused on items in our prioritization matrix that held high user value. We did not have sufficient capacity in our initial sprint to build these concepts, hence we drafted the following guiding thoughts and wireframes. +## Enable users to shortlist colleges and track applications -## The Authenticated Experience - - -1. **Account creation**: Students may want to manage their college search and application process within just one website. Allowing users to create accounts and store their data encourages students to make smart return visits. +1. **Creating an account to store their information**: Students may want to manage their college search and application process within just one website. Allowing users to create accounts and store their data encourages students to make smart return visits. (While authentication isn’t necessarily a feature users would directly want, it is an enabler for the capabilities listed below.) ![Screenshot of a mural with thinking about what fields might make up the student object, where the entry points might be, and how to present a profile](https://github.com/coforma/swift-tech-challenge/assets/122126772/5540f4a3-5f2d-42cc-b0be-1eff4eba5837) -3. **Saving colleges to a list**: Students may want to save colleges to a list that they can edit and continue to add to over time. +2. **Selecting and saving colleges to a shortlist**: Students may want to save colleges to a list that they can edit and continue to add to over time. ![Screenshots of prototype with a favorite icon and a favorites list](https://github.com/coforma/swift-tech-challenge/assets/122126772/f8112b7a-6700-4e51-9c57-f183c36d4c5b) -4. **Tracking applications**: Students who have submitted applications to different colleges may benefit from application status tracking, which would allow students to view which applications are in-progress, submitted, and unfinished. +3. **Tracking applications**: Students who have submitted applications to different colleges may benefit from application status tracking, which would allow students to view which applications are in-progress, submitted, and unfinished. Applications page -## Support for First-Generation College Students +## Support for first-generation college students -Students first in their family to go to college face additional obstacles in attending. The application and enrollment process is unintuitive and a lack of clarity regarding costs and financial aid can cause confusion. After launching the initial functionality, we’d like to focus on supporting this population with additional tools and content. This functionality could have the added benefit of exposing any student to college options and aspects of choice they hadn’t considered. +Students first in their family to go to college face additional obstacles in attending. The application and enrollment process is unintuitive and a lack of clarity regarding costs and financial aid can cause confusion. After launching the initial functionality, we’d like to focus on supporting this population with additional tools and content, which—in addition to supporting a more straightforward enrollment experience—could have the added benefit of exposing students to college options they hadn’t considered. -1. **Guided ‘College match’ quiz**: There is an incredible amount of data about colleges for students to parse through as they compare options. While we did restrict our filters to a set we thought might be most useful, we also think a guided walkthrough of a few of the filters, structured as a ‘My College Matches’ quiz, might be helpful. +1. **Guiding and educating through a ‘College match’ quiz**: There is an incredible amount of data about colleges for students to read through as they compare options. While we did restrict our filters to a set we believed to be most useful for prospective students, we also believe that a guided walkthrough of a few of the filters—structured as a “My College Matches” quiz—would be helpful. ![Screenshot of a college quiz experience](https://github.com/coforma/swift-tech-challenge/assets/122126772/6c3e2998-3033-4bbc-8768-d3f434e58bed) -2. **Viewing net cost by income level on list page**: College costs can be so confusing! We made an assumption that students and families would be unlikely to understand the nuances of many of the cost fields provided, and thus looked for ways to simplify or explain in the tool post-MVP. We considered that for students from low-income backgrounds, the average net cost might be VERY different from the average cost for students from all income levels. We explored a tool that could display the average cost for a specific income bracket on the college card by asking a user to simply select their income bracket. We would definitely want to test this with users, because there is a risk that students and families could be even more confused. +2. **Viewing net cost by income level when browsing colleges**: College costs can be intimidating and unclear. We made an assumption that the nuances of many of the cost fields provided could be confusing, and thus looked for ways to clarify in the tool post-MVP. We considered that, for students from low-income backgrounds, the average net cost might vary significantly from the average cost for students across all income levels. We explored a feature that could display the average cost for a specific income bracket on the college card by asking users to select their income bracket. We would definitely want to test this with users, because there is a risk that students and families could be even more confused. ![Screenshots of early design thinking around a college cost estimator](https://github.com/coforma/swift-tech-challenge/assets/122126772/332d235e-9e4c-41ac-8fdf-95f69e0f32bc) -3. **Static content about applying and financial aid**: Students who do not have an accurate mental model of how college and financial aid works may need extra content to help them build that mental model, and thus be better equipped to successfully enroll and graduate from an affordable college. We explored the creation of static content about applying to and paying for college using chat GPT, and verified the information with an internal subject matter expert. It would be interesting to explore the best way to surface and present this information in user research. +3. **Providing educational content on applying and financing**: Students who do not have an accurate mental model of how college and financial aid works may need extra content to help them build that mental model, and thus be better equipped to successfully enroll and graduate from an affordable college. We explored the creation of [static content UPDATE LINK!!](link) about applying to and paying for college using chat GPT, and verified the information with an internal subject matter expert. It would be interesting to explore the best way to surface and present this information in user research. From 4bcfac30934760f50b3f51ac93eb9dc7883b9120 Mon Sep 17 00:00:00 2001 From: Brax Excell Date: Tue, 19 Mar 2024 18:29:48 -0500 Subject: [PATCH 5/5] filters persist now (#184) --- src/app/components/form/DropdownField.tsx | 18 +- src/app/components/layout/Browse.tsx | 24 +- src/app/components/modals/FilterModal.tsx | 216 ++++++++---------- .../jest/frontend/DetailsPage.test.tsx | 12 +- .../components/cards/CollegeCard.test.tsx | 9 +- src/app/utils/analytics.tsx | 2 +- 6 files changed, 130 insertions(+), 151 deletions(-) diff --git a/src/app/components/form/DropdownField.tsx b/src/app/components/form/DropdownField.tsx index 601a8e6..aa91c5c 100644 --- a/src/app/components/form/DropdownField.tsx +++ b/src/app/components/form/DropdownField.tsx @@ -3,25 +3,12 @@ import { FieldHint, DropdownOptions } from "../../types"; import { Field } from "formik"; -export const DropdownField = ({ - id, - label, - required, - name, - options, - hint, -}: Props) => { - const fieldLabel = required ? `${label} *` : `${label}`; +export const DropdownField = ({ id, label, name, options, hint }: Props) => { return ( <> - {hint && ( -
- {hint.text} -
- )} { - const { filteredInstitutions } = useContext(InstitutionContext); + const { filteredInstitutions, institutionsArray, setFilteredInstitutions } = + useContext(InstitutionContext); const [scrollPosition, setScrollPosition] = useState(false); const [isModalVisible, setIsModalVisible] = useState(false); @@ -31,6 +34,19 @@ export const Browse = () => { setIsModalVisible(true); }; + const closeModal = () => { + setIsModalVisible(false); + }; + + const applyFilters = async (filters: any) => { + const filteredInstitutions = filterInstitutions( + institutionsArray!, + filters, + ); + setFilteredInstitutions(filteredInstitutions); + closeModal(); + }; + if (!filteredInstitutions) return ; return ( <> @@ -45,9 +61,9 @@ export const Browse = () => { )} - {isModalVisible && ( - setIsModalVisible(false)} /> - )} + + {isModalVisible && } + {filteredInstitutions?.length > 0 ? (
    {filteredInstitutions.map((school: College) => ( diff --git a/src/app/components/modals/FilterModal.tsx b/src/app/components/modals/FilterModal.tsx index a6dbce8..ecbbda2 100644 --- a/src/app/components/modals/FilterModal.tsx +++ b/src/app/components/modals/FilterModal.tsx @@ -1,44 +1,21 @@ "use client"; -import { MouseEventHandler, useContext } from "react"; -import Image from "next/image"; +import { MouseEventHandler } from "react"; //components +import Image from "next/image"; import { Button, ButtonGroup, ModalFooter, ModalHeading, } from "@trussworks/react-uswds"; -import { CheckboxField, DropdownField, USWDSForm } from "../../components"; -// utils -import { InstitutionContext } from "../institutions/InstitutionProvider"; -import { filterInstitutions } from "../../utils/filtering"; +import { CheckboxField, DropdownField } from "../../components"; //assets import close from "../../assets/icons/close.svg"; //types import { CollegeType, stateOptions } from "../../types"; export const FilterModal = ({ closeHandler }: Props) => { - const { institutionsArray, setFilteredInstitutions } = - useContext(InstitutionContext); - // const [filterState, setFilterState] = useState(undefined); - - const closeModal = () => { - closeHandler(); - // TODO: Add tracking - }; - - // TODO: Add tracking - const applyFilters = async (filters: any) => { - // TODO: persist filters - const filteredInstitutions = filterInstitutions( - institutionsArray!, - filters, - ); - setFilteredInstitutions(filteredInstitutions); - closeHandler(); - }; - return (
    { aria-describedby="modal-1-description" >
    - -
    - Filter schools -
    -

    Location

    - -
    -
    -

    Type

    - -
    -
    -

    Undergraduate population

    - 20", label: "20,000 +" }, - ]} - /> -
    -
    -

    Graduation rate

    - 90", label: "More than 90%" }, - { id: "60-90", label: "60% - 90%" }, - { id: "30-60", label: "30% - 60%" }, - { id: "<30", label: "Less than 30%" }, - ]} - /> -
    -
    -

    Average cost per year

    - 60$", label: "More than $60,000" }, - ]} - /> -
    - - - - - - - +
    + Filter schools +
    +

    Location

    + +
    +
    +

    Type

    + +
    +
    +

    Undergraduate population

    + 20", label: "20,000 +" }, + ]} + /> +
    +
    +

    Graduation rate

    + 90", label: "More than 90%" }, + { id: "60-90", label: "60% - 90%" }, + { id: "30-60", label: "30% - 60%" }, + { id: "<30", label: "Less than 30%" }, + ]} + /> +
    +
    +

    Average cost per year

    + 60$", label: "More than $60,000" }, + ]} + />
    - + + + + + + + +
    ); diff --git a/src/app/testing/jest/frontend/DetailsPage.test.tsx b/src/app/testing/jest/frontend/DetailsPage.test.tsx index 12efcc2..da33ad0 100644 --- a/src/app/testing/jest/frontend/DetailsPage.test.tsx +++ b/src/app/testing/jest/frontend/DetailsPage.test.tsx @@ -4,6 +4,7 @@ import InstitutionDetails from "@/src/app/[id]/page"; import { InstitutionContext } from "@/src/app/components"; import { InstitutionContextShape } from "@/src/app/components/institutions/InstitutionProvider"; import { mockCollege } from "../setupJest"; +import { act } from "react-dom/test-utils"; const testParams = { id: 0, @@ -11,6 +12,9 @@ const testParams = { const testContext: InstitutionContextShape = { institutionsArray: [mockCollege], + filteredInstitutions: [mockCollege], + institutionsObject: {}, + setFilteredInstitutions: () => {}, }; const testDetailsPageComponent = () => ( @@ -33,8 +37,10 @@ describe("Test InstitutionDetails Page", () => { describe("Test InstitutionDetails Page accessibility", () => { it("Should not have basic accessibility issues", async () => { - const { container } = render(testDetailsPageComponent()); - const results = await axe(container); - expect(results).toHaveNoViolations(); + await act(async () => { + const { container } = render(testDetailsPageComponent()); + const results = await axe(container); + expect(results).toHaveNoViolations(); + }); }); }); diff --git a/src/app/testing/jest/frontend/components/cards/CollegeCard.test.tsx b/src/app/testing/jest/frontend/components/cards/CollegeCard.test.tsx index bb97e74..5597eea 100644 --- a/src/app/testing/jest/frontend/components/cards/CollegeCard.test.tsx +++ b/src/app/testing/jest/frontend/components/cards/CollegeCard.test.tsx @@ -50,13 +50,12 @@ describe("Test CollegeCard", () => { "Apply", ); }); + test("On click, apply link fires tracking event", async () => { const mixpanelTrackSpy = jest.spyOn(mixpanel, "track"); const applyButton = screen.getByRole("link", { name: /apply/i }); expect(applyButton).toBeVisible(); - await act(async () => { - await userEvent.click(applyButton); - }); + await userEvent.click(applyButton); expect(mixpanelTrackSpy).toHaveBeenCalledTimes(1); }); @@ -64,9 +63,7 @@ describe("Test CollegeCard", () => { const mixpanelTrackSpy = jest.spyOn(mixpanel, "track"); const viewMoreButton = screen.getByRole("link", { name: /View more/i }); expect(viewMoreButton).toBeVisible(); - await act(async () => { - await userEvent.click(viewMoreButton); - }); + await userEvent.click(viewMoreButton); expect(mixpanelTrackSpy).toHaveBeenCalledTimes(1); }); }); diff --git a/src/app/utils/analytics.tsx b/src/app/utils/analytics.tsx index 3029492..f28d012 100644 --- a/src/app/utils/analytics.tsx +++ b/src/app/utils/analytics.tsx @@ -6,7 +6,7 @@ export const InitAnalytics = () => { useEffect(() => { const isProd = process.env.NODE_ENV === "production"; mixpanel.init(process.env.NEXT_PUBLIC_MIXPANEL_PROJECT_TOKEN || "", { - debug: !isProd, + debug: true, ignore_dnt: !isProd, track_pageview: "full-url", persistence: "localStorage",