diff --git a/apps/backend/scripts/seed.config.json b/apps/backend/scripts/seed.config.json index 5c0c8672..452ee019 100644 --- a/apps/backend/scripts/seed.config.json +++ b/apps/backend/scripts/seed.config.json @@ -1,8 +1,8 @@ { "personalUser": { - "firstName": "Ryaken", - "lastName": "Nakamoto", - "email": "nakamoto.r@husky.neu.edu", + "firstName": "Daniel", + "lastName": "Huang", + "email": "huang.danie@husky.neu.edu", "status": "Admin" } } diff --git a/apps/frontend/src/features/applicant/components/ApplicantView/ApplicationDetailsCard.tsx b/apps/frontend/src/features/applicant/components/ApplicantView/ApplicationDetailsCard.tsx new file mode 100644 index 00000000..d07ffcdb --- /dev/null +++ b/apps/frontend/src/features/applicant/components/ApplicantView/ApplicationDetailsCard.tsx @@ -0,0 +1,65 @@ +import { Box, Typography, Stack } from '@mui/material'; +import { Application } from '@sharedTypes/types/application.types'; + +interface ApplicationDetailsCardProps { + application: Application; +} + +export const ApplicationDetailsCard = ({ + application, +}: ApplicationDetailsCardProps) => { + return ( + + + Application Details + + + + + + Year + + {application.year} + + + + Semester + + {application.semester} + + + + Position + + {application.position} + + + + Stage + + {application.stage} + + + + Status + + {application.stageProgress} + + + + Applications + + {application.numApps} + + + + + ); +}; diff --git a/apps/frontend/src/features/applicant/components/ApplicantView/ApplicationResponsesList.tsx b/apps/frontend/src/features/applicant/components/ApplicantView/ApplicationResponsesList.tsx new file mode 100644 index 00000000..aacd4b16 --- /dev/null +++ b/apps/frontend/src/features/applicant/components/ApplicantView/ApplicationResponsesList.tsx @@ -0,0 +1,61 @@ +import { + Typography, + List, + ListItem, + ListItemIcon, + ListItemText, + Box, +} from '@mui/material'; +import { DoneOutline } from '@mui/icons-material'; +import { Response } from '@sharedTypes/types/application.types'; + +interface ApplicationResponsesListProps { + responses: Response[]; +} + +export const ApplicationResponsesList = ({ + responses, +}: ApplicationResponsesListProps) => { + if (!responses || responses.length === 0) { + return null; + } + + return ( + + + Application Responses + + + {responses.map((response, index) => ( + + + + + + {response.question} + + } + secondary={ + + {response.answer} + + } + sx={{ m: 0 }} + /> + + ))} + + + ); +}; diff --git a/apps/frontend/src/features/applicant/components/ApplicantView/RecruitmentStageCard.tsx b/apps/frontend/src/features/applicant/components/ApplicantView/RecruitmentStageCard.tsx new file mode 100644 index 00000000..689cf18f --- /dev/null +++ b/apps/frontend/src/features/applicant/components/ApplicantView/RecruitmentStageCard.tsx @@ -0,0 +1,27 @@ +import { Box, Typography } from '@mui/material'; + +interface RecruitmentStageCardProps { + stage: string; +} + +export const RecruitmentStageCard = ({ stage }: RecruitmentStageCardProps) => { + return ( + + + Recruitment Stage + + + {stage} + + + ); +}; diff --git a/apps/frontend/src/features/applicant/components/ApplicantView/user.tsx b/apps/frontend/src/features/applicant/components/ApplicantView/user.tsx index 6391d5cb..5a89e602 100644 --- a/apps/frontend/src/features/applicant/components/ApplicantView/user.tsx +++ b/apps/frontend/src/features/applicant/components/ApplicantView/user.tsx @@ -49,40 +49,40 @@ export const ApplicantView = ({ user }: ApplicantViewProps) => { return ( "', + position: 'fixed', + bottom: '15%', + right: '8%', + fontSize: '120px', + color: '#00FFFF', + opacity: 0.3, + fontFamily: 'monospace', + fontWeight: 'bold', + pointerEvents: 'none', + zIndex: 0, }, }} > + {/* Gradient Blur Effects */} { maxWidth: 900, position: 'relative', zIndex: 1, + boxSizing: 'border-box', + mx: 'auto', }} > - - Welcome back, {fullName || 'User'}! - + + + Welcome back, {fullName || 'User'}! + - {isLoading ? ( - - ) : ( -
- {selectedApplication && ( - <> - - Recruitment Stage - - {selectedApplication.stage} - - - {!isLoading && selectedApplication && isPM && - String(selectedApplication.stage) === - ApplicationStage.PM_CHALLENGE && ( - - )} + {isLoading ? ( + + + + ) : selectedApplication ? ( + + + Recruitment Stage + + {selectedApplication.stage} + + + {isPM && + String(selectedApplication.stage) === + ApplicationStage.PM_CHALLENGE && ( + + )} + Application Details - - - Year: {selectedApplication.year} - - - Semester: {selectedApplication.semester} - - - Position: {selectedApplication.position} - - - Stage: {selectedApplication.stage} - - - Status: {selectedApplication.stageProgress} - - - Applications: {selectedApplication.numApps} - + + + + Year + + + {selectedApplication.year} + + + + + Semester + + + {selectedApplication.semester} + + + + + Position + + + {selectedApplication.position} + + + + + Stage + + + {selectedApplication.stage} + + + + + Status + + + {selectedApplication.stageProgress} + + - - - Application Responses - - - {selectedApplication.response.map((response, index) => ( - - - - - - {`A: ${response.answer}`} - - } - sx={{ m: 0 }} - /> - - ))} - - - )} -
- )} +
+ {selectedApplication.response && + selectedApplication.response.length > 0 && ( + + + Application Responses + + + {selectedApplication.response.map((response, index) => ( + + + + + + {response.question} + + } + secondary={ + + {response.answer} + + } + sx={{ m: 0 }} + /> + + ))} + + + )} + + ) : ( + + + No application data available + + + )} +
); diff --git a/apps/frontend/src/features/applicant/components/FileUploadBox.tsx b/apps/frontend/src/features/applicant/components/FileUploadBox.tsx index 0ed54d72..f7701a13 100644 --- a/apps/frontend/src/features/applicant/components/FileUploadBox.tsx +++ b/apps/frontend/src/features/applicant/components/FileUploadBox.tsx @@ -89,10 +89,11 @@ const FileUploadBox: React.FC = ({ sx={{ backgroundColor: '#403f3f', borderRadius: 2, - p: 3, - mt: 4, + py: 1, + px: 1.5, textAlign: 'center', width: '100%', + boxSizing: 'border-box', }} > = ({ sx={{ border: '1px dashed #999', borderRadius: 1, - p: 3, + py: 1.5, + px: 1, cursor: 'pointer', '&:hover': { borderColor: '#d81b60' }, }}