소스 검색

partially created assignment and submit assignment page

develop
Ajay_S 3 년 전
부모
커밋
995569867c
18개의 변경된 파일369개의 추가작업 그리고 20개의 파일을 삭제
  1. +13
    -0
      src/App.tsx
  2. +2
    -2
      src/components/formInput/Input.module.scss
  3. +3
    -0
      src/components/stepsHeader/StepHeader.tsx
  4. +1
    -1
      src/pages/Quiz/Quiz.tsx
  5. +46
    -0
      src/pages/assignment/Assignment.module.scss
  6. +36
    -0
      src/pages/assignment/Assignment.tsx
  7. +90
    -0
      src/pages/assignment/AssignmentDetails.module.scss
  8. +49
    -0
      src/pages/assignment/AssignmentDetails.tsx
  9. +0
    -0
      src/pages/assignment/ReviewAssignment.module.scss
  10. +9
    -0
      src/pages/assignment/ReviewAssignment.tsx
  11. +45
    -0
      src/pages/assignment/SubmitAssignment.module.scss
  12. +45
    -0
      src/pages/assignment/SubmitAssignment.tsx
  13. +19
    -9
      src/pages/interviewRounds/InterviewRounds.tsx
  14. +1
    -0
      src/pages/interviewRounds/StepDescreption.module.scss
  15. +5
    -3
      src/pages/interviewRounds/StepDescreption.tsx
  16. +3
    -1
      src/pages/interviewRounds/Steps.tsx
  17. +0
    -2
      src/pages/preliminaryRoundResults/PreliminaryRoundResults.tsx
  18. +2
    -2
      src/pages/technicalInterview/TechnicalInterview.tsx

+ 13
- 0
src/App.tsx 파일 보기

@@ -26,6 +26,9 @@ import Quiz from './pages/Quiz/Quiz';
import PreliminaryRoundResults from './pages/preliminaryRoundResults/PreliminaryRoundResults';
import TechnicalInterview from './pages/technicalInterview/TechnicalInterview';
import TimeSlot from './components/timeSlot/TimeSlot';
import Assignment from './pages/assignment/Assignment';
import AssignmentDetails from './pages/assignment/AssignmentDetails';
import SubmitAssignment from './pages/assignment/SubmitAssignment';



@@ -53,6 +56,16 @@ const App: React.FC = () => (
<Route exact path="/technicalInterview">
<TechnicalInterview />
</Route>
<Route exact path="/assignment">
<Assignment />
</Route>
<Route exact path="/assignmentDetails">
<AssignmentDetails />
</Route>
<Route exact path="/SubmitAssignment">
<SubmitAssignment />
</Route>

<Route exact path="/">
<Redirect to="/interviewRounds" />
</Route>


+ 2
- 2
src/components/formInput/Input.module.scss 파일 보기

@@ -17,8 +17,8 @@ $dim-grey: #696969;
}

ion-icon {
width: 1rem;
height: 1rem;
width: 1.5rem;
height: 1.5rem;
}

