- 제작 기간 : 2023-06-21 ~ 2023-08-11
- 팀구성 : 박정수(PL) 고영우(UA,DA) 조성희(TA,AA) 정재균(DA,UA) 황지현(AA,TA) 이성일(AA,TA)
구시대적인 UI와 사용성이 떨어지는 기존의 학사관리 시스템을 탈피하고
사용자의 필요성과 편리성에 맞춰 효율적이고 적재적소에 맞는
학사관리 시스템을 제공하기 위하여 프로젝트를 진행함
- 깃 사용법 강의 및 전반적인 프로젝트 배포 및 관리
- lucy-xss-servlet라이브러리 설정을 이용하여 프로젝트 내에 전반적인 XSS(Cross-Site-Scripting)를 방지
- 교수와 학생간 실시간 알림
- 1:1, 멀티 화상채팅
- websocket 이용한 실시간 그룹채팅
- 온라인 시험 등록 및 시험 응시
- websocket 이용한 실시간 수강신청, 교과목 조회, 수강이력 조회, 수강중인 강의 조회
- 상담 신청 및 조회
- 사물함 예약, 시설물예약, 나의 예약 현황 조회
- 교수 대쉬보드
- 프로젝트 DB설계
- 시설과 시설물 관리 기능
- POI 이용한 사용자 일괄 등록 및 수정, 삭제
- 사물함 관리기능
- 교과목 관리기능
- itext 이용한 등록금 납부 내역 확인, 고지서 조회, 고지서 다운로드
- 장학금 조회, 장학금 신청, 장학금 수혜내역확인
- itext 이용한 증명서 발급, 발급내역 조회
- 마이페이지 기능
- 교수, 학생 클래스룸 목록 조회
- 교수의 학생과제 관리기능
- 교수의 학생성적 관리기능
- 교수의 학생출석 관리기능
- 학생의 출석 확인 및 이의신청기능
- 학생의 과제 제출기능
- 문자API를 이용한 사용자 주소록 문자 발송기능
- 카카오 결제API 설계
- 프로젝트 DB설계
- gridstack.js를 이용한 포탈사이트의 사용자 편의 위젯 자유 배치 기능
- 강의개설신청 관리기능
- 문자API를 활용한 휴강신청 관리 기능
- 장학금 관리기능
- 풀캘린더를 이용한 학사,학과 일정관리
- 학적변동 관리기능
- 학사, 학과 공지관리 기능
- 스프링 시큐리티를 이용한 액터별 로그인 접근 설계
- 음성인식 API를 이용한 스터디모집게시판 CRUD 및 페이지 이동기능
- 메일API를 이용한 비밀번호 찾기 기능
- 날씨 API 기능
- 학생의 당학기 성적 조회, 전체학기 성적 조회
- 교수의 강의 개설신청 및 조회
- 풀캘린더 이용한 교수의 휴강신청 기능
- RESTful, 패키지구조설계
- 학생 학적조회, 변동기능
- 조기졸업, 졸업유예 신청 및 조회 기능
- 스터디룸 개설 삭제 가입 신청 관리 및 학생 시간표 비교기능
- websocket을 이용한 실시간 그룹 채팅 기능
- 스터디 모집게시판 기능
- 학교 총지표
- 캡쳐API를 이용한 로그인 보안
-
장애 및 팔을 다친 학생을 위하여 편의성을 제공하고자 해당 음성인식 기능을 이용하여 원하는 페이지로 이동 및 게시판을 등록할 수 있습니다.
-
학생에 해당하는 학과의 교수님 리스트가 나오며 해당 주차에 대한 교수의 시간 시간표를 확인 후 원하는 시간에 상담예약을 신청할 수 있습니다.
-
교수의 주차별 시간표 테이블은 해당 시점 이전에 시간에 대해서 예약할 수 없습니다.
-
학생이 상담 신청을 할 시 해당 교수에게 실시간으로 알림이 나타나며 신청 내역을 조회 후 승인 및 반려가 가능하며 승인 및 반려시 학생에게 알림이 나타납니다.
-
webRTC를 활용한 1:1 화상채팅을 위해 node.js를 사용하여 시그널링 서버를 구축하였습니다. 이 서버는 webRTC 통신을 위해 클라이언트 간 메타데이터를 교환하고 연결을 설정하는 중간 역할을 합니다.
-
화상채팅을 진행하는 두 클라이언트 간에는 offer, answer, ice 이벤트를 이용하여 Session Description Protocol(SDP)정보(offer/answer)와 ICE candidate 정보를 교환하였습니다.
-
학생이 신청한 상담이 비대면인 경우 승인 할 시 입장 버튼이 학생과 교수에게 활성화 되며 입장 을 클릭시 1:1 화상채팅이 가능하며 화면과 스피커를 끄고 키고 할 수 있습니다.
-
사용자관리에는 교직원이 엑셀 POI API를 이용하여 사용자의 많은 데이터를 한번에 일괄 등록을 할 수 있다는 장점이 있으며 엑터별로 개별 등록도 가능합니다.
-
-
학사 일정 관리는 풀캘린더API를 이용하여 학사 및 각 학과별로 일정에 대한 CRUD를 할 수 있습니다
-
이외에도 교수의 휴강신청 및 스터디룸 일정에도 같은 일정관리 기능이 구현되어 있습니다.
-
coolsms API를 활용한 문자발송 기능은 학교에 소속된 원하는 사용자들에게 교직원이 만든 문자 플랫폼을 이용하여 일괄로 문자를 전송할 수 있는 기능입니다.
-
이외에도 휴강신청 관리에서도 해당 문자 발송기능이 구현되어 있습니다.
-
webRTC를 활용한 멀티 화상채팅을 위해 node.js를 사용하여 시그널링 서버를 구축하였습니다. 이 서버는 webRTC 통신을 위해 클라이언트 간 메타데이터를 교환하고 연결을 설정하는 중간 역할을 합니다.
-
멀티 화상채팅에서는 여러 사용자들이 동시에 연결되어야 하므로 서버는 각 사용자의 SDP 정보와 ICE candidate 정보를 정확히 구분해서 전달해야 합니다. 이를 위해 클라이언트의 소켓 아이디를 사용하여 각 사용자를 구분하였습니다.
-
join_room 이벤트를 통해 클라이언트가 특정 방에 입장할 때 해당 방에 속한 사용자들과 연결을 형성하였으며 offer, answer, ice 이벤트를 통해 각각 클라이언트로부터 오는 SDP(offer, answer 정보)와 ICE candidate 정보를 다른 사용자들에게 전달하도록 하였습니다.
-
스터디원에 소속되어있는 학생들은 해당 스터디룸에서 화상채팅 버튼을 클릭시 실시간으로 멀티 화상채팅이 가능하며 화면과 스피커를 끄고 키고 할 수 있습니다.
-
강의개설 신청 기능은 교수가 강의를 하려는 교과목과 , 원하는 강의실의 시간표를 비교하여 선택한 후 강의계획서를 첨부하여 개설신청을 하는 기능입니다.
-
개설신청이 되어있는 시간대와 강의실은 신청이 불가능하며, 수업 종료시간이 9교시를 넘는경우 또한 신청이 불가합니다.
-
강의계획서 작성시 기존의 해당과목 강의계획서를 불러와 수정하여 등록할 수 있으며 신청 후 신청현황을 조회하고 신청을 취소할 수 있습니다.
-
신청하고자 하는 장학금에 증빙파일을 첨부할 수 있으며 해당 신청내역의 증빙파일들을 수정할 수 있습니다.
-
증빙파일들을 일괄로 교체하는 것이 아닌 개별적으로 삭제 및 추가가 될 수 있게 구현하였습니다.
-
교수가 비대면 시험을 진행하기 위하여 pdf파일 형식으로 되어있는 시험지를 등록하면 pdfObject.js를 이용한 pdf파일 미리보기를 제공할 수 있습니다.
-
교수가 해당 시험지를 바라보며 문제의 답과 배점 및 선지수를 입력할 수 있다는 장점이 있습니다.
-
교수가 출제한 시험을 응시할 수 있으며 해당 제한시간안에 풀지않으면 작성한 답안까지 자동 제출 및 채점 기능을 제공하며 마찬가지로 모든 답안을 작성후 제출하면 자동 채점이 되며 응시내역을 확인할 수 있습니다.
-
실시간 그룹채팅은 웹소켓 통신을 활용하여 해당 스터디의 스터디원들간 실시간으로 채팅이 가능하도록 한 기능입니다.
-
채팅방별 실시간 메시지 읽음처리기능과 안읽은 개수를 실시간으로 보여지도록 구현하였습니다.
-
해당 학생에게 해당하는 증명서를 발급하기 위하여 카카오 API 결제를 이용하여 발급 할 수 있도록 구현하였습니다.
-
증명서 부분은 itext를 이용하여 학생에 대한 증명서를 pdf로 제작하여 미리보고 다운받을 수 있습니다.
-
실시간 수강신청 기능은 웹소켓 통신을 활용하여 학생이 수강신청을 함에 있어 실시간으로 집계 되고 있는 수강신청 현황을 확인하면서 수강신청을 할 수 있다는 장점이 있습니다.
-
수강신청을 진행하면 수강신청 페이지에 있는 사람들은 잔여 수가 실시간으로 줄어드는 것을 확인할 수 있습니다.