Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat: folder css 일부] #41

Open
wants to merge 61 commits into
base: 송유선
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
b9ed927
[Feat: select folder html 및 css]
jinsujini Jul 5, 2024
16194f7
Fix: 삭제 undefinded 에러 해결
7beunseo Jul 5, 2024
d1021cf
Merge pull request #83 from 2024-HERETHON/eunseo
7beunseo Jul 5, 2024
337aa87
Comment: 충돌 해결 커밋
7beunseo Jul 5, 2024
75a745c
Fix:프로필수정완성
jinsujini Jul 2, 2024
d285af8
Feat: 폴더 hover css
jinsujini Jul 5, 2024
633ec03
Merge branch 'main' into eunseo
7beunseo Jul 5, 2024
2b5bbfe
fix: a태그 이미지까지 감싸도록 수정
7beunseo Jul 5, 2024
d2174b2
Merge pull request #85 from 2024-HERETHON/eunseo
7beunseo Jul 5, 2024
7d02b7f
Fix: a태그 이미지까지 감싸도록 수정
7beunseo Jul 5, 2024
091594d
Merge pull request #86 from 2024-HERETHON/eunseo
7beunseo Jul 5, 2024
d5facc7
Fix: home.html 이미지 이름 수정
7beunseo Jul 5, 2024
3d0b5b9
Merge pull request #87 from 2024-HERETHON/eunseo
7beunseo Jul 5, 2024
2f48dd6
Fix:프로필수정완성
jinsujini Jul 2, 2024
b835f4f
Merge branch 'main' into sujin
jinsujini Jul 5, 2024
a877760
Fix: 폴더 사이즈 수정
jinsujini Jul 5, 2024
551f7c7
Fix:프로필수정완성
jinsujini Jul 2, 2024
fe4ecc9
Merge branch 'main' of https://github.com/2024-HERETHON/2024-Herethon…
jinsujini Jul 5, 2024
ca7b174
Fix: 질문하기 폴더 주소 변경
jinsujini Jul 5, 2024
79b66cc
Fix:프로필수정완성
jinsujini Jul 2, 2024
060e454
Fix: mystuck hover css 수정
jinsujini Jul 5, 2024
0e9ce2d
Feat: results, test, create_question_room html 및 css
s-uxun Jul 5, 2024
6967841
Update README.md
Kimgah Jul 5, 2024
51b9bd2
Fix:프로필수정완성
jinsujini Jul 2, 2024
38d8d85
Fix: test 화면 마무리
jinsujini Jul 5, 2024
b1a5416
Feat: results, test, create_question_room html 및 css
s-uxun Jul 5, 2024
b023d96
Merge branch 'main' of https://github.com/2024-HERETHON/2024-Herethon-2
s-uxun Jul 5, 2024
bff7a88
d
s-uxun Jul 5, 2024
2521096
Fix:프로필수정완성
jinsujini Jul 2, 2024
549523c
Fix:프로필수정완성
jinsujini Jul 2, 2024
0ebc3d7
Fix : css 세부수정
jinsujini Jul 5, 2024
cb09e2e
Fix:프로필수정완성
jinsujini Jul 2, 2024
0ee58e7
Fix: nav 수정
jinsujini Jul 5, 2024
252fa5f
Fix:프로필수정완성
jinsujini Jul 2, 2024
1de4c21
Fix: 질문하기, 문제풀기 css 수정
jinsujini Jul 5, 2024
bac6ab1
Fix: result 페이지 quiz.type 출력
7beunseo Jul 5, 2024
37c431a
Merge pull request #95 from 2024-HERETHON/eunseo
7beunseo Jul 5, 2024
0ac11e4
Fix:프로필수정완성
jinsujini Jul 2, 2024
02aec00
Fix: result css
jinsujini Jul 5, 2024
c29f11c
Fix:프로필수정완성
jinsujini Jul 2, 2024
794119d
Fix: nav 바
jinsujini Jul 5, 2024
413e89c
Fix: question_room.html 생성 날짜 출력, 스크랩 변경 반영
7beunseo Jul 5, 2024
1f1f106
Fix:프로필수정완성
jinsujini Jul 2, 2024
f678711
Feat: landing.html
jinsujini Jul 5, 2024
9126408
Feat: 렌딩페이지 url 연결
7beunseo Jul 5, 2024
67b0588
Fix:프로필수정완성
jinsujini Jul 2, 2024
2385da1
Fix: landing.css
jinsujini Jul 5, 2024
343bff3
Fix: 렌딩페이지 구분
7beunseo Jul 5, 2024
09d448e
Fix:프로필수정완성
jinsujini Jul 2, 2024
41be7f2
Feat: landing.css
jinsujini Jul 5, 2024
74695e2
Fix:프로필수정완성
jinsujini Jul 2, 2024
b271864
Fix: 비밀번호 찾기 버튼
jinsujini Jul 5, 2024
197ec1b
Docs: README 수정
7beunseo Jul 5, 2024
0234320
DocsL README 수정
7beunseo Jul 5, 2024
5a747b2
Docs: README 작성
7beunseo Jul 9, 2024
5d39c19
Docs: README 작성
7beunseo Jul 9, 2024
14d8b50
Docs: README 이메일, 비밀번호 찾기 작성
7beunseo Jul 9, 2024
38cc6e4
Docs: README 이미지 크기 300px로 줄임
7beunseo Jul 9, 2024
7898cb1
Merge branch 'main' into readme
7beunseo Jul 9, 2024
4045ad1
Merge pull request #102 from 2024-HERETHON/readme
7beunseo Jul 9, 2024
84c6f80
Docs: Update README.md
7beunseo Jul 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/2024-Herethon-2.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/discord.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

