Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 29기 지원서 질문 데이터 추가 #249

Merged
merged 20 commits into from
Mar 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions frontend/app/application/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ import { CURRENT_GENERATION } from "@/src/constants";
import {
APPLICATION_DESIGN,
APPLICATION_NAVBAR_DESIGN,
} from "@/src/constants/application/28/designer";
} from "@/src/constants/application/29/designer";
import {
APPLICATION_DEVELOPER,
APPLICATION_NAVBAR_DEVELOPER,
} from "@/src/constants/application/28/developer";
} from "@/src/constants/application/29/developer";
import {
APPLICATION_MANAGER,
APPLICATION_NAVBAR_MANAGER,
} from "@/src/constants/application/28/manager";
} from "@/src/constants/application/29/manager";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 부분도 나중에는 동적 임폴트문으로 변경해도 좋을 것 같아요!
하나씩 변경하는 것은 아무래도 실수를 범할 위험성이 있는 것 같습니다

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

언젠간 서버로 넘겨야할 놈들이네요..

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사실 저렇게 하지 않고, url에 기수를 집어 넣으므로서 작동하게 하고 싶었습니다...
하지만 BE에서는 허락해주지 않는 그런 컨택스트가 있습니다.

import { useLocalStorage } from "@/src/hooks/useLocalstorage.hook";
import {
applicationDataAtom,
Expand Down
16 changes: 9 additions & 7 deletions frontend/components/applicant/DetailRight.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,24 @@ import { applicantDataFinder } from "@/src/functions/finder";
import { JunctionApplicant } from "./Junction.component";
import { useAtom } from "jotai";
import { applicantQuestionsAtom } from "@/src/stores/applicant";

import { CURRENT_GENERATION } from "@/src/constants";

interface ApplicantDetailRightProps {
data: ApplicantReq[];
}

const ApplicantDetailRight = ({ data }: ApplicantDetailRightProps) => {
const APPLICANT_DEVELOPER =
require(`@/src/constants/applicant/${CURRENT_GENERATION}/developer.ts`).APPLICANT_DEVELOPER;
const APPLICANT_DEVELOPER = require(
`@/src/constants/applicant/${CURRENT_GENERATION}/developer.ts`
).APPLICANT_DEVELOPER;

const APPLICANT_DESIGNER =
require(`@/src/constants/applicant/${CURRENT_GENERATION}/designer.ts`).APPLICANT_DESIGNER;
const APPLICANT_DESIGNER = require(
`@/src/constants/applicant/${CURRENT_GENERATION}/designer.ts`
).APPLICANT_DESIGNER;

const APPLICANT_MANAGER =
require(`@/src/constants/applicant/${CURRENT_GENERATION}/manager.ts`).APPLICANT_MANAGER;
const APPLICANT_MANAGER = require(
`@/src/constants/applicant/${CURRENT_GENERATION}/manager.ts`
).APPLICANT_MANAGER;

const [applicantData, setApplicantData] = useAtom(applicantQuestionsAtom);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const ApplicantCustomHuman = ({
<>
<div className="flex items-center pt-6 pb-12">
<Txt typography="h1" className="px-6 min-w-fit">
{applicantDataFinder(data, customHumanData.value.hunamName.name)}
{applicantDataFinder(data, customHumanData.value.humanName.name)}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 방식(applicantDataFinder)의 진짜 큰 문제점.. 휴먼에러를 못 잡습니다 ㅠ

</Txt>
<div className="h-full flex flex-col gap-2 justify-between">
<Txt>
Expand Down
2 changes: 1 addition & 1 deletion frontend/components/application/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const ApplicationNavbar = ({
<nav className={cn("pl-12 w-full h-full", className)}>
{applicationNavbar.map((navItem, index) => (
<button
className={"text-left p-4 relative"}
className={"text-left p-4 relative w-full"}
onClick={() => onNavbarClick(navItem.id)}
key={navItem.id}
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ const TextArea = ({ node }: TextAreaProps) => {
<div className="flex gap-6">
<div className="flex-1">
<div className="pl-8">
<Txt typography="h6" className="mb-4 block break-keep">
<Txt typography="h6" className="mb-4 block break-all">
{`1) ${node.title}`}
</Txt>
<Txt className="pl-4 block break-keep">{node.subtitle}</Txt>
<Txt className="pl-4 block break-all">{node.subtitle}</Txt>
</div>
</div>
<div className="flex-1 relative">
Expand Down Expand Up @@ -72,13 +72,13 @@ const ApplicationBooleanTextareaLayout = ({
<div className="flex-1">
<div className="mb-4 flex gap-2">
<Txt typography="h6">{`${applicationQuestion.id}. `}</Txt>
<Txt typography="h6" className="break-keep">{`${
<Txt typography="h6" className="break-all">{`${
applicationQuestion.title
}${applicationQuestion.require ? "*" : ""}`}</Txt>
</div>
{applicationQuestion.subtitle && (
<div className="pl-6">
<Txt className="text-sm break-keep">
<Txt className="text-sm break-all">
{applicationQuestion.subtitle}
</Txt>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,32 @@ const ApplicationHorizontalLayout = ({
<div className="flex-1">
<div className="mb-4 flex gap-2">
<Txt typography="h6">{`${applicationQuestion.id}. `}</Txt>
<Txt typography="h6" className="break-keep">{`${
applicationQuestion.title
}${applicationQuestion.require ? "*" : ""}`}</Txt>
<Txt typography="h6" className="break-all whitespace-pre-wrap">
{`${applicationQuestion.title}${applicationQuestion.require ? "*" : ""}`}
</Txt>
</div>
{applicationQuestion.subtitle && (
<div className="pl-6">
<Txt className="text-sm">{applicationQuestion.subtitle}</Txt>
{applicationQuestion.subtitle
.split(/<b>|<\/b>/)
.map((line, index) =>
index % 2 === 1 ? (
<Txt
typography="h6"
className="break-all text-sm whitespace-pre-wrap black"
key={index}
>
{line}
</Txt>
) : (
<Txt
className="break-all text-sm whitespace-pre-wrap"
key={index}
>
{line}
</Txt>
)
)}
{applicationQuestion.alert && (
<div className="mt-4">
<Txt className=" underline font-semibold">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ const RadioCell = ({
radioForCheckData.name === "personalInformationAgree"
? "/application/consent#common"
: radioForCheckData.name === "personalInformationAgreeForPortfolio"
? "/application/consent#portfolio"
: ""
? "/application/consent#portfolio"
: ""
}
target="_blank"
>
Expand Down Expand Up @@ -91,7 +91,7 @@ const ApplicationRadioForCheckLayout = ({
{applicationQuestion.id !== -1 && applicationQuestion.title && (
<>
<Txt typography="h6">{`${applicationQuestion.id}. `}</Txt>
<Txt typography="h6" className="break-keep">{`${
<Txt typography="h6" className="break-all">{`${
applicationQuestion.title
}${applicationQuestion.require ? "*" : ""}`}</Txt>
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const ApplicationVerticalLayout = ({
{applicationQuestion.id !== -1 && applicationQuestion.title && (
<>
<Txt typography="h6">{`${applicationQuestion.id}. `}</Txt>
<Txt typography="h6" className="break-keep">{`${
<Txt typography="h6" className="break-all">{`${
applicationQuestion.title
}${applicationQuestion.require ? "*" : ""}`}</Txt>
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ const ApplicationTimelineLayout = ({
{applicationQuestion.id !== -1 && applicationQuestion.title && (
<div className="pb-6">
<Txt typography="h6">{`${applicationQuestion.id}. `}</Txt>
<Txt typography="h6" className="break-keep">{`${
<Txt typography="h6" className="break-all">{`${
applicationQuestion.title
}${applicationQuestion.require ? "*" : ""}`}</Txt>
</div>
)}
{applicationQuestion.subtitle && (
<>
{applicationQuestion.subtitle.split("\n").map((line, index) => (
<Txt className="break-keep block" key={index}>
<Txt className="break-all block" key={index}>
{line}
</Txt>
))}
Expand Down
6 changes: 3 additions & 3 deletions frontend/components/application/applicationNode/Radio.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ import Txt from "@/components/common/Txt.component";
import {
APPLICATION_DESIGN,
APPLICATION_NAVBAR_DESIGN,
} from "@/src/constants/application/28/designer";
} from "@/src/constants/application/29/designer";
import {
APPLICATION_DEVELOPER,
APPLICATION_NAVBAR_DEVELOPER,
} from "@/src/constants/application/28/developer";
} from "@/src/constants/application/29/developer";
import {
APPLICATION_MANAGER,
APPLICATION_NAVBAR_MANAGER,
} from "@/src/constants/application/28/manager";
} from "@/src/constants/application/29/manager";
import {
ApplicationNode,
type ApplicationRadio,
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/constants/applicant/25.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const APPLICANT: ApplicantNode[] = [
title: "기본 인적 사항을 입력해주세요.*",
type: "customHuman",
value: {
hunamName: { name: "name" },
humanName: { name: "name" },
humanEmail: { name: "email" },
humanPhone: { name: "contacted" },
humanEtc: [
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/constants/applicant/26.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const APPLICANT: ApplicantNode[] = [
title: "기본 인적 사항을 입력해주세요.*",
type: "customHuman",
value: {
hunamName: { name: "name" },
humanName: { name: "name" },
humanEmail: { name: "email" },
humanPhone: { name: "contacted" },
humanEtc: [
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/constants/applicant/27.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const APPLICANT: ApplicantNode[] = [
title: "기본 인적 사항을 입력해주세요.",
type: "customHuman",
value: {
hunamName: { name: "name" },
humanName: { name: "name" },
humanEmail: { name: "email" },
humanPhone: { name: "contacted" },
humanEtc: [
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/constants/applicant/28.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const APPLICANT: ApplicantNode[] = [
title: "기본 인적 사항을 입력해주세요.",
type: "customHuman",
value: {
hunamName: { name: "name" },
humanName: { name: "name" },
humanEmail: { name: "email" },
humanPhone: { name: "contacted" },
humanEtc: [
Expand Down
16 changes: 6 additions & 10 deletions frontend/src/constants/applicant/29.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const APPLICANT: ApplicantNode[] = [
title: "기본 인적 사항을 입력해주세요.",
type: "customHuman",
value: {
hunamName: { name: "name" },
humanName: { name: "name" },
humanEmail: { name: "email" },
humanPhone: { name: "contacted" },
humanEtc: [
Expand All @@ -42,11 +42,7 @@ const APPLICANT: ApplicantNode[] = [
},
];

export type ScoreKeyword =
| "실천력"
| "동아리 활동의지"
| "협업"
| "베풀려는 마음";
export type ScoreKeyword = "열정" | "협업" | "성실" | "에코노베이션";

// type ScoreKeywordName =
// | "passion"
Expand All @@ -57,10 +53,10 @@ export type ScoreKeyword =
export const ScoreSequence: {
[key: number]: ScoreKeyword;
} = {
0: "실천력",
1: "동아리 활동의지",
2: "협업",
3: "베풀려는 마음",
0: "열정",
1: "협업",
2: "성실",
3: "에코노베이션",
};

export type Score = {
Expand Down
14 changes: 6 additions & 8 deletions frontend/src/constants/applicant/29/designer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ export const APPLICANT_DESIGNER = [
} as ApplicantTextareaNode,
{
id: 6,
title:
"본인이 계획하고 있는 진로와 이를 위해 노력한 내용을 말씀해주세요.(IT 분야가 아니어도 괜찮습니다)",
title: "디자이너를 희망하는 이유는 무엇인가요?",
type: "textarea",
value: { name: "future" },
} as ApplicantTextareaNode,
Expand Down Expand Up @@ -36,14 +35,14 @@ export const APPLICANT_DESIGNER = [
{
id: 10,
title:
"어떤 일에 도전하고 실패해 본 경험이 있나요? 그 실패를 어떻게 극복했는지 서술해 주세요.(소프트웨어 분야 관련 경험이 아니어도 좋습니다.)",
"무언가에 깊게 빠지거나 파고 들어본 적이 있나요? 좋아하는 것을 위해서 주변에서 인정할 정도로 깊게 빠져본 적이 있다면 서술해주세요.",
type: "textarea",
value: { name: "failure" },
} as ApplicantTextareaNode,
{
id: 11,
title:
"무언가에 깊게 빠지거나 파고 들어본 적이 있나요? 좋아하는 것을 위해서 주변에서 인정할 정도로 깊게 빠져본 적이 있다면 서술해주세요.",
"어떤 일에 도전하고 실패해 본 경험이 있나요? 그 실패를 어떻게 극복했는지 서술해 주세요.(소프트웨어 분야 관련 경험이 아니어도 좋습니다.)",
type: "textarea",
value: { name: "drain" },
} as ApplicantTextareaNode,
Expand All @@ -56,15 +55,14 @@ export const APPLICANT_DESIGNER = [
} as ApplicantTextareaNode,
{
id: 13,
title:
"에코노베이션에 최종 합격 시 신입 기수로 구성된 팀으로 개발 프로젝트에 참여하고, 목표를 달성하기 위해 스스로 끊임없이 배우고 노력합니다. 에코노베이션에 들어오게 된다면 어떤 목표와 학습 계획을 바탕으로 활동하고 싶나요?",
title: "에코노베이션에서의 활동 목표와 학습 계획을 이야기해주세요.",
type: "textarea",
value: { name: "studyPlan" },
} as ApplicantTextareaNode,
{
id: 16,
id: 15,
title:
"에코노베이션은 3학기 이상의 활동과 매주 금요일 17시 주간발표에 필수로 참여해야 합니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.",
"에코노베이션은 3학기 이상의 활동과 매주 금요일 17시 주간발표 참여가 필수이며, 최종 합격 시 신입 기수로 구성된 팀으로 한 학기 동안 활동하게 됩니다. \n또한, 에코노베이션에서 운영되고 있는 다양한 부서 활동과 네트워킹 행사에 적극적인 참여를 권장합니다.",
type: "textarea",
value: { name: "check" },
} as ApplicantTextareaNode,
Expand Down
15 changes: 7 additions & 8 deletions frontend/src/constants/applicant/29/developer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ export const APPLICANT_DEVELOPER = [
{
id: 6,
title:
"개발자를 희망하는 이유는 무엇인가요? 계획하고 계신 진로와 이를 위해 노력한 내용을 말씀해 주세요.",
"개발자를 희망하는 이유는 무엇인가요? 본인이 생각하는 개발자는 무엇인지, 개발자를 희망하게 된 이유는 무엇인지 구체적으로 작성해주세요.",
type: "textarea",
value: { name: "future" },
} as ApplicantTextareaNode,
{
id: 7,
title:
"소프트웨어 프로젝트에서 주도적으로 개발한 경험이 있나요?(캡스톤 디자인 제외)",
"소프트웨어 프로젝트에서 주도적으로 개발한 경험이 있나요?(캡스톤 디자인 제외)\n없다면, 주도적으로 진행한 다양한 경험을 이야기 해주세요.",
type: "booleanTextarea",
booleanValue: { name: "experience" },
subtitle: [
Expand All @@ -27,14 +27,14 @@ export const APPLICANT_DEVELOPER = [
{
id: 8,
title:
"어떤 일에 도전하고 실패해 본 경험이 있나요? 그 실패를 어떻게 극복했는지 서술해 주세요.",
"무언가에 깊게 빠지거나 파고 들어본 적이 있나요? 좋아하는 것을 위해서 주변에서 인정할 정도로 깊게 빠져본 적이 있다면 서술해주세요.",
type: "textarea",
value: { name: "restoration" },
} as ApplicantTextareaNode,
{
id: 9,
title:
"무언가에 깊게 빠지거나 파고 들어본 적이 있나요? 좋아하는 것을 위해서 주변에서 인정할 정도로 깊게 빠져본 적이 있다면 서술해주세요.",
"어떤 일에 도전하고 실패해 본 경험이 있나요? 그 실패를 어떻게 극복했는지 서술해 주세요.",
type: "textarea",
value: { name: "deep" },
} as ApplicantTextareaNode,
Expand All @@ -47,15 +47,14 @@ export const APPLICANT_DEVELOPER = [
} as ApplicantTextareaNode,
{
id: 11,
title:
"에코노베이션에 최종 합격 시 신입 기수로 구성된 팀으로 개발 프로젝트에 참여하고, 목표를 달성하기 위해 스스로 끊임없이 배우고 노력합니다. 에코노베이션에 들어오게 된다면 어떤 목표와 학습 계획을 바탕으로 활동하고 싶나요?",
title: "에코노베이션에서의 활동 목표와 학습 계획을 이야기해주세요.",
type: "textarea",
value: { name: "studyPlan" },
} as ApplicantTextareaNode,
{
id: 14,
id: 13,
title:
"에코노베이션은 3학기 이상의 활동과 매주 금요일 17시 주간발표에 필수로 참여해야 합니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.",
"에코노베이션은 3학기 이상의 활동과 매주 금요일 17시 주간발표 참여가 필수이며, 최종 합격 시 신입 기수로 구성된 팀으로 한 학기 동안 활동하게 됩니다. \n또한, 에코노베이션에서 운영되고 있는 다양한 부서 활동과 네트워킹 행사에 적극적인 참여를 권장합니다.",
type: "textarea",
value: { name: "check" },
} as ApplicantTextareaNode,
Expand Down
Loading