Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
ea9bc6c
'sync과정1'
TransparentDeveloper Sep 24, 2022
0e58adc
'sync2'
TransparentDeveloper Sep 24, 2022
7ea8cb1
'sync3'
TransparentDeveloper Sep 24, 2022
8c5cf11
Merge pull request #7 from TransparentDeveloper/sync
TransparentDeveloper Sep 24, 2022
aaaade7
'타PC접근확인용commit'
TransparentDeveloper Sep 27, 2022
be1a7ba
Merge pull request #8 from TransparentDeveloper/new_work
TransparentDeveloper Sep 27, 2022
87238fa
개인정보삭제
TransparentDeveloper Sep 27, 2022
d37ee65
Merge pull request #12 from oss01-SourceFree/access_to_Klas
TransparentDeveloper Sep 30, 2022
a109174
Create LICENSE
TransparentDeveloper Oct 7, 2022
004578f
Merge pull request #13 from oss01-SourceFree/add-license-1
TransparentDeveloper Oct 7, 2022
0f18951
'id,pw받아서로그인완료'
TransparentDeveloper Oct 11, 2022
339032c
Merge pull request #14 from TransparentDeveloper/suminCodeMerge
TransparentDeveloper Oct 11, 2022
e24f2f8
chromedirver없이실행가능해짐
TransparentDeveloper Oct 29, 2022
691dd64
cclass로 기능구현
TransparentDeveloper Oct 29, 2022
c77d76e
Merge pull request #21 from TransparentDeveloper/rebuild_using_class
TransparentDeveloper Oct 29, 2022
5b3a12e
Merge pull request #22 from oss01-SourceFree/rebuild_using_class
TransparentDeveloper Oct 29, 2022
3ba706d
Merge pull request #23 from oss01-SourceFree/scrape_user_information
TransparentDeveloper Nov 5, 2022
1d01944
과목별정보추출성공
TransparentDeveloper Nov 5, 2022
f5c15d6
창2, 3 구현
suminhan123 Nov 5, 2022
f47926a
'학기변환Tesging'
TransparentDeveloper Nov 6, 2022
dafc0e9
'학기별학업참여데이터추출완료'
TransparentDeveloper Nov 6, 2022
712896b
성적정보까지추출완료
TransparentDeveloper Nov 7, 2022
1150861
'userData가져오기완료'
TransparentDeveloper Nov 8, 2022
0f6b0b8
Merge pull request #25 from TransparentDeveloper/scrape_user_infomation
TransparentDeveloper Nov 8, 2022
59217a5
디자인 수정
suminhan123 Nov 10, 2022
6b6d1c1
Merge branch 'scrape_user_information' of https://github.com/oss01-So…
TransparentDeveloper Nov 13, 2022
0af8cb1
로그인실패시다시로그인시도가능
TransparentDeveloper Nov 13, 2022
6d22e79
한학기분석창 출력
TransparentDeveloper Nov 14, 2022
001b2f3
중간commit
TransparentDeveloper Nov 15, 2022
4d92825
Merge pull request #26 from TransparentDeveloper/create_main_flow
TransparentDeveloper Nov 15, 2022
d130c82
메시지 창 정상출력
TransparentDeveloper Nov 17, 2022
bedc994
'dd'
TransparentDeveloper Nov 17, 2022
f1aa518
Merge pull request #27 from TransparentDeveloper/create_subbox
TransparentDeveloper Nov 17, 2022
407adb9
인터넷 접속 불량 이벤트처리
TransparentDeveloper Nov 17, 2022
adc6caa
'로딩창정상작동'
TransparentDeveloper Nov 18, 2022
a44b6a3
디자인 변경
TransparentDeveloper Nov 18, 2022
0ce176a
방사형그래프출력완료
TransparentDeveloper Nov 18, 2022
ea43807
e-learing 처리
TransparentDeveloper Nov 18, 2022
dd47ea0
Merge pull request #28 from TransparentDeveloper/create_subbox
TransparentDeveloper Nov 18, 2022
9f5a8d4
Merge pull request #29 from oss01-SourceFree/create_main_flow
TransparentDeveloper Nov 18, 2022
a86caf3
README파일 초안 작성
TransparentDeveloper Nov 20, 2022
d136982
func1 개선완료
TransparentDeveloper Nov 20, 2022
f761673
func1과func2 중 하나의 창만 켜지도록 수정, 오류제거
TransparentDeveloper Nov 20, 2022
b64aedd
func2 개선완료
TransparentDeveloper Nov 20, 2022
6a9f087
Merge pull request #30 from oss01-SourceFree/fun1_fun2_repair
TransparentDeveloper Nov 21, 2022
8c0681b
기능 하나 당 하나의 창만 나오도록 수정
TransparentDeveloper Nov 21, 2022
a37e9e4
3번째 기능창 정상출력
TransparentDeveloper Nov 21, 2022
b03a0e6
기능3번 창 ui 구성 완료
TransparentDeveloper Nov 21, 2022
829adba
기능 3까지 완성
TransparentDeveloper Nov 22, 2022
0cc0834
Merge pull request #31 from TransparentDeveloper/implement_func3
TransparentDeveloper Nov 22, 2022
205c00f
모든기능완성
TransparentDeveloper Nov 25, 2022
d8a4adc
계정정보삭제
TransparentDeveloper Nov 25, 2022
fd1b510
완성
TransparentDeveloper Nov 25, 2022
6957a58
이미지변경
TransparentDeveloper Nov 25, 2022
492daeb
완성
TransparentDeveloper Nov 26, 2022
34521fe
Merge pull request #32 from TransparentDeveloper/new_update
TransparentDeveloper Nov 26, 2022
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
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2022 SourceFree

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
101 changes: 99 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,99 @@
# KlasCroller
OSS
# KlasCroller (가제)

