Skip to content

pparkjs/HankukUniversity_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

로고(마크)한국대학교 학사관리시스템 (HANKUK University LMS)

Who are we?

  • 제작 기간 : 2023-06-21 ~ 2023-08-11
  • 팀구성 : 박정수(PL) 고영우(UA,DA) 조성희(TA,AA) 정재균(DA,UA) 황지현(AA,TA) 이성일(AA,TA)

Overview

구시대적인 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를 이용한 로그인 보안

🛠️ 기술 스택


📋 주요 기능

음성인식을 이용한 페이지 이동 및 게시판 등록

학생 상담 신청 및 알림

  • 학생에 해당하는 학과의 교수님 리스트가 나오며 해당 주차에 대한 교수의 시간 시간표를 확인 후 원하는 시간에 상담예약을 신청할 수 있습니다.

  • 교수의 주차별 시간표 테이블은 해당 시점 이전에 시간에 대해서 예약할 수 없습니다.

  • 학생이 상담 신청을 할 시 해당 교수에게 실시간으로 알림이 나타나며 신청 내역을 조회 후 승인 및 반려가 가능하며 승인 및 반려시 학생에게 알림이 나타납니다. 상담신청


1:1 비대면 화상상담채팅

  • webRTC를 활용한 1:1 화상채팅을 위해 node.js를 사용하여 시그널링 서버를 구축하였습니다. 이 서버는 webRTC 통신을 위해 클라이언트 간 메타데이터를 교환하고 연결을 설정하는 중간 역할을 합니다.

  • 화상채팅을 진행하는 두 클라이언트 간에는 offer, answer, ice 이벤트를 이용하여 Session Description Protocol(SDP)정보(offer/answer)와 ICE candidate 정보를 교환하였습니다.

  • 학생이 신청한 상담이 비대면인 경우 승인 할 시 입장 버튼이 학생과 교수에게 활성화 되며 입장 을 클릭시 1:1 화상채팅이 가능하며 화면과 스피커를 끄고 키고 할 수 있습니다. 일대일


사용자 관리

  • 사용자관리에는 교직원이 엑셀 POI API를 이용하여 사용자의 많은 데이터를 한번에 일괄 등록을 할 수 있다는 장점이 있으며 엑터별로 개별 등록도 가능합니다.

  • 또한 전반적인 사용자에 대한 CRUD가 가능합니다. 사용자관리


학사/학과 일정관리

  • 학사 일정 관리는 풀캘린더API를 이용하여 학사 및 각 학과별로 일정에 대한 CRUD를 할 수 있습니다

  • 이외에도 교수의 휴강신청 및 스터디룸 일정에도 같은 일정관리 기능이 구현되어 있습니다. 캘린더


사용자 문자발송

  • coolsms API를 활용한 문자발송 기능은 학교에 소속된 원하는 사용자들에게 교직원이 만든 문자 플랫폼을 이용하여 일괄로 문자를 전송할 수 있는 기능입니다.

  • 이외에도 휴강신청 관리에서도 해당 문자 발송기능이 구현되어 있습니다. 문자전송


스터디원들간 비대면 멀티 화상채팅

  • webRTC를 활용한 멀티 화상채팅을 위해 node.js를 사용하여 시그널링 서버를 구축하였습니다. 이 서버는 webRTC 통신을 위해 클라이언트 간 메타데이터를 교환하고 연결을 설정하는 중간 역할을 합니다.

  • 멀티 화상채팅에서는 여러 사용자들이 동시에 연결되어야 하므로 서버는 각 사용자의 SDP 정보와 ICE candidate 정보를 정확히 구분해서 전달해야 합니다. 이를 위해 클라이언트의 소켓 아이디를 사용하여 각 사용자를 구분하였습니다.

  • join_room 이벤트를 통해 클라이언트가 특정 방에 입장할 때 해당 방에 속한 사용자들과 연결을 형성하였으며 offer, answer, ice 이벤트를 통해 각각 클라이언트로부터 오는 SDP(offer, answer 정보)와 ICE candidate 정보를 다른 사용자들에게 전달하도록 하였습니다.

  • 스터디원에 소속되어있는 학생들은 해당 스터디룸에서 화상채팅 버튼을 클릭시 실시간으로 멀티 화상채팅이 가능하며 화면과 스피커를 끄고 키고 할 수 있습니다. 멀티화상2


교수 강의개설신청

  • 강의개설 신청 기능은 교수가 강의를 하려는 교과목과 , 원하는 강의실의 시간표를 비교하여 선택한 후 강의계획서를 첨부하여 개설신청을 하는 기능입니다.

  • 개설신청이 되어있는 시간대와 강의실은 신청이 불가능하며, 수업 종료시간이 9교시를 넘는경우 또한 신청이 불가합니다.

  • 강의계획서 작성시 기존의 해당과목 강의계획서를 불러와 수정하여 등록할 수 있으며 신청 후 신청현황을 조회하고 신청을 취소할 수 있습니다. 교수개설신청


장학금 신청 및 수정

  • 신청하고자 하는 장학금에 증빙파일을 첨부할 수 있으며 해당 신청내역의 증빙파일들을 수정할 수 있습니다.

  • 증빙파일들을 일괄로 교체하는 것이 아닌 개별적으로 삭제 및 추가가 될 수 있게 구현하였습니다. 장학금신청


시험출제

  • 교수가 비대면 시험을 진행하기 위하여 pdf파일 형식으로 되어있는 시험지를 등록하면 pdfObject.js를 이용한 pdf파일 미리보기를 제공할 수 있습니다.

  • 교수가 해당 시험지를 바라보며 문제의 답과 배점 및 선지수를 입력할 수 있다는 장점이 있습니다. 시험출제 (2)


시험응시

  • 교수가 출제한 시험을 응시할 수 있으며 해당 제한시간안에 풀지않으면 작성한 답안까지 자동 제출 및 채점 기능을 제공하며 마찬가지로 모든 답안을 작성후 제출하면 자동 채점이 되며 응시내역을 확인할 수 있습니다. 시험응시


스터디원간 실시간 그룹채팅

  • 실시간 그룹채팅은 웹소켓 통신을 활용하여 해당 스터디의 스터디원들간 실시간으로 채팅이 가능하도록 한 기능입니다.

  • 채팅방별 실시간 메시지 읽음처리기능과 안읽은 개수를 실시간으로 보여지도록 구현하였습니다. 실시간채팅


증명서 결제

  • 해당 학생에게 해당하는 증명서를 발급하기 위하여 카카오 API 결제를 이용하여 발급 할 수 있도록 구현하였습니다.

  • 증명서 부분은 itext를 이용하여 학생에 대한 증명서를 pdf로 제작하여 미리보고 다운받을 수 있습니다. 증명서결제


실시간 수강신청

  • 실시간 수강신청 기능은 웹소켓 통신을 활용하여 학생이 수강신청을 함에 있어 실시간으로 집계 되고 있는 수강신청 현황을 확인하면서 수강신청을 할 수 있다는 장점이 있습니다.

  • 수강신청을 진행하면 수강신청 페이지에 있는 사람들은 잔여 수가 실시간으로 줄어드는 것을 확인할 수 있습니다. 수강신청


포털사이트 위젯 추가, 삭제, 배치 기능

  • gridstack.js를 이용하여 사용자의 편의성을 고려해 사용자가 원하는 웨짓을 보관함에 저장 및 추가가 가능하며 원하는 위치 배치를 직접할 수 있다는 장점이 있습니다. 포틀릿2


About

spring을 이용한 한국대학교 LMS 팀프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published