ion-input {


+ 3
- 0
src/components/stepsHeader/StepHeader.tsx 파일 보기

@@ -2,6 +2,7 @@ import styles from './StepHeader.module.scss';

import { IonHeader, IonIcon } from '@ionic/react';
import { closeOutline } from 'ionicons/icons'
import { Link } from 'react-router-dom';

interface Props {
stepNumber: number;
@@ -15,7 +16,9 @@ const StepHeader: React.FC<Props> = (props) => {
<div className={styles.step}>Step {props.stepNumber}</div>
<h3 className={styles.roundName}>{props.roundName}</h3>
</div>
{/* <Link to="/interviewRounds"> */}
<IonIcon icon={closeOutline}></IonIcon>
{/* </Link> */}
</header>
)
}


+ 1
- 1
src/pages/Quiz/Quiz.tsx 파일 보기

@@ -1,6 +1,6 @@
import styles from './Quiz.module.scss';

import { IonButton, IonCheckbox, IonIcon, IonItem, IonLabel, IonPage, IonRadio } from '@ionic/react';
import { IonButton, IonIcon } from '@ionic/react';
import Options from './Options';
import { closeOutline } from 'ionicons/icons'
import { Link } from 'react-router-dom';


+ 46
- 0
src/pages/assignment/Assignment.module.scss 파일 보기

@@ -0,0 +1,46 @@
.assignment {

.description {
.icon {
margin-top: 4rem;
display: flex;
justify-content: center;
ion-icon {
width: 10rem;
height: 10rem;
}
}

.stepDescription {
h4 {
color: #363636;
text-align: center;
font-size: 2.4rem;
font-weight: 300;
letter-spacing: 0.024rem;
margin-top: 3rem;
}
p {
color: #868686;
font-size: 1.4rem;
text-align: center;
width: 90%;
margin: 0 auto;
margin-top: 2rem;
line-height: 1.8;
}
}
}

.assignmentButton {
text-decoration: none;
ion-button {
width: 95%;
margin: 0 auto;
margin-top: 35vh;
margin-bottom: 0;
--background: var(--primary-button-color);
}
}
}

+ 36
- 0
src/pages/assignment/Assignment.tsx 파일 보기

@@ -0,0 +1,36 @@
import { IonButton, IonContent, IonIcon, IonPage } from "@ionic/react";
import StepHeader from "../../components/stepsHeader/StepHeader";
import assignmentImage from "../../assets/icons/Assignment.svg";
import styles from "./Assignment.module.scss";
import { Link } from "react-router-dom";

const Assignment: React.FC = () => {

return (
<IonPage>
<StepHeader stepNumber={4} roundName="Assignment" />
<IonContent className={styles.assignment}>

<div className={styles.description}>
<div className={styles.icon}>
<IonIcon src={assignmentImage} />
</div>

<div className={styles.stepDescription}>
<h4>You are one step ahead to the final round</h4>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
</div>
</div>

<Link to="/assignmentDetails"
className={styles.assignmentButton}>
<IonButton shape="round" expand='block'>Show Details</IonButton>
</Link>
</IonContent>
</IonPage>
);
}

export default Assignment;

+ 90
- 0
src/pages/assignment/AssignmentDetails.module.scss 파일 보기

@@ -0,0 +1,90 @@
.assignmentDetails {

.assignmentTask {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
justify-content: space-around;
height: 44vh;
width: 90%;
margin: 0 auto;

.heading {
color: #363636;
font-weight: 300;
font-size: 2.4rem;
}
.description {
color: #868686;
font-size: 1.4rem;
line-height: 2.8rem;
}
}

.taskDescription {
height: 44vh;
display: flex;
flex-direction: column;
justify-content: space-around;
background-color: #151515;
background-image: url("../../assets/icons/desktop-particles-2.svg");
background-repeat: no-repeat;
background-position: 25% 30%;
border-top-right-radius: 75%;
&::before {
position: absolute;
content:" ";
top: 50%;
right: 0;
left: 0;
bottom: 0;
background-color: #151515;
height: 30vh;
transform: skewY(5deg);
z-index: -1;
}
.heading {
color: #BCBCBC;
font-weight: 300;
letter-spacing: 0.024rem;
font-size: 2.4rem;
margin-left: 2rem;
}
.description {
margin-left: 2rem;
.textHolder {
display: flex;
margin-bottom: 2rem;
.text {
color: #E5E5E5;
font-size: 1.4rem;
font-weight: 600;
margin-left: 2rem;
}
}
}
a {
text-decoration: none;
}
ion-button {
--background: var(--primary-button-color);
font-weight: 500;
font-family: 'Poppins', sans-serif;
width: 90%;
margin: 0 auto;
}
.wish {
color: #E5E5E5;
font-size: 1.8rem;
text-align: center;
}
}
}

+ 49
- 0
src/pages/assignment/AssignmentDetails.tsx 파일 보기

@@ -0,0 +1,49 @@
import { IonButton, IonContent, IonIcon, IonPage } from "@ionic/react";
import StepHeader from "../../components/stepsHeader/StepHeader";
import questionIcon from '../../assets/icons/question-circle-fill.svg';
import checkIcon from '../../assets/icons/check-circle-fill.svg';
import timeIcon from '../../assets/icons/time.svg';

import styles from "./AssignmentDetails.module.scss";
import { Link } from "react-router-dom";

const AssignmentDetails: React.FC = () => {
return (
<IonPage>
<StepHeader roundName="Assignment" stepNumber={4} />
<IonContent className={styles.assignmentDetails}>
<div className={styles.assignmentTask}>
<h4 className={styles.heading}>Make a text analyser from a text file</h4>
<p className={styles.description}>
Make an api with Node which accepts a text file and I was supposed to return the most repeated words in it. A huge text file (around 7 mb) was given to me as an example. Here is the code if anywants to know how I built it https://github.com/fayazara/text-analyser
</p>
</div>
<div className={styles.taskDescription}>
<h4 className={styles.heading}>Details</h4>
<div className={styles.description}>
<div className={styles.textHolder}>
<IonIcon src={questionIcon}></IonIcon>
<div className={styles.text}>Weekend Project</div>
</div>
<div className={styles.textHolder}>
<IonIcon src={timeIcon}></IonIcon>
<div className={styles.text}>Before Monday, 01 May 2021</div>
</div>
<div className={styles.textHolder}>
<IonIcon src={checkIcon}></IonIcon>
<div className={styles.text}>Note: 85% of results minimum</div>
</div>
</div>

<Link to="./SubmitAssignment">
<IonButton shape="round" expand='block'>Accept</IonButton>
</Link>
<div className={styles.wish}>All the best!</div>

</div>
</IonContent>
</IonPage>
);
};

export default AssignmentDetails;

+ 0
- 0
src/pages/assignment/ReviewAssignment.module.scss 파일 보기


+ 9
- 0
src/pages/assignment/ReviewAssignment.tsx 파일 보기

@@ -0,0 +1,9 @@
const ReviewAssignment: React.FC = () => {
return (
<div>

</div>
);
}

export default ReviewAssignment;

+ 45
- 0
src/pages/assignment/SubmitAssignment.module.scss 파일 보기

@@ -0,0 +1,45 @@
.submitAssignment {
.description {
.icon {
margin-top: 4rem;
display: flex;
justify-content: center;
ion-icon {
width: 10rem;
height: 10rem;
}
}
.stepDescription {
h4 {
color: #363636;
text-align: center;
font-size: 2.4rem;
font-weight: 300;
letter-spacing: 0.024rem;
margin-top: 3rem;
}
p {
color: #868686;
font-size: 1.4rem;
text-align: center;
width: 90%;
margin: 0 auto;
margin-top: 2rem;
line-height: 1.8;
}
}
}
.inputHolder {
margin-top: 5rem;
}
.submitAssigment {
text-decoration: none;
ion-button {
width: 90%;
margin: 0 auto;
margin-top: 12rem;
--background: var(--primary-button-color);
}
}
}

+ 45
- 0
src/pages/assignment/SubmitAssignment.tsx 파일 보기

@@ -0,0 +1,45 @@
import styles from "./SubmitAssignment.module.scss";
import { IonButton, IonContent, IonIcon, IonPage } from "@ionic/react"
import assignmentImage from "../../assets/icons/Assignment.svg";
import StepHeader from "../../components/stepsHeader/StepHeader";
import Input from "../../components/formInput/Input";
import linkIcon from "../../assets/icons/link.svg";
import time from "../../assets/icons/time.svg";
import { linkOutline } from 'ionicons/icons'
import { Link } from "react-router-dom";


const SubmitAssignment: React.FC = () => {
return (
<IonPage>
<StepHeader roundName="Assignment" stepNumber={4} />

<IonContent className={styles.submitAssignment}>

<div className={styles.description}>
<div className={styles.icon}>
<IonIcon src={assignmentImage} />

</div>

<div className={styles.stepDescription}>
<h4>Submit your Assignment</h4>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
</div>
</div>

<div className={styles.inputHolder}>
<Input placeholder="Insert the project Link" icon={linkOutline} />
</div>
<Link to="/assignmentDetails"
className={styles.submitAssigment}>
<IonButton shape="round" expand='block'>Submit</IonButton>
</Link>
</IonContent>
</IonPage>
);
}

export default SubmitAssignment;

+ 19
- 9
src/pages/interviewRounds/InterviewRounds.tsx 파일 보기

@@ -19,6 +19,7 @@ interface stepDetail {
descriptionImage: string;
buttonText: string;
isUnlocked: boolean;
link: string;
}

const InterviewRounds: React.FC = () => {
@@ -29,56 +30,64 @@ const InterviewRounds: React.FC = () => {
stepName: "Skill Information",
descriptionImage: skillInfo,
buttonText: "Let's start now",
isUnlocked: true
isUnlocked: true,
link: "/skillInformationStep"
},
{
stepNumber: 2,
stepName: "Preliminary Round",
descriptionImage: preliminaryRound,
buttonText: "Let's do this",
isUnlocked: false
isUnlocked: false,
link: "/preliminaryRound"
},
{
stepNumber: 3,
stepName: "Technical Interview",
descriptionImage: technicalInterview,
buttonText: "Schedule meeting",
isUnlocked: false
isUnlocked: false,
link: "/technicalInterview"
},
{
stepNumber: 4,
stepName: "Assignment",
descriptionImage: assignment,
buttonText: "Show details",
isUnlocked: false
isUnlocked: false,
link: "/assignment"
},
{
stepNumber: 5,
stepName: "Final Interview",
descriptionImage: finalInterview,
buttonText: "Schedule meeting",
isUnlocked: false
isUnlocked: false,
link: "/assignment"
},
{
stepNumber: 6,
stepName: "Closing Docs",
descriptionImage: closingDocs,
buttonText: "Upload docs",
isUnlocked: false
isUnlocked: false,
link: "/assignment"
},
{
stepNumber: 7,
stepName: "Joining Letter",
descriptionImage: joiningLetter,
buttonText: "Show details",
isUnlocked: false
isUnlocked: false,
link: "/assignment"
},
{
stepNumber: 8,
stepName: "Celebrations",
descriptionImage: Celebrations,
buttonText: "Join Workex",
isUnlocked: false
isUnlocked: false,
link: "/assignment"
},
];

@@ -98,7 +107,8 @@ const InterviewRounds: React.FC = () => {
descriptionImage={step.descriptionImage}
buttonText={step.buttonText}
setDescription={setDescription}
showDescription={(stepNo === step.stepNumber) ? true : false} />
showDescription={(stepNo === step.stepNumber) ? true : false}
link={step.link} />
);
});