*version 1.0.1
<div align="center">

<img width="15%" src="https://user-images.githubusercontent.com/50646145/202891559-317bce94-7cac-4009-83cb-670e8bdf2eca.png"/>


### KlasCroller
#### -광운대학교 재학생 전용 PC 프로그램입니다.-

<img src="https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=Python&logoColor=white"/>
<img src="https://img.shields.io/badge/Selenium-43B02A?style=for-the-badge&logo=Selenium&logoColor=white"/>
<img src="https://img.shields.io/badge/Matplotlib-11557C.svg?style=for-the-badge&logo=Matplotlib&logoColor=white"/>
<img src="https://img.shields.io/badge/GitHub-181717?style=for-the-badge&logo=GitHub&logoColor=white"/>
<img src="https://img.shields.io/badge/Visual Studio Code-007ACC?style=for-the-badge&logo=Visual Studio Code&logoColor=white"/>

</div>


## 프로젝트 설명
광운대학교 학부생들이 학업 성취도에 대한 진단을 스스로 할 수 있도록 Window 기반 GUI 프로그램을 만들었습니다.

사용자의 요청에 따라 파라미터를 기준으로 단일 학기 분석, 두 개 학기 비교, 전체 학기(완료된 학기 기준) 진단 등의 기능을 수행 합니다.

klas 로그인 시 사용하는 id,pw를 입력받아, 학부생의 학업 성취 데이터를 추출하여 아래와 같은 파라미터를 구성합니다.


### [프로젝트 기간]
- (2022-09-12 ~ 2022-11-26)


