Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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