+ 1
- 0
src/pages/interviewRounds/StepDescreption.module.scss 파일 보기

@@ -56,6 +56,7 @@
animation-fill-mode: forwards;
}
.button {
text-decoration: none;
animation: fadeInAnimation ease 0.2s;
animation-iteration-count: 1;
animation-fill-mode: forwards;


+ 5
- 3
src/pages/interviewRounds/StepDescreption.tsx 파일 보기

@@ -1,8 +1,9 @@
import styles from './StepDescreption.module.scss';

import { IonButton, IonIcon } from '@ionic/react';
import { lockOpen, lockClosed } from 'ionicons/icons'
import { lockOpen, lockClosed } from 'ionicons/icons';
import { useEffect, useRef } from 'react';
import { Link } from 'react-router-dom';

interface Props {
stepNumber: number;
@@ -10,6 +11,7 @@ interface Props {
isUnlocked: boolean;
buttonText: string;
descriptionImage: string;
link: string;
}

const StepsDescription: React.FC<Props> = (props) => {
@@ -42,9 +44,9 @@ const StepsDescription: React.FC<Props> = (props) => {
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>

<div className={styles.button}>
<Link to={props.link} className={styles.button}>
<IonButton shape="round" expand='block'>{props.buttonText}</IonButton>
</div>
</Link>

</div>
);


+ 3
- 1
src/pages/interviewRounds/Steps.tsx 파일 보기

@@ -10,6 +10,7 @@ interface Props {
showDescription?: boolean;
buttonText: string;
descriptionImage: string;
link: string;
setDescription: (stepNumber: number) => void;
// rename to select step
}
@@ -24,7 +25,8 @@ const Steps: React.FC<Props> = (props) => {
roundName={props.roundName}
isUnlocked={props.isUnlocked}
buttonText={props.buttonText}
descriptionImage={props.descriptionImage} /> :
descriptionImage={props.descriptionImage}
link={props.link} /> :
<div className={styles.stepHolder}>
<IonIcon icon={props.isUnlocked ? lockOpen : lockClosed} color={props.isUnlocked ? '' : "dark"} ></IonIcon>



+ 0
- 2
src/pages/preliminaryRoundResults/PreliminaryRoundResults.tsx 파일 보기

@@ -3,8 +3,6 @@ import styles from "./PreliminaryRoundResults.module.scss"
import { IonButton, IonContent, IonIcon, IonPage } from "@ionic/react";
import StepHeader from "../../components/stepsHeader/StepHeader";

import checkIcon from "../../assets/icons/check-circle-fill.svg";
import closeIcon from "../../assets/icons/close-filled.svg";
import goodJobIcon from "../../assets/icons/good_job.svg";

import { closeCircle, checkmarkCircle } from "ionicons/icons";


+ 2
- 2
src/pages/technicalInterview/TechnicalInterview.tsx 파일 보기

@@ -86,10 +86,10 @@ const TechnicalInterview: React.FC = () => {
</div>
:
<div className={styles.buttonHolder}>
<Link to="/" className={styles.dashboardButton}>
<Link to="/interviewRounds" className={styles.dashboardButton}>
<IonButton shape="round">Goto Dashboard</IonButton>
</Link>
<Link to="/" className={styles.nextStepButton}>
<Link to="/assignment" className={styles.nextStepButton}>
<IonButton shape="round">Goto Next Step</IonButton>
</Link>
</div>


불러오는 중...
취소
저장