### [기능]
- KLAS (광운대학교 웹어플리케이션, https://klas.kw.ac.kr) 접근 및 로그인
- 학기별 출석율, 과제제출율, 성적 등의 학생 Data Scraping 및 파라미터 값 추출

[파라미터]

- 의지력 = (출석 / (출석+지각+결석)) X 100

- 지능 = ((실제 취득 학점) / (취득 가능 학점) ) X 100

- 생존력 = (*수강과목 갯수 에 따른 점수) + 총 과제,퀴즈 갯수(50개 이상 이면 50점)

- 근명성 = (제출한 과제 수 + 제출한 퀴즈 수) / (총 과제 수 + 총 퀴즈 수) X 100

- 가성비 = (지능 /의지력)


*수강과목 갯수 에 따른 점수:
6 개 이상: 50점
5 개 : 40점
4 개 : 32점
3 개 : 24점
2 개 : 16점
1 개 : 8점

- 로컬 PC에 cache file 생성 후 파라미터 값 저장 (이후 프로그램 구동 시, Scraping 과정 생략)
- 파라미터를 근거로 사용자가 원하는 학기에 대해 그래프 출력

단일 학기 분석 시, 오각형 방사 그래프(Radiation Graph Of A Pentagon) 출력

두개 학기 분석 시, 막대 그래프(Bar Graph) 출력

- 완료된 학기에 분석하여 사용자의 학업 성취 스타일 판단

1. 5개의 파라미터 각각의 중앙값으로 가장 높은 값, 두번째로 높은 값을 가지는 파라미터를 확인

2. 가장 높은 값을 가지는 파라미터로 적절한 동물 이미지를 매치

3. 두번째로 높은 값을 가지는 파라미터로 적절한 배경 이미지를 매치

4. 2,3 번 으로 장점이 부각된 사용자의 학업 성취 스타일 출력

5. 5개의 파라미터 각각의 중앙값으로 가장 낮은 값, 두 번째로 낮은 값을 가지는 파라미터를 확인

6. 가장 낮은 값을 가지는 파라미터로 적절한 동물 이미지를 매치

7. 두번째로 낮은 값을 가지는 파라미터로 적절한 배경 이미지를 매치

8. 6,7 번 으로 단점이 부각된 사용자의 학업 성취 스타일 출력

- 사용자 요청에 따른 cache file 초기화


### [사용법]
- KLAS 로그인 시 사용하는 id,pw로 프로그램에 로그인 해주세요.
- 프로그램이 정상 작동이 되었다면 아래와 같은 화면에 사용자의 학번이 출력됩니다.

- <단일 학기 분석> 버튼을 클릭한다면, 해당 기능에 대한 설명과 학기 선택 콤보 박스가 있는 학기선택 창을 보실 수 있습니다.
선택된 학기에 대해서 사용자의 파라미터 값으로 오각형의 방사그래프(Radiation Graph Of A Pentagon)가 출력됩니다.

- <두개 학기 비교> 버튼을 클릭한다면, 해당 기능에 대한 설명과 학기 선택 콤보 박스가 있는 학기선택 창을 보실 수 있습니다.
선택된 두개 학기에 대해서 사용자의 파라미터 값으로 막대 그래프(Bar Graph)가 출력됩니다.

- <종합 평가> 버튼을 클릭한다면, 해당 기능에 대한 설명 창을 보실 수 있습니다.

- 새 학기를 업데이트 하려거나, KLAS 정보를 local PC에 저장하고 싶지 않을 경우, <내 정보 초기화> 버튼을 클릭 해주세요.

Binary file added __pycache__/caching.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/displaying.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/scraping.cpython-310.pyc
Binary file not shown.
31 changes: 31 additions & 0 deletions caching.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import pickle
import gzip
import os

class CacheManager:
def __init__(self,path,id):
# 파일이름
self.file_path = os.path.join(path,id+".plk")

def SaveCache(self, data):
# 저장, 압축
with gzip.open(self.file_path, "wb") as f:
pickle.dump(data, f)

# 저장된 데이터 초기화
def InitCache(self):
empty_dic = {}
with gzip.open(self.file_path, "wb") as f:
pickle.dump(empty_dic, f)

# 저장된 데이터 가져오기
def GetCache(self):
dic = {}
with gzip.open(self.file_path,'rb') as f:
dic = pickle.load(f)
return dic

# 파일 삭제
def DestoryFile(self):
if os.path.exists(self.file_path):
os.remove(self.file_path)
Loading