Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
students
survey
Commits
da97d437
Commit
da97d437
authored
Jul 08, 2022
by
Lee SeoYeon
Browse files
0708
parent
6c927ef1
Changes
9
Show whitespace changes
Inline
Side-by-side
frontend/src/CreateSurveyForm/CreateSurveyFormPage.tsx
View file @
da97d437
...
@@ -15,19 +15,28 @@ export interface EssayType extends BasicQuestionType {}
...
@@ -15,19 +15,28 @@ export interface EssayType extends BasicQuestionType {}
export
interface
RadioType
extends
BasicQuestionType
{
export
interface
RadioType
extends
BasicQuestionType
{
content
:
{
content
:
{
hasOther
:
boolean
;
hasOther
:
boolean
;
choices
:
string
[];
choices
:
{
value
:
number
;
text
:
string
;
}[];
otherText
:
string
;
otherText
:
string
;
};
};
}
}
export
interface
CheckboxType
extends
BasicQuestionType
{
export
interface
CheckboxType
extends
BasicQuestionType
{
content
:
{
content
:
{
choices
:
string
[];
choices
:
{
value
:
number
;
text
:
string
;
}[];
maxCount
:
number
;
maxCount
:
number
;
};
};
}
}
export
interface
DropdownType
extends
BasicQuestionType
{
export
interface
DropdownType
extends
BasicQuestionType
{
content
:
{
content
:
{
choices
:
string
[];
choices
:
{
value
:
number
;
text
:
string
;
}[];
hasNone
:
boolean
;
hasNone
:
boolean
;
};
};
}
}
...
@@ -39,7 +48,7 @@ export interface FileType extends BasicQuestionType {
...
@@ -39,7 +48,7 @@ export interface FileType extends BasicQuestionType {
}
}
export
interface
RatingType
extends
BasicQuestionType
{
export
interface
RatingType
extends
BasicQuestionType
{
content
:
{
content
:
{
rateValu
es
:
{
choic
es
:
{
value
:
number
;
value
:
number
;
text
:
string
;
text
:
string
;
}[];
}[];
...
@@ -65,7 +74,11 @@ const RadioQ: RadioType = {
...
@@ -65,7 +74,11 @@ const RadioQ: RadioType = {
content
:
{
content
:
{
hasOther
:
false
,
hasOther
:
false
,
otherText
:
""
,
otherText
:
""
,
choices
:
[
"
radio1
"
,
"
radio2
"
,
"
radio3
"
],
choices
:
[
{
value
:
1
,
text
:
"
radio1
"
},
{
value
:
2
,
text
:
"
radio2
"
},
{
value
:
3
,
text
:
"
radio3
"
},
],
},
},
};
};
const
CheckboxQ
:
CheckboxType
=
{
const
CheckboxQ
:
CheckboxType
=
{
...
@@ -75,7 +88,11 @@ const CheckboxQ: CheckboxType = {
...
@@ -75,7 +88,11 @@ const CheckboxQ: CheckboxType = {
isRequired
:
false
,
isRequired
:
false
,
comment
:
"
질문에 대한 설명을 입력해주세요
"
,
comment
:
"
질문에 대한 설명을 입력해주세요
"
,
content
:
{
content
:
{
choices
:
[
"
check1
"
,
"
check2
"
,
"
check3
"
],
choices
:
[
{
value
:
1
,
text
:
"
check1
"
},
{
value
:
2
,
text
:
"
check2
"
},
{
value
:
3
,
text
:
"
check3
"
},
],
maxCount
:
2
,
maxCount
:
2
,
},
},
};
};
...
@@ -86,7 +103,11 @@ const DropdownQ: DropdownType = {
...
@@ -86,7 +103,11 @@ const DropdownQ: DropdownType = {
isRequired
:
false
,
isRequired
:
false
,
comment
:
"
질문에 대한 설명을 입력해주세요
"
,
comment
:
"
질문에 대한 설명을 입력해주세요
"
,
content
:
{
content
:
{
choices
:
[
"
drop1
"
,
"
drop2
"
,
"
drop3
"
],
choices
:
[
{
value
:
1
,
text
:
"
drop1
"
},
{
value
:
2
,
text
:
"
drop2
"
},
{
value
:
3
,
text
:
"
drop3
"
},
],
hasNone
:
false
,
hasNone
:
false
,
},
},
};
};
...
@@ -108,7 +129,7 @@ const RatingQ: RatingType = {
...
@@ -108,7 +129,7 @@ const RatingQ: RatingType = {
isRequired
:
false
,
isRequired
:
false
,
comment
:
"
질문에 대한 설명을 입력해주세요
"
,
comment
:
"
질문에 대한 설명을 입력해주세요
"
,
content
:
{
content
:
{
rateValu
es
:
[
choic
es
:
[
{
value
:
1
,
text
:
"
1
"
},
{
value
:
1
,
text
:
"
1
"
},
{
value
:
2
,
text
:
"
2
"
},
{
value
:
2
,
text
:
"
2
"
},
{
value
:
3
,
text
:
"
3
"
},
{
value
:
3
,
text
:
"
3
"
},
...
...
frontend/src/CreateSurveyForm/QCheckbox.tsx
View file @
da97d437
...
@@ -49,7 +49,7 @@ export const QCheckbox = ({ element }: Props) => {
...
@@ -49,7 +49,7 @@ export const QCheckbox = ({ element }: Props) => {
></
input
>
></
input
>
</
div
>
</
div
>
<
div
id
=
"commentarea"
className
=
"flex mt-4"
>
<
div
id
=
"commentarea"
className
=
"flex mt-4"
>
{
element
.
content
.
choices
.
map
((
e
:
string
)
=>
(
{
element
.
content
.
choices
.
map
((
e
:
any
)
=>
(
<
div
>
<
div
>
<
input
type
=
"checkbox"
checked
=
{
false
}
></
input
>
<
input
type
=
"checkbox"
checked
=
{
false
}
></
input
>
<
input
<
input
...
...
frontend/src/CreateSurveyForm/QDropdown.tsx
View file @
da97d437
...
@@ -47,7 +47,7 @@ export const QDropdown = ({ element }: Props) => {
...
@@ -47,7 +47,7 @@ export const QDropdown = ({ element }: Props) => {
></
input
>
></
input
>
</
div
>
</
div
>
<
div
id
=
"commentarea"
className
=
"flex mt-4"
>
<
div
id
=
"commentarea"
className
=
"flex mt-4"
>
{
element
.
content
.
choices
.
map
((
e
:
string
)
=>
(
{
element
.
content
.
choices
.
map
((
e
:
any
)
=>
(
<
div
>
<
div
>
<
input
type
=
"checkbox"
checked
=
{
false
}
></
input
>
<
input
type
=
"checkbox"
checked
=
{
false
}
></
input
>
<
input
<
input
...
...
frontend/src/CreateSurveyForm/QRadio.tsx
View file @
da97d437
...
@@ -46,7 +46,7 @@ export const QRadio = ({ element }: Props) => {
...
@@ -46,7 +46,7 @@ export const QRadio = ({ element }: Props) => {
></
input
>
></
input
>
</
div
>
</
div
>
<
div
className
=
"flex mt-4"
>
<
div
className
=
"flex mt-4"
>
{
element
.
content
.
choices
.
map
((
e
:
string
,
index
:
number
)
=>
(
{
element
.
content
.
choices
.
map
((
e
:
any
,
index
:
number
)
=>
(
<
div
>
<
div
>
<
input
<
input
type
=
"radio"
type
=
"radio"
...
...
frontend/src/CreateSurveyForm/QRating.tsx
View file @
da97d437
...
@@ -56,7 +56,7 @@ export const QRating = ({ element }: Props) => {
...
@@ -56,7 +56,7 @@ export const QRating = ({ element }: Props) => {
size
=
{
10
}
size
=
{
10
}
placeholder
=
{
element
.
content
.
minRateDescription
}
placeholder
=
{
element
.
content
.
minRateDescription
}
></
input
>
></
input
>
{
element
.
content
.
rateValu
es
.
map
((
e
)
=>
(
{
element
.
content
.
choic
es
.
map
((
e
)
=>
(
<
input
<
input
name
=
"text"
name
=
"text"
id
=
{
element
.
_id
}
id
=
{
element
.
_id
}
...
...
frontend/src/auth/Login.tsx
View file @
da97d437
...
@@ -36,11 +36,9 @@ export const Login = () => {
...
@@ -36,11 +36,9 @@ export const Login = () => {
}
}
return
(
return
(
<
div
className
=
"flex justify-center mt-3"
>
<
div
className
=
"flex flex-col items-center mt-5"
>
<
form
<
div
className
=
"text-2xl mt-5"
>
로그인
</
div
>
onSubmit
=
{
handleSubmit
}
<
form
onSubmit
=
{
handleSubmit
}
className
=
"flex flex-col mt-3 w-80"
>
className
=
"flex flex-col space-y-4 mt-5 text-xl font-bold"
>
<
label
className
=
"block text-gray-700 text-sm font-bold mb-2 mt-3"
>
<
label
className
=
"block text-gray-700 text-sm font-bold mb-2 mt-3"
>
이메일
이메일
</
label
>
</
label
>
...
@@ -75,7 +73,7 @@ export const Login = () => {
...
@@ -75,7 +73,7 @@ export const Login = () => {
<
button
<
button
type
=
"submit"
type
=
"submit"
disabled
=
{
loading
?
true
:
false
}
disabled
=
{
loading
?
true
:
false
}
className
=
"bg-themeColor text-white border rounded w-100 py-2 px-3 mt-
3
"
className
=
"bg-themeColor text-white border rounded w-100 py-2 px-3 mt-
5
"
>
>
{
loading
&&
(
{
loading
&&
(
<
SpinnerIcon
className
=
"animate-spin h-5 w-5 mr-1 text-white"
/>
<
SpinnerIcon
className
=
"animate-spin h-5 w-5 mr-1 text-white"
/>
...
...
frontend/src/auth/SignUp.tsx
View file @
da97d437
...
@@ -67,9 +67,9 @@ export const SignUp = () => {
...
@@ -67,9 +67,9 @@ export const SignUp = () => {
}
}
return
(
return
(
<
div
className
=
"flex flex-col items-center mt-
3
"
>
<
div
className
=
"flex flex-col items-center mt-
5
"
>
<
div
className
=
"text-2xl"
>
회원
가입
</
div
>
<
div
className
=
"text-2xl
mt-5
"
>
회원가입
</
div
>
<
form
onSubmit
=
{
handleSubmit
}
className
=
"flex flex-col mt-
5
w-80"
>
<
form
onSubmit
=
{
handleSubmit
}
className
=
"flex flex-col mt-
3
w-80"
>
<
label
className
=
"block text-gray-700 text-sm font-bold mb-2 mt-3"
>
<
label
className
=
"block text-gray-700 text-sm font-bold mb-2 mt-3"
>
이름
이름
</
label
>
</
label
>
...
...
frontend/src/commons/SurveyForm.tsx
View file @
da97d437
import
React
from
"
react
"
;
import
React
,
{
InputHTMLAttributes
}
from
"
react
"
;
export
const
SurveyForm
=
()
=>
(
export
const
SurveyForm
=
()
=>
{
return
(
<
div
className
=
"flex flex-col place-items-center"
>
<
div
className
=
"flex flex-col place-items-center"
>
<
div
className
=
"flex flex-col container place-items-center mt-4"
>
<
div
className
=
"flex flex-col container place-items-center mt-4"
>
<
form
className
=
"font-bold text-4xl text-center m-2"
>
설문지 제목
</
form
>
<
form
className
=
"font-bold text-4xl text-center m-2"
>
설문지 제목
</
form
>
...
@@ -12,7 +13,9 @@ export const SurveyForm = () => (
...
@@ -12,7 +13,9 @@ export const SurveyForm = () => (
></
textarea
>
></
textarea
>
<
div
className
=
"flex flex-col container w-4/5 h-auto border-2 border-themeColor items-center m-3 py-3"
>
<
div
className
=
"flex flex-col container w-4/5 h-auto border-2 border-themeColor items-center m-3 py-3"
>
<
div
className
=
"flex flexgi-row h-16 w-full place-content-between items-center"
>
<
div
className
=
"flex flexgi-row h-16 w-full place-content-between items-center"
>
<
form
className
=
"text-xl font-bold ml-6 w-1/2"
>
Q1. 첫번째 질문
</
form
>
<
form
className
=
"text-xl font-bold ml-6 w-1/2"
>
Q1. 첫번째 질문
</
form
>
</
div
>
</
div
>
<
form
className
=
"border w-11/12 my-3"
>
설문조사 설명
</
form
>
<
form
className
=
"border w-11/12 my-3"
>
설문조사 설명
</
form
>
<
input
<
input
...
@@ -23,14 +26,92 @@ export const SurveyForm = () => (
...
@@ -23,14 +26,92 @@ export const SurveyForm = () => (
</
div
>
</
div
>
<
div
className
=
"flex flex-col container w-4/5 h-auto border-2 border-themeColor items-center m-3 py-3"
>
<
div
className
=
"flex flex-col container w-4/5 h-auto border-2 border-themeColor items-center m-3 py-3"
>
<
div
className
=
"flex flexgi-row h-16 w-full place-content-between items-center"
>
<
div
className
=
"flex flexgi-row h-16 w-full place-content-between items-center"
>
<
form
className
=
"text-xl font-bold ml-6 w-1/2"
>
Q1. 첫번째 질문
</
form
>
<
form
className
=
"text-xl font-bold ml-6 w-1/2"
>
Q2. 두번째 질문
</
form
>
</
div
>
</
div
>
<
form
className
=
"border w-11/12 my-4"
>
설문조사 설명
</
form
>
<
form
className
=
"border w-11/12 my-4"
>
설문조사 설명
</
form
>
<
div
className
=
"flex flex-row items-center m-3"
>
<
div
className
=
"mb-4 mx-3"
>
<
input
<
input
className
=
"border w-11/12 h-36 my-3"
id
=
"default-checkbox"
type
=
"text"
type
=
"checkbox"
placeholder
=
"설문조사 답변"
className
=
"w-5 h-5 mt-3 text-blue-600 bg-gray-100 rounded border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
></
input
>
/>
<
label
className
=
"ml-2 text-lg font-medium"
>
First checkbox
</
label
>
</
div
>
<
div
className
=
"mb-4 mx-3"
>
<
input
id
=
"default-checkbox"
type
=
"checkbox"
className
=
"w-5 h-5 mt-3 text-blue-600 bg-gray-100 rounded border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
/>
<
label
className
=
"ml-2 text-lg font-medium"
>
Second checkbox
</
label
>
</
div
>
<
div
className
=
"mb-4 mx-3"
>
<
input
id
=
"default-checkbox"
type
=
"checkbox"
value
=
""
className
=
"w-5 h-5 mt-3 text-blue-600 bg-gray-100 rounded border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
/>
<
label
className
=
"ml-2 text-lg font-medium"
>
Third checkbox
</
label
>
</
div
>
<
div
className
=
"mb-4 mx-4"
>
<
input
id
=
"default-checkbox"
type
=
"checkbox"
value
=
""
className
=
"w-5 h-5 mt-3 text-blue-600 bg-gray-100 rounded border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
/>
<
label
className
=
"ml-2 text-lg font-medium"
>
Fourth checkbox
</
label
>
</
div
>
</
div
>
</
div
>
<
div
className
=
"flex flex-col container w-4/5 h-auto border-2 border-themeColor items-center m-3 py-3"
>
<
div
className
=
"flex flexgi-row h-16 w-full place-content-between items-center"
>
<
form
className
=
"text-xl font-bold ml-6 w-1/2"
>
Q3. 세번째 질문
</
form
>
</
div
>
<
form
className
=
"border w-11/12 my-4"
>
설문조사 설명
</
form
>
<
div
className
=
"flex flex-row items-center m-3"
>
<
div
className
=
"flex items-center mb-4 mx-4"
>
<
input
id
=
"default-radio-1"
type
=
"radio"
value
=
""
name
=
"default-radio"
className
=
"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
/>
<
label
className
=
"ml-2 text-lg"
>
First radio
</
label
>
</
div
>
<
div
className
=
"flex items-center mb-4 mx-4"
>
<
input
id
=
"default-radio-1"
type
=
"radio"
value
=
""
name
=
"default-radio"
className
=
"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
/>
<
label
className
=
"ml-2 text-lg"
>
Second radio
</
label
>
</
div
>
<
div
className
=
"flex items-center mb-4 mx-4"
>
<
input
checked
id
=
"default-radio-2"
type
=
"radio"
value
=
""
name
=
"default-radio"
className
=
"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
/>
<
label
className
=
"ml-2 text-lg"
>
Checked state
</
label
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
<
div
>
<
div
>
...
@@ -39,4 +120,5 @@ export const SurveyForm = () => (
...
@@ -39,4 +120,5 @@ export const SurveyForm = () => (
</
button
>
</
button
>
</
div
>
</
div
>
</
div
>
</
div
>
);
);
};
frontend/src/profile/Profile.tsx
View file @
da97d437
...
@@ -3,8 +3,8 @@ import { Link } from "react-router-dom";
...
@@ -3,8 +3,8 @@ import { Link } from "react-router-dom";
export
const
Profile
=
()
=>
{
export
const
Profile
=
()
=>
{
return
(
return
(
<
div
className
=
"flex
justify
-center"
>
<
div
className
=
"flex
flex-col items
-center"
>
<
div
className
=
"
m-5"
>
나의 설문조사
</
div
>
<
div
className
=
"m-5"
>
나의 설문조사
</
div
>
<
div
className
=
"flex flex-row space-x-4 mt-5"
>
<
div
className
=
"flex flex-row space-x-4 mt-5"
>
<
Link
<
Link
to
=
"/create"
to
=
"/create"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment