Skip to content

Commit

Permalink
opens S24 apps, adds new scoping pod question
Browse files Browse the repository at this point in the history
  • Loading branch information
aanxniee committed Feb 22, 2024
1 parent e3a6a58 commit 28d14dc
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 10 deletions.
15 changes: 14 additions & 1 deletion components/apply/AppForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,20 @@ interface RoleQuestion {

interface ShortAnswerRoleQuestion extends RoleQuestion {
type?: "short-answer";
description?: string;
maxLength: number;
}

interface MultiSelectRoleQuestion extends RoleQuestion {
type: "multi-select";
description?: string;
options: string[];
other: boolean;
}

interface SelectRoleQuestion extends RoleQuestion {
type: "select";
description?: string;
options: string[];
other: boolean;
}
Expand All @@ -45,7 +54,11 @@ export type RoleSpecificQuestion = {
id: number;
role: string;
open?: boolean;
questions: (ShortAnswerRoleQuestion | MultiSelectRoleQuestion)[];
questions: (
| ShortAnswerRoleQuestion
| MultiSelectRoleQuestion
| SelectRoleQuestion
)[];
};

export type AppFormValues = {
Expand Down
17 changes: 17 additions & 0 deletions components/apply/RoleSpecificQuestions.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { FC, useMemo } from "react";
import MultiSelectInput from "@components/common/MultiSelectInput";
import SelectInput from "@components/common/SelectInput";
import TextAreaInput from "@components/common/TextAreaInput";
import { AppFormValues, RoleSpecificQuestion } from "./AppForm";

Expand All @@ -18,6 +19,7 @@ type AggregatedQuestion = RoleSpecificQuestion["questions"][0] & {
type QuestionInputProps = {
id: string;
labelText: string;
description?: string;
value?: string | string[];
question: RoleSpecificQuestion["questions"][0];
readOnly: boolean;
Expand All @@ -30,6 +32,8 @@ const QuestionInput = ({
question,
readOnly,
}: QuestionInputProps) => {
const { description } = question;

switch (question.type) {
case "multi-select": {
return (
Expand All @@ -43,6 +47,19 @@ const QuestionInput = ({
/>
);
}
case "select": {
return (
<SelectInput
id={id}
labelText={labelText}
description={description}
value={value as string}
required
readOnly={readOnly}
{...question}
/>
);
}
case "short-answer":
default:
return (
Expand Down
6 changes: 6 additions & 0 deletions components/common/SelectInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { FC } from "react";
type Props = {
readonly id: string;
readonly labelText?: string;
readonly description?: string;
readonly value?: string;
readonly options: string[];
readonly required: boolean;
Expand All @@ -13,6 +14,7 @@ type Props = {
const SelectInput: FC<Props> = ({
id,
labelText,
description,
value,
options,
required,
Expand All @@ -24,6 +26,9 @@ const SelectInput: FC<Props> = ({
<label htmlFor={id}>
{labelText}
{required && <span className="text-pink-500">*</span>}
{description && (
<p className="text-charcoal-500 my-4">{description}</p>
)}
</label>
)}
{readOnly ? (
Expand All @@ -32,6 +37,7 @@ const SelectInput: FC<Props> = ({
<Field
as="select"
id={id}
value={value ?? ""}
name={id}
className="border-l-charcoal-300 text-charcoal-600 border border-charcoal-300 rounded-md px-4 py-3 border-l-4 focus:outline-none focus:ring-1 focus:ring-blue-100 focus:border-blue-100"
style={{ minHeight: "50px" }}
Expand Down
2 changes: 1 addition & 1 deletion components/join/Hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const Hero: FC = () => {
{APPLICATION_IS_LIVE && (
<div>
<Button
className="bg-transparent border-blue text-blue-100 md:border-white md:text-white"
className="bg-transparent border-blue text-blue-100 md:border-white md:blue-100"
size="lg"
variant="secondary"
href={APPLICATION_LINK}
Expand Down
10 changes: 5 additions & 5 deletions constants/applications.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import dayjs from "@utils/dayjs";
* Format: YYYY-MM-DD HH:MM:SS
*/
export const APPLICATION_OPEN_DATETIME = dayjs.tz(
"2023-10-25 00:00:00",
"2024-02-22 00:00:00",
"America/Toronto",
);

Expand All @@ -14,7 +14,7 @@ export const APPLICATION_OPEN_DATETIME = dayjs.tz(
* Format: YYYY-MM-DD HH:MM:SS
*/
export const APPLICATION_CLOSE_DATETIME = dayjs.tz(
"2023-11-12 23:59:59",
"2024-03-09 23:59:59",
"America/Toronto",
);

Expand All @@ -25,16 +25,16 @@ export const APPLICATION_CLOSE_DATETIME_WITH_GRACE_PERIOD =
* Date that invites are sent out for interviews
* Format: MMM DD
*/
export const INVITE_DATE = "November 23rd";
export const INVITE_DATE = "March 18th - 20th";

/**
* Final decision date
* Format: MMM DD
*/
export const FINAL_DECISION_DATE = "December 9th";
export const FINAL_DECISION_DATE = "April 13th";

// Term Blueprint is currently recruiting for (1 term after the current term)
export const APPLICATION_TERM = "Winter 2024";
export const APPLICATION_TERM = "Summer 2024";

// URL of application page
export const APPLICATION_LINK = "/apply";
Expand Down
52 changes: 49 additions & 3 deletions constants/role-specific-questions.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@
"uniqueId": 1,
"question": "Tell us about a challenging technical problem that you've worked on in the past and how you solved it.",
"maxLength": 1000
},
{
"uniqueId": 3,
"question": "Would you be interested in joining a scoping pod?",
"description": "Scoping pods include a designer, developer, and PM to join VP Scoping for meetings with NPO’s to provide their opinion and expertise! This will be in addition to the existing responsibilities of your role.",
"type": "select",
"options": ["Yes", "No"]
}
]
},
Expand All @@ -28,6 +35,13 @@
"uniqueId": 2,
"question": "Send us a link to your portfolio or a project you've worked on. If you do not have a link, please tell us about a project below. Describe the process and what you learned from it.",
"maxLength": 1000
},
{
"uniqueId": 3,
"question": "Would you be interested in joining a scoping pod?",
"description": "Scoping pods include a designer, developer, and PM to join VP Scoping for meetings with NPO’s to provide their opinion and expertise! This will be in addition to the existing responsibilities of your role.",
"type": "select",
"options": ["Yes", "No"]
}
]
},
Expand All @@ -38,6 +52,13 @@
{
"question": "What is your favourite product?",
"maxLength": 1000
},
{
"uniqueId": 3,
"question": "Would you be interested in joining a scoping pod?",
"description": "Scoping pods include a designer, developer, and PM to join VP Scoping for meetings with NPO’s to provide their opinion and expertise! This will be in addition to the existing responsibilities of your role.",
"type": "select",
"options": ["Yes", "No"]
}
]
},
Expand All @@ -53,14 +74,20 @@
{
"question": "Tell us about a past experience working with other people where you demonstrated leadership.",
"maxLength": 1000
},
{
"uniqueId": 3,
"question": "Would you be interested in joining a scoping pod?",
"description": "Scoping pods include a designer, developer, and PM to join VP Scoping for meetings with NPO’s to provide their opinion and expertise! This will be in addition to the existing responsibilities of your role.",
"type": "select",
"options": ["Yes", "No"]
}
]
},

{
"id": "6",
"role": "Content Strategist",
"open": false,
"questions": [
{
"question": "What do you see as the purposes of content within the user experience of an app?",
Expand All @@ -85,6 +112,13 @@
{
"question": "Consider this hypothetical scenario: Blueprint is thinking of creating a standardized code repository for new projects to build off of. This idea has both supporters and detractors among the project leads. In bullet points, explain how you would build alignment among developers. Please state any assumptions or details as necessary.",
"maxLength": 1000
},
{
"uniqueId": 3,
"question": "Would you be interested in joining a scoping pod?",
"description": "Scoping pods include a designer, developer, and PM to join VP Scoping for meetings with NPO’s to provide their opinion and expertise! This will be in addition to the existing responsibilities of your role.",
"type": "select",
"options": ["Yes", "No"]
}
]
},
Expand All @@ -100,13 +134,26 @@
"uniqueId": 2,
"question": "Send us a link to your portfolio or a project you've worked on. If you do not have a link, please tell us about a project below. Describe the process and what you learned from it.",
"maxLength": 1000
},
{
"uniqueId": 3,
"question": "Would you be interested in joining a scoping pod?",
"description": "Scoping pods include a designer, developer, and PM to join VP Scoping for meetings with NPO’s to provide their opinion and expertise! This will be in addition to the existing responsibilities of your role.",
"type": "select",
"options": ["Yes", "No"]
}
]
},
{
"id": "10",
"role": "VP Product",
"questions": []
"questions": [{
"uniqueId": 3,
"question": "Would you be interested in joining a scoping pod?",
"description": "Scoping pods include a designer, developer, and PM to join VP Scoping for meetings with NPO’s to provide their opinion and expertise! This will be in addition to the existing responsibilities of your role.",
"type": "select",
"options": ["Yes", "No"]
}]
},
{
"id": "11",
Expand All @@ -116,7 +163,6 @@
{
"id": "12",
"role": "VP Communications",
"open": false,
"questions": [
{
"question": "What's a cool idea you think Blueprint should do to elevate our current branding and image in the community?",
Expand Down

0 comments on commit 28d14dc

Please sign in to comment.