80 changes: 75 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,82 @@
# 2024-Herethon-2
2024 여기톤 : HERETHON 2조 <br><br>

<img width="400px" src="./StuckProject/Static/img/LOGO.png">
![image](https://github.com/2024-HERETHON/2024-Herethon-2/assets/128278212/5eb332b5-dced-484d-9cc9-e7aa85a118da)

👉🏻 [서비스 바로가기](http://15.164.255.252/)
- id : Stuck
- password : Stuck1234!!

👉🏻 [여기톤 기사 보기](https://n.news.naver.com/article/092/0002337413?sid=105)

👉🏻 서비스 바로가기

<br><br>
### 📙 프로젝트 소개
우리 서비스는 말이죠~
STUCK은 자기주도학습을 위한 AI 문제생성 및 질의응답 서비스입니다.
학생들의 자기주도적 학습 태도 정립을 목표로 만들어진 STUCK은 다음과 같이 소비자들의 painpoint를 해결합니다.
#### 1. 문제풀기
* 문제 생성 탭으로 이동하여 저장하고자 하는 폴더를 생성하거나, 선택한 후 문제를 생성할 수 있습니다.
* 문제의 이름, 생성할 문제의 개수, 문제의 유형(객관식, 주관식), 생성하고자 하는 교재의 pdf나 이미지를 업로드할 수 있습니다.<br>
<br>
<img width="400px" src="./readme_img/img_6.png">
<img width="400px" src="./readme_img/img_1.png">
<img width="400px" src="./readme_img/img.png">

* 이미지를 업로드한 후 문제 생성 버튼을 클릭했다면 업로드한 이미지의 텍스트를 google cloud vision API를 통해 추출합니다.
* 추출한 텍스트를 기반으로 프롬프팅을 통해 chatGPT에게 문제 생성을 요청합니다.
* chatGPT의 응답을 기반으로 문제를 생성합니다.
* 문제를 풀었다면 채점 기능을 이용할 수 있습니다.
* 생성한 문제는 PDF와 WORD 형태로 저장할 수 있습니다.
* 자주 보는 문제는 즐겨찾기를 눌러 나중에 MySTUCK 페이지에서 확인할 수 있습니다.
<br><br>
<img width="300px" src="./readme_img/img_4.png">
<img width="300px" src="./readme_img/img_5.png">


#### 2. 질문하기
* 질문하기 탭으로 이동하여 문제풀기와 마찬가지로 폴더를 지정합니다.
* 질문할 파일을 등록하고 질문 이름을 지정합니다.
* 질문하기를 생성했다면 왼쪽에는 chatGPT를 이용한 질의응답, 오른쪽은 공부하면서 메모를 저장합니다.
* 질의응답 채팅 내용, 메모 모두 PDF와 WORD로 저장할 수 있습니다.
* 틀린 문제만 보기, 다시 풀기 옵션을 제공합니다.
* 자주 보는 질문하기는 즐겨찾기를 눌러 나중에 MySTUCK 페이지에서 확인할 수 있습니다. <br><br>
<img width="300px" src="./readme_img/img_8.png">
<img width="300px" src="./readme_img/img_7.png">


#### 3. My Stuck
* 이전까지 생성했던 폴더 및 파일을 확인할 수 있는 공간입니다.
* 컴퓨터 시스템의 파일탐색기와 매우 유사하며, 드래그하여 삭제, 드래그하여 폴더 및 파일 이동 기능을 모두 지원합니다.
* 폴더 및 파일 찾기도 가능합니다.
* 즐겨찾기한 항목은 아래에 회색으로 나타납니다.<br><br>
<img width="300px" src="./readme_img/img_9.png">


#### 4. MyPage
* 목표 설정을 할 수 있습니다.
* 캘린더와 연동했으며 할 일을 완수한 날이 있다면 파란색 배경, 할 일을 완수하지 못했다면 회색 배경으로 나타납니다.
* 루틴, 할 일은 추가 및 삭제가 가능합니다.
* 목표설정 아래를 스크롤하면 내 정보를 수정할 수 있습니다. <br><br>
<img width="300px" src="./readme_img/img_10.png">
<img width="300px" src="./readme_img/img_11.png">

#### 5. Home
* 월간 달성률, 주간 달성률, 일간 달성률을 확인할 수 있습니다.
* 즐겨찾기한 항목, 최근 열어본 문서를 확인할 수 있습니다. <br><br>
<img width="300px" src="./readme_img/img_12.png">
<img width="300px" src="./readme_img/img_13.png">

#### 6. 아이디, 비밀번호 찾기
* 아이디를 잃어버렸을 경우 이메일 입력을 통해 가입했을 때의 아이디를 찾을 수 있습니다.
* 비밀번호를 잃어버렸을 경우 이메알, ID 입력을 통해 비밀번호를 재설정할 수 있습니다. <br><br>
<img width="300px" src="./readme_img/img_16.png">
<img width="300px" src="./readme_img/img_15.png">
<img width="300px" src="./readme_img/img_14.png">


<br><br>
### 개발기간
2024.06.25 ~ 2024.07.06

<br><br>
### 🦁 STUCK 개발 팀원 소개
Expand All @@ -17,10 +86,11 @@
| <center> <img width="150px" src="https://ipainting.co.kr/wp-content/uploads/2019/02/%EB%8F%99%EB%AC%BC%EB%8F%84%EC%95%88_46.jpg"></center> |
| <center> 기획, 디자인 </center> |
#### ️Front-end
| <center> 박수진 </center> | <center> 송유선 </center> |

| <center> 최수진 </center> | <center> 송유선 </center> |
|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| <center> <img width="150px" src="https://avatars.githubusercontent.com/u/134383155?v=4"></center> | <center> <img width="150px" src="https://avatars.githubusercontent.com/u/164325907?v=4"></center> |
| <center> 역할1 </center> | <center> 역할2 </center> |
| <center> 역할1 </center> | <center> 역할2 </center> |
| <center> [@jinsujini](https://github.com/jinsujini) </center> | <center> [@s-uxun](https://github.com/s-uxun) </center> |

#### Back-end
Expand Down
Binary file added StuckProject/STUCKQUIZ_PDF.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions StuckProject/qna/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ class QuestionRoom(models.Model):
folder = models.ForeignKey(to=Folder, on_delete=models.CASCADE,related_name="qnas")
file = models.FileField(upload_to="file/%Y/%m/%d/")
memo = models.CharField(max_length=10000, blank=True)
created_at = models.DateField(auto_now_add=True)


class Chat(models.Model):
Expand Down
148 changes: 65 additions & 83 deletions StuckProject/qna/templates/qna/create_question_room.html
Original file line number Diff line number Diff line change
@@ -1,96 +1,78 @@
{% extends "base.html" %} {% load static %} {% block content %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="{% static 'css/create_question_room.css' %}" />
<title>질문하기</title>
</head>
<body>
<form
action="{% url 'qna:create-question-room' folder_id %}"
method="post"
enctype="multipart/form-data"
>
{% csrf_token %}
<main class="quiz_main">
<section class="quiz_option">
<div class="file_name">
<h6>질문 파일명</h6>
<input
type="text"
id="title"
name="title"
required
placeholder="파일명을 입력해주세요"
/>
</div>
</section>
<section class="file_upload">
<label
for="file"
ondrop="dropHandler(event);"
ondragover="dragOverHandler(event);"
>
<img
class="cloud"
src="{% static 'img/drag.svg' %}"
alt="Drag and drop area"
/>

<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="{% static 'css/create_question_room.css' %}" />
<title>질문하기</title>
</head>

<body>
<style>
.navbar .nav-qna * {
color: #09A8FA;
}
</style>
<form action="{% url 'qna:create-question-room' folder_id %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<main class="quiz_main">
<section class="quiz_option">
<div class="file_name">
<h6>질문 파일명</h6>
<input type="text" id="title" name="title" required placeholder="파일명을 입력해주세요" />
</div>
</section>
<section class="file_upload">
<label for="file" ondrop="dropHandler(event);" ondragover="dragOverHandler(event);">
<img class="cloud" src="{% static 'img/drag.svg' %}" alt="Drag and drop area" />
</label>
<img class="line" src="{% static 'img/line.svg' %}" />
<div class="upload_right" ondrop="dropHandler(event);" ondragover="dragOverHandler(event);">
<label for="file">
<h5>파일 선택</h5>
</label>
<img class="line" src="{% static 'img/line.svg' %}" />
<div
class="upload_right"
ondrop="dropHandler(event);"
ondragover="dragOverHandler(event);"
>
<label for="file"><h5>파일 선택</h5></label>
<p id="file-info">지원되는 파일 형식: .pdf, .png, .jpg</p>
<input
type="file"
id="file"
name="file"
style="display: none"
required
/>
</div>
</section>
<button type="submit">교재 내용 질문하기</button>
</main>
</form>
<p id="file-info">지원되는 파일 형식: .pdf, .png, .jpg</p>
<input type="file" id="file" name="file" style="display: none" required />
</div>
</section>
<button class="button" type="submit">교재 내용 질문하기</button>
</main>
</form>

<script>
document.getElementById("file").onchange = function () {
var fileNameDisplay = document.getElementById("file-info");
fileNameDisplay.textContent = this.files[0].name;
};
<script>
document.getElementById("file").onchange = function () {
var fileNameDisplay = document.getElementById("file-info");
fileNameDisplay.textContent = this.files[0].name;
};

function dragOverHandler(ev) {
ev.preventDefault();
}
function dragOverHandler(ev) {
ev.preventDefault();
}

function dropHandler(ev) {
ev.preventDefault();
function dropHandler(ev) {
ev.preventDefault();

if (ev.dataTransfer.items) {
if (ev.dataTransfer.items[0].kind === "file") {
var file = ev.dataTransfer.items[0].getAsFile();
console.log("Dropped file:", file.name);
if (ev.dataTransfer.items) {
if (ev.dataTransfer.items[0].kind === "file") {
var file = ev.dataTransfer.items[0].getAsFile();
console.log("Dropped file:", file.name);

var input = document.getElementById("file");
var dataTransfer = new DataTransfer();
dataTransfer.items.add(file);
input.files = dataTransfer.files;
var input = document.getElementById("file");
var dataTransfer = new DataTransfer();
dataTransfer.items.add(file);
input.files = dataTransfer.files;

document.getElementById("file-info").textContent = file.name;
}
} else {
document.getElementById("file-info").textContent =
ev.dataTransfer.files[0].name;
document.getElementById("file-info").textContent = file.name;
}
} else {
document.getElementById("file-info").textContent =
ev.dataTransfer.files[0].name;
}
</script>
</body>
}
</script>
</body>

</html>
{% endblock %}
{% endblock %}
25 changes: 25 additions & 0 deletions StuckProject/qna/templates/qna/landing.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{% extends "base.html" %} {% load static %} {% block content %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="{% static 'css/landing.css' %}">
</head>
<style>
.navbar .nav-qna * {
color: #09A8FA;
}
</style>
<div class="empty"></div>
<body>
<main>
<img src="{% static 'img/qna-landing.svg' %}" alt="랜딩이미지" >
<a href="{% url 'qna:select-folder' 0 %}"><h4>교재 내용 질문하기</h4></a>
</main>
<div class="empty"></div>

</body>
</html>
{% endblock %}
Loading