diff --git a/frontend/app/application/page.tsx b/frontend/app/application/page.tsx index 7a7da38a..53bd839d 100644 --- a/frontend/app/application/page.tsx +++ b/frontend/app/application/page.tsx @@ -6,15 +6,15 @@ import { CURRENT_GENERATION } from "@/src/constants"; import { APPLICATION_DESIGN, APPLICATION_NAVBAR_DESIGN, -} from "@/src/constants/application/27/designer"; +} from "@/src/constants/application/28/designer"; import { APPLICATION_DEVELOPER, APPLICATION_NAVBAR_DEVELOPER, -} from "@/src/constants/application/27/developer"; +} from "@/src/constants/application/28/developer"; import { APPLICATION_MANAGER, APPLICATION_NAVBAR_MANAGER, -} from "@/src/constants/application/27/manager"; +} from "@/src/constants/application/28/manager"; import { useLocalStorage } from "@/src/hooks/useLocalstorage.hook"; import { applicationDataAtom, diff --git a/frontend/components/applicant/DetailRight.component.tsx b/frontend/components/applicant/DetailRight.component.tsx index d551e089..58d7ea96 100644 --- a/frontend/components/applicant/DetailRight.component.tsx +++ b/frontend/components/applicant/DetailRight.component.tsx @@ -9,9 +9,9 @@ import { applicantDataFinder } from "@/src/functions/finder"; import { JunctionApplicant } from "./Junction.component"; import { useAtom, useAtomValue } from "jotai"; import { applicantQuestionsAtom } from "@/src/stores/applicant"; -import { APPLICANT_DEVELOPER } from "@/src/constants/applicant/27/developer"; -import { APPLICANT_DESIGNER } from "@/src/constants/applicant/27/designer"; -import { APPLICANT_MANAGER } from "@/src/constants/applicant/27/manager"; +import { APPLICANT_DEVELOPER } from "@/src/constants/applicant/28/developer"; +import { APPLICANT_DESIGNER } from "@/src/constants/applicant/28/designer"; +import { APPLICANT_MANAGER } from "@/src/constants/applicant/28/manager"; interface ApplicantDetailRightProps { data: ApplicantReq[]; diff --git a/frontend/components/application/applicationLayout/Horizontal.componet.tsx b/frontend/components/application/applicationLayout/Horizontal.componet.tsx index 54723875..dab20789 100644 --- a/frontend/components/application/applicationLayout/Horizontal.componet.tsx +++ b/frontend/components/application/applicationLayout/Horizontal.componet.tsx @@ -23,6 +23,13 @@ const ApplicationHorizontalLayout = ({ {applicationQuestion.subtitle && (
{applicationQuestion.subtitle} + {applicationQuestion.alert && ( +
+ + ⚠️ {applicationQuestion.alert} + +
+ )}
)} diff --git a/frontend/components/application/applicationLayout/timeline/Timeline.component.tsx b/frontend/components/application/applicationLayout/timeline/Timeline.component.tsx index a76060b0..1eceabe4 100644 --- a/frontend/components/application/applicationLayout/timeline/Timeline.component.tsx +++ b/frontend/components/application/applicationLayout/timeline/Timeline.component.tsx @@ -5,7 +5,7 @@ import type { ApplicationQuestion, ApplicationTimeline, } from "@/src/constants/application/type"; -import { dateSplicer } from "@/src/functions/date"; +import { convertDay, dateSplicer } from "@/src/functions/date"; import TimelineRow from "./TimelineRow.component"; import { CURRENT_GENERATION } from "@/src/constants"; import { cn } from "@/src/utils/cn"; @@ -32,7 +32,11 @@ export const TimelineCell = ({ {`${startTime.getMonth()}월 ${startTime.getDate()}일`} + >{`${startTime.toLocaleDateString("ko-KR", { + month: "long", + day: "numeric", + weekday: "short", + })}`}
{dates.map((date, index) => ( )} {applicationQuestion.subtitle && ( -
+ <> {applicationQuestion.subtitle.split("\n").map((line, index) => ( {line} ))} -
+ )} +
+ {applicationQuestion.alert && ( + + ⚠️ {applicationQuestion.alert} + + )} +
{time.map((time, index) => (
{ {dateString} diff --git a/frontend/components/application/applicationNode/Radio.tsx b/frontend/components/application/applicationNode/Radio.tsx index 32687e8a..dc67712e 100644 --- a/frontend/components/application/applicationNode/Radio.tsx +++ b/frontend/components/application/applicationNode/Radio.tsx @@ -5,15 +5,15 @@ import Txt from "@/components/common/Txt.component"; import { APPLICATION_DESIGN, APPLICATION_NAVBAR_DESIGN, -} from "@/src/constants/application/27/designer"; +} from "@/src/constants/application/28/designer"; import { APPLICATION_DEVELOPER, APPLICATION_NAVBAR_DEVELOPER, -} from "@/src/constants/application/27/developer"; +} from "@/src/constants/application/28/developer"; import { APPLICATION_MANAGER, APPLICATION_NAVBAR_MANAGER, -} from "@/src/constants/application/27/manager"; +} from "@/src/constants/application/28/manager"; import { ApplicationNode, type ApplicationRadio, diff --git a/frontend/components/interview/modal/score/AvgScore.tsx b/frontend/components/interview/modal/score/AvgScore.tsx index 5ff90ac9..495a819c 100644 --- a/frontend/components/interview/modal/score/AvgScore.tsx +++ b/frontend/components/interview/modal/score/AvgScore.tsx @@ -1,5 +1,5 @@ import ScoreCell from "./ScoreCell"; -import { Score } from "@/src/constants/applicant/27"; +import { Score } from "@/src/constants/applicant/28"; interface AvgScoreProps { totalAverage: number; diff --git a/frontend/components/interview/modal/score/InterviewScore.tsx b/frontend/components/interview/modal/score/InterviewScore.tsx index 9c5efdf1..3a5a6d84 100644 --- a/frontend/components/interview/modal/score/InterviewScore.tsx +++ b/frontend/components/interview/modal/score/InterviewScore.tsx @@ -1,4 +1,4 @@ -import { ScoreSequence } from "@/src/constants/applicant/27"; +import { ScoreSequence } from "@/src/constants/applicant/28"; import AvgScore from "./AvgScore"; import InterviewerScores from "./InterviewerScore"; import { useState } from "react"; diff --git a/frontend/components/interview/modal/score/InterviewerScore.tsx b/frontend/components/interview/modal/score/InterviewerScore.tsx index 3b446d73..444999ab 100644 --- a/frontend/components/interview/modal/score/InterviewerScore.tsx +++ b/frontend/components/interview/modal/score/InterviewerScore.tsx @@ -1,4 +1,4 @@ -import { FIELD_NAME, Score } from "@/src/constants/applicant/27"; +import { FIELD_NAME, Score } from "@/src/constants/applicant/28"; interface InterviewerScoreProps { interviewers: { diff --git a/frontend/components/interview/modal/score/MyScore.tsx b/frontend/components/interview/modal/score/MyScore.tsx index 0ae3fb9f..924659e2 100644 --- a/frontend/components/interview/modal/score/MyScore.tsx +++ b/frontend/components/interview/modal/score/MyScore.tsx @@ -1,4 +1,4 @@ -import { Score } from "@/src/constants/applicant/27"; +import { Score } from "@/src/constants/applicant/28"; import { useState } from "react"; import MyScoreForm from "./MyScoreForm"; import MyScoreViewer from "./MyScoreViewer"; diff --git a/frontend/components/interview/modal/score/MyScoreForm.tsx b/frontend/components/interview/modal/score/MyScoreForm.tsx index f1f49df5..83193f9f 100644 --- a/frontend/components/interview/modal/score/MyScoreForm.tsx +++ b/frontend/components/interview/modal/score/MyScoreForm.tsx @@ -5,7 +5,7 @@ import ScoreInput from "./ScoreInput"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { postScore, putScore } from "@/src/apis/score"; import { replacer } from "@/src/functions/replacer"; -import { Score, ScoreKeyword } from "@/src/constants/applicant/27"; +import { Score, ScoreKeyword } from "@/src/constants/applicant/28"; import { scoreObjectToList } from "@/src/functions/formatter"; interface MyScoreFormProps extends MyScoreProps { diff --git a/frontend/components/interview/modal/score/ScoreCell.tsx b/frontend/components/interview/modal/score/ScoreCell.tsx index fa1e43bc..d3bc26e6 100644 --- a/frontend/components/interview/modal/score/ScoreCell.tsx +++ b/frontend/components/interview/modal/score/ScoreCell.tsx @@ -1,4 +1,4 @@ -import { ScoreKeyword } from "@/src/constants/applicant/27"; +import { ScoreKeyword } from "@/src/constants/applicant/28"; interface ScoreCellProps { fieldName: ScoreKeyword; diff --git a/frontend/components/interview/modal/score/ScoreInput.tsx b/frontend/components/interview/modal/score/ScoreInput.tsx index 7b3334c8..f6d8cd5d 100644 --- a/frontend/components/interview/modal/score/ScoreInput.tsx +++ b/frontend/components/interview/modal/score/ScoreInput.tsx @@ -1,4 +1,4 @@ -import { ScoreKeyword } from "@/src/constants/applicant/27"; +import { ScoreKeyword } from "@/src/constants/applicant/28"; interface ScoreInputProps { fieldName: ScoreKeyword; diff --git a/frontend/components/kanban/Navbar.component.tsx b/frontend/components/kanban/Navbar.component.tsx index 76eb3335..6061daf4 100644 --- a/frontend/components/kanban/Navbar.component.tsx +++ b/frontend/components/kanban/Navbar.component.tsx @@ -1,4 +1,4 @@ -import { KANBAN_MENU, KanbanMenu } from "@/src/constants/kanban/27"; +import { KANBAN_MENU, KanbanMenu } from "@/src/constants/kanban/28"; import NavbarButton from "../common/navbar/Button"; const KanbanNavbar = () => { diff --git a/frontend/src/constants/applicant/28/designer.ts b/frontend/src/constants/applicant/28/designer.ts index 2ebe41d2..287ec09d 100644 --- a/frontend/src/constants/applicant/28/designer.ts +++ b/frontend/src/constants/applicant/28/designer.ts @@ -8,7 +8,7 @@ export const APPLICANT_DESIGNER = [ { id: 6, title: - "본인이 계획하고 있는 진로가 무엇인가요?(IT 분야가 아니어도 괜찮습니다)", + "본인이 계획하고 있는 진로와 이를 위해 노력한 내용을 말씀해주세요.(IT 분야가 아니어도 괜찮습니다)", type: "textarea", value: { name: "future" }, } as ApplicantTextareaNode, diff --git a/frontend/src/constants/applicant/28/manager.ts b/frontend/src/constants/applicant/28/manager.ts index 5806179f..a158ecc5 100644 --- a/frontend/src/constants/applicant/28/manager.ts +++ b/frontend/src/constants/applicant/28/manager.ts @@ -8,7 +8,7 @@ export const APPLICANT_MANAGER = [ { id: 6, title: - "본인이 계획하고 있는 진로가 무엇인가요? (IT 분야가 아니어도 괜찮습니다.)", + "본인이 계획하고 있는 진로와 이를 위해 노력한 내용을 말씀해주세요.(IT 분야가 아니어도 괜찮습니다)", type: "textarea", value: { name: "future" }, } as ApplicantTextareaNode, diff --git a/frontend/src/constants/application/28.ts b/frontend/src/constants/application/28.ts index 66fd5bde..f029a011 100644 --- a/frontend/src/constants/application/28.ts +++ b/frontend/src/constants/application/28.ts @@ -178,16 +178,16 @@ export const APPLICATION_TIMELINE: ApplicationTimeline = { seperate: 30, time: [ { - startTime: new Date(2024, 9, 23, 10, 0, 0), - endTime: new Date(2024, 9, 23, 21, 0, 0), + startTime: new Date(2024, 8, 23, 10, 0, 0), + endTime: new Date(2024, 8, 23, 20, 30, 0), }, { - startTime: new Date(2024, 9, 24, 10, 0, 0), - endTime: new Date(2024, 9, 24, 21, 0, 0), + startTime: new Date(2024, 8, 24, 10, 0, 0), + endTime: new Date(2024, 8, 24, 20, 30, 0), }, { - startTime: new Date(2024, 9, 25, 10, 0, 0), - endTime: new Date(2024, 9, 25, 21, 0, 0), + startTime: new Date(2024, 8, 25, 10, 0, 0), + endTime: new Date(2024, 8, 25, 20, 30, 0), }, ], disableTime: [], diff --git a/frontend/src/constants/application/28/designer.ts b/frontend/src/constants/application/28/designer.ts index 5d820d66..34959c18 100644 --- a/frontend/src/constants/application/28/designer.ts +++ b/frontend/src/constants/application/28/designer.ts @@ -17,7 +17,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ }, { id: 6, - title: "본인이 계획하고 있는 진로가 무엇인가요?", + title: "본인이 계획하고 있는 진로와 이를 위해 노력한 내용을 말씀해주세요.", subtitle: "IT 분야가 아니어도 괜찮습니다", direction: "horizontal", require: true, @@ -73,6 +73,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ errorMessages: "개선하고 싶은 서비스를 서술해주세요.", }, ], + require: true, }, { id: 10, @@ -88,6 +89,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ errorMessages: "협업에 있어서 중요하다고 생각되는 것을 입력해주세요.", }, ], + require: true, }, { id: 11, @@ -103,6 +105,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ errorMessages: "깊게 빠져본 경험을 입력해주세요.", }, ], + require: true, }, { id: 12, @@ -117,6 +120,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ errorMessages: "협업에 있어서 중요하다고 생각되는 것을 입력해주세요.", }, ], + require: true, }, { id: 13, @@ -131,6 +135,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ errorMessages: "목표와 학습 계획을 입력해주세요.", }, ], + require: true, }, { id: 14, @@ -138,6 +143,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ direction: "horizontal", subtitle: "지원자 분의 포트폴리오 링크 접근 권한을 열어주세요. 만약 접근 권한이 없을 경우 불이익이 있을 수 있습니다.", + alert: "최종 제출 후 포트폴리오 수정은 불가합니다.", nodes: [ { name: "portfolio", @@ -181,7 +187,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ id: 16, direction: "horizontal", title: - "에코노베이션은 3학기 이상의 활동을 권장하고 있으며 매주 금요일 17시에는 주간발표가 있습니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.", + "에코노베이션은 3학기 이상의 활동과 매주 금요일 17시 주간발표에 필수로 참여해야 합니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.", require: true, nodes: [ { @@ -224,6 +230,7 @@ export const APPLICATION_DESIGN: ApplicationQuestion[] = [ subtitle: "면접은 오프라인으로 진행되며 지원서에 작성된 내용을 토대로 약 10분간 진행될 예정입니다.\n선택한 시간이 적을 경우, 지원자님의 면접이 임의 시간에 배정될 수 있습니다.\n면접이 가능한 시간대를 모두 선택해 주시기 바랍니다.", direction: "timeline", + alert: "최종 제출 후 시간 변경은 불가합니다.", require: false, nodes: [ { @@ -242,7 +249,7 @@ export const APPLICATION_NAVBAR_DESIGN = [ }, { id: 6, - title: "본인이 계획하고 있는 진로가 무엇인가요?", + title: "본인이 계획하고 있는 진로와 이를 위해 노력한 내용을 말씀해주세요.", }, { id: 7, diff --git a/frontend/src/constants/application/28/developer.ts b/frontend/src/constants/application/28/developer.ts index a1282393..2181f2f4 100644 --- a/frontend/src/constants/application/28/developer.ts +++ b/frontend/src/constants/application/28/developer.ts @@ -128,6 +128,7 @@ export const APPLICATION_DEVELOPER: ApplicationQuestion[] = [ title: "자신을 어필할 수 있는 포트폴리오를 업로드해 주세요.", subtitle: "지원자 분의 포트폴리오 링크 접근 권한을 열어주세요. 만약 접근 권한이 없을 경우 불이익이 있을 수 있습니다.", + alert: "최종 제출 후 포트폴리오 수정은 불가합니다.", direction: "horizontal", nodes: [ { @@ -172,7 +173,7 @@ export const APPLICATION_DEVELOPER: ApplicationQuestion[] = [ id: 14, direction: "horizontal", title: - "에코노베이션은 3학기 이상의 활동을 권장하고 있으며 매주 금요일 17시에는 주간발표가 있습니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.", + "에코노베이션은 3학기 이상의 활동과 매주 금요일 17시 주간발표에 필수로 참여해야 합니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.", require: true, nodes: [ { @@ -216,6 +217,7 @@ export const APPLICATION_DEVELOPER: ApplicationQuestion[] = [ "면접은 오프라인으로 진행되며 지원서에 작성된 내용을 토대로 약 10분간 진행될 예정입니다.\n선택한 시간이 적을 경우, 지원자님의 면접이 임의 시간에 배정될 수 있습니다.\n면접이 가능한 시간대를 모두 선택해 주시기 바랍니다.", direction: "timeline", require: true, + alert: "최종 제출 후 시간 변경은 불가합니다.", nodes: [ { type: "timeline", diff --git a/frontend/src/constants/application/28/manager.ts b/frontend/src/constants/application/28/manager.ts index aae58a1c..14eff547 100644 --- a/frontend/src/constants/application/28/manager.ts +++ b/frontend/src/constants/application/28/manager.ts @@ -17,7 +17,7 @@ export const APPLICATION_MANAGER: ApplicationQuestion[] = [ }, { id: 6, - title: "본인이 계획하고 있는 진로가 무엇인가요?", + title: "본인이 계획하고 있는 진로와 이를 위해 노력한 내용을 말씀해주세요.", subtitle: "IT 분야가 아니어도 괜찮습니다.", direction: "horizontal", require: true, @@ -145,6 +145,7 @@ export const APPLICATION_MANAGER: ApplicationQuestion[] = [ title: "자신을 어필할 수 있는 포트폴리오를 업로드해 주세요.", subtitle: "지원자 분의 포트폴리오 링크 접근 권한을 열어주세요. 만약 접근 권한이 없을 경우 불이익이 있을 수 있습니다.", + alert: "최종 제출 후 포트폴리오 수정은 불가합니다.", direction: "horizontal", nodes: [ { @@ -207,7 +208,7 @@ export const APPLICATION_MANAGER: ApplicationQuestion[] = [ id: 15, direction: "horizontal", title: - "에코노베이션은 3학기 이상의 활동을 권장하고 있으며 매주 금요일 17시에는 주간발표가 있습니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.", + "에코노베이션은 3학기 이상의 활동과 매주 금요일 17시 주간발표에 필수로 참여해야 합니다.\n위 내용을 확인하셨으면 '확인했습니다'를 기입해주세요.", require: true, nodes: [ { @@ -250,6 +251,7 @@ export const APPLICATION_MANAGER: ApplicationQuestion[] = [ subtitle: "면접은 오프라인으로 진행되며 지원서에 작성된 내용을 토대로 약 10분간 진행될 예정입니다.\n선택한 시간이 적을 경우, 지원자님의 면접이 임의 시간에 배정될 수 있습니다.\n면접이 가능한 시간대를 모두 선택해 주시기 바랍니다.", direction: "timeline", + alert: "최종 제출 후 시간 변경은 불가합니다.", require: false, nodes: [ { @@ -265,7 +267,7 @@ export const APPLICATION_NAVBAR_MANAGER = [ { id: 5, title: "에코노베이션에 지원하게 된 계기는 무엇인가요?" }, { id: 6, - title: "본인이 계획하고 있는 진로가 무엇인가요?", + title: "본인이 계획하고 있는 진로와 이를 위해 노력한 내용을 말씀해주세요.", }, { id: 7, diff --git a/frontend/src/constants/application/type.d.ts b/frontend/src/constants/application/type.d.ts index d9252616..d9aa0517 100644 --- a/frontend/src/constants/application/type.d.ts +++ b/frontend/src/constants/application/type.d.ts @@ -109,6 +109,7 @@ type ApplicationQuestion = { id: number; title?: string; subtitle?: string; + alert?: string; require?: boolean; direction: | "vertical" diff --git a/frontend/src/constants/kanban/28.ts b/frontend/src/constants/kanban/28.ts new file mode 100644 index 00000000..84670192 --- /dev/null +++ b/frontend/src/constants/kanban/28.ts @@ -0,0 +1,35 @@ +export interface KanbanMenu { + id: number; + navTitle: string; +} + +export const KANBAN_MENU = [ + { + id: 1, + navTitle: "공통", + }, + { + id: 2, + navTitle: "회장단", + }, + { + id: 3, + navTitle: "운영팀", + }, + { + id: 4, + navTitle: "홍보 및 디자인팀", + }, + { + id: 5, + navTitle: "지원자 대응팀", + }, + { + id: 6, + navTitle: "방송팀", + }, + { + id: 7, + navTitle: "기타 참고", + }, +]; diff --git a/frontend/src/functions/date.ts b/frontend/src/functions/date.ts index 50785073..fceb6b8a 100644 --- a/frontend/src/functions/date.ts +++ b/frontend/src/functions/date.ts @@ -11,3 +11,24 @@ export const dateSplicer = ( } return dateArray; }; + +export const convertDay = (day: number) => { + switch (day) { + case 0: + return "일"; + case 1: + return "월"; + case 2: + return "화"; + case 3: + return "수"; + case 4: + return "목"; + case 5: + return "금"; + case 6: + return "토"; + default: + return ""; + } +}; diff --git a/frontend/src/functions/formatter.ts b/frontend/src/functions/formatter.ts index 019d64de..d4db27b9 100644 --- a/frontend/src/functions/formatter.ts +++ b/frontend/src/functions/formatter.ts @@ -1,4 +1,4 @@ -import { Score, ScoreKeyword } from "../constants/applicant/27"; +import { Score, ScoreKeyword } from "../constants/applicant/28"; export const scoreListToObject = ( scores: number[], diff --git a/frontend/src/stores/applicant/index.ts b/frontend/src/stores/applicant/index.ts index 48ec622b..6ef85146 100644 --- a/frontend/src/stores/applicant/index.ts +++ b/frontend/src/stores/applicant/index.ts @@ -1,6 +1,6 @@ import { atom } from "jotai"; -const applicantQuestions = require(`@/src/constants/applicant/27`) +const applicantQuestions = require(`@/src/constants/applicant/28`) .APPLICANT as ApplicantNode[]; export const applicantQuestionsAtom = atom(applicantQuestions);