프로젝트명 : Hi,MMU (시간표 관리 앱 프로그램) 제출일 : 2019.05.03(금)
작성팀 : 5PM (김세진, 모준우, 박민정, 박준영, 최상연)
개발 진도 현황
목포해양대학교 해양컴퓨터공학과
목 차
1. 작품 소개 ... 3
2. 시스템 구성도 ... 4
3. 시스템 설계 ... 5
3.1. DB 설계 ...5
3.1.1...5
3.1.2. 테이블 목록 ...6
3.1.3. 테이블 정의서 ...7
3.2. 프로세스 설계 ... 13
3.3. 서버 설계 ... 17
3.4. UI 설계 ... 19
4. 요구사항별 개발 진도표 ... 26
5. 진행 경과(2차 발표 이후) : ( 3/28 ~ 4/28 ) ... 27
6. 향후 일정 ... 28
6.1. 업무 분장 ... 28
목포해양대학교 해양컴퓨터공학과
1. 작품 소개
학생들이 기존의 시간표 앱을 사용할 때 일일이 수강 신청한 과목을 입력하여 시간표를 작성하
거나, 학사행정서비스에서 시간표를 캡쳐해야 하는 불편함을 겪고 있다. 이런 불편함을 개선하기
위해 학생이 수강 신청한 과목에 대한 시간표를 자동으로 생성하고, 수정이 가능한 ‘하이 MMU’
라는 앱을 개발하고자 한다. 또한 사용자의 편의를 제공하기 위한 졸업 요건 확인과 강의 후기
게시판, 학사일정 보기 등의 기능을 앱에 추가하고자 한다.
목포해양대학교 해양컴퓨터공학과
2. 시스템 구성도
목포해양대학교 해양컴퓨터공학과
3. 시스템 설계
3.1. DB 설계
3.1.1. ERD
목포해양대학교 해양컴퓨터공학과
3.1.2. 테이블 목록
테이블 & 스키마
1. 학생(학생ID, 학생 이름, 학생pw, 학생 학과, 학생 학년, 학생주소)
2. 교수(교수코드, 교수 이름, 교수 전화번호, 교수 학과)
3. 관리자(관리자ID, 관리자 이름, 관리자 전화번호, 관리자 pw)
4. 시간표(시간표ID, 시간표 이름)
5. 학사일정(학사일정ID, 학사일정 월, 학사일정 일, 학사일정 내용)
6. 게시판(게시판 번호, 게시판 이름, 관리자ID(FK))
7. 게시글(게시글ID, 게시글 제목, 게시글 내용, 게시글 등록 날짜, 게시글pw, 작성자(FK), 게시판 번호(FK))
8. 설강과목(과목 코드, 강의실, 과목명, 과목 요일, 과목 교시, 학년도, 반, 교수코드(FK))
9. 수강신청(학생ID, 과목 코드, 학년도, 학기)
10. 교과과정(과목코드, 학년, 학기, 학수구분, 과목명, 학점수, 시수)
11. 수동 시간표(과목명, 시간표 이름, 담당 교수, 요일, 시작 시간, 끝 시간)
12.일정 (일정ID, 일정 명, 일정 날짜, 디데이 설정하기, 학생ID(FK) )
목포해양대학교 해양컴퓨터공학과
3.1.3. 테이블 정의서
1) 학생(student) 테이블
속성 이름 타입 설명
학생 ID (s_id) Char(15) 학생의 ID 정보
학생 이름 (s_name) Varchar(20) 학생의 이름 정보
학생 PW(s_pw) Varchar(50) 학생의 PW 정보
학생 학과(s_department) Char(15) 학생의 학과 정보
학생 학년(s_grade) Int 학생의 학년정보
학생 주소(s_address) Varchar(50) 학생의 주소 정보
2) 교수(professor) 테이블
속성 이름 타입 설명
교수 코드 (pf_code) Char(15) 교수 코드 정보
교수 이름 (pf_name) Char(20) 교수 이름 정보
교수 전화번호 (pf_tel) Char(20) 교수 전화번호 정보
교수 학과 (pf_dep) Char(12) 교수 학과 정보
목포해양대학교 해양컴퓨터공학과
3) 관리자(admin) 테이블속성 이름 타입 설명
관리자 ID (ad_id) Varchar(15) 관리자 ID 정보
관리자 이름 (ad_name) Varchar(20) 관리자 이름 정보
관리자 전화번호 (ad_tel) Char(20) 관리자 전화번호 정보
관리자 PW (ad_pw) Varchar(50) 관리자 PW 정보
4) 시간표(timetable) 테이블
속성 이름 타입 설명
시간표 ID (tt_id) Varchar(15) 시간표의 ID 정보
시간표 이름 (tt_name) char(20) 시간표의 이름 정보
5) 학사일정(u_schedule) 테이블
속성 이름 타입 설명
학사일정 ID (usd_id) Char(15) 학년도별 학사일정 ID 정보
학사일정 월 (usd_date_m) Char(15) 학사일정의 월 정보
학사일정 일 (usd_date_d) Char(15) 학사일정의 요일 정보
학사일정 내용
(usd_contents) Char(20) 학사일정의 내용 정보
목포해양대학교 해양컴퓨터공학과
6) 게시판(board) 테이블속성 이름 타입 설명
게시판 번호 (b_num) int 게시판의 번호 정보
게시판 이름 (b_name) Varchar(15) 게시판의 이름 정보
관리자 ID (b_admin) Varchar(15) 게시판을 관리하는 관리자 의 외래키
7) 게시글(post) 테이블
속성 이름 타입 설명
게시글 ID (pt_id) Int 게시글의 ID 정보
게시글 제목 (pt_title) Char(20) 게시글의 제목 정보
게시글 내용 (pt_content) Text 게시글의 내용 정보
게시글 등록 날짜 (pt_date) Date 게시글 등록 날짜 정보
게시글 PW (pt_tw) Char(20) 게시글 수정/삭제를 위한 게
시글 PW 정보
작성자 (pt_writer) Char(15) 게시글의 작성자 정보를 저
장하는 학생의 외래키
게시판 번호 (pt_num) Int(11) 게시글이 저장된 게시판 을
찾기위한 게시판의 외래키
목포해양대학교 해양컴퓨터공학과
8) 설강과목(l_subject) 테이블속성 이름 타입 설명
과목 코드 (l_code) Varchar(10) 과목 코드 정보
강의실 (l_class) Int 강의실 정보
과목명 (l_name) Char(20) 과목명 정보
과목 요일 (l_day) Char(5) 과목 요일 정보
과목 교시 (l_period) Int 과목 교시 정보
학년도 (l_shyear) Year 과목의 학년도 정보
교수 코드 (l_pcode) Char(15)
과목을 강의하는 교수의 정 보를 가져오는 교수의 외래
키
9) 수강신청(enrolment) 테이블
속성 이름 타입 설명
학생 ID (e_sid) char(15) 수강 신청한 학생의 ID 정보
과목 코드 (e_scode) Varchar(10) 수강 신청한 과목의 과목코 드 정보
학년도 (e_grade) Int 수강 신청한 연도를 저장하
는 정보
학기 (e_semester) Int 수강 신청 한 학기를 저장하
는 정보
목포해양대학교 해양컴퓨터공학과
10) 교과 과정(curriculum) 테이블속성 이름 타입 설명
과목코드 (cc_scode) Char(10) 교과 과정의 과목 코드 정보
학년 (cc_class) Int 교과 과정의 학년 정보
학기 (cc_cemester) Int 교과 과정의 학기 정보
학수 구분 (cc_division) Char(10) 교과 과정의 학수 구분 정보
과목명 (cc_name) Char(10) 교과 과정의 과목명
학점수 (cc_credit) Int 교과 과정의 학점수
시수 (cc_time) Int 교과 과정의 시수
11) 수동 시간표(m_timetable) 테이블
속성 이름 타입 설명
과목명 (mt_subname) Varchar(15) 수동 시간표의 과목명 정보
시간표 이름 (mt_name) Varchar(15) 수동 시간표의 이름 정보
담당 교수 (mt_pname) Char(20) 수동 시간표의 담당 교수정
보
요일 (mt_daty) Char(10) 수동 시간표의 요일 정보
시작 시간 (mt_stime) int 수동 시간표의 과목 시작 시
간 정보
끝 시간 (mt_etime) Int 수동 시간표의 과목 끝 시간
정보
목포해양대학교 해양컴퓨터공학과
12) 일정(schedule) 테이블속성 이름 타입 설명
일정 ID (sd_id) Varchar(15) 일정의 ID 정보
일정 명 (sd_name) Varchar(15) 일정의 이름 정보
일정 날짜 (sd_date) Char(20) 일정이 저장되는 날짜 정보
일정 내용 (sd_contents) Text 일정의 내용 정보
디데이 설정하기 (sd_dday) Boolean 디데이를 설정하는 논리 값
목포해양대학교 해양컴퓨터공학과
3.2. 프로세스 설계
목포해양대학교 해양컴퓨터공학과
목포해양대학교 해양컴퓨터공학과
목포해양대학교 해양컴퓨터공학과
목포해양대학교 해양컴퓨터공학과
3.3. 서버 설계
서버 : Apache Tomcat Version 9.0.17
DB : MySQL Version 5.1.41
< 안드로이드와 DB 연동 방법>
안드로이드에서 AsyncTask를 상속받은 클래스를 이용하여 JSP파일과 연결하고
HttpGet으로 id,pw 정보를 Get방식으로 보낸다.
JSP에서 getConnection()을 이용해 DB와 연결하고 query문을 통해 DB을 가져온다.
request.getParameter()를 이용해 안드로이드에서 입력한 id,pw를 가져와서
DB와 비교해 일치하는 것이 있으면 로그인성공 메시지를 out.print로 버퍼로 보내고
없으면 로그인실패 메시지를 보낸다
안드로이드에서 BufferedReader로 버퍼에 있는 내용을 읽고 Toast메시지를 출력하고
Intent를 이용해 메인화면으로 이동한다.
목포해양대학교 해양컴퓨터공학과
서버에 저장 되어있는 ID = asd, 비밀번호 = asd를 입력하면 ‘로그인이 되었습니다’ 메시지가 출 력 되고 서버와 연동된 것을 볼 수 있다.
목포해양대학교 해양컴퓨터공학과
3.4. UI 설계
1) 로그인 화면
설명
서버에 저장된 ID와 비밀번호를 입력하였을때 로그인 후 화면으로 이동한다.
서버와 일치되지 않은 정보는 틀렸다는 메세지를 출력한다.
목포해양대학교 해양컴퓨터공학과 2) 로그인 후 화면
설명
로그인 후 메인 화면이다.
상단에 메뉴와 학생의 시간표가 처음으로 보이게 된다.
일정 추가 버튼으로 수동 시간표를 만들 수 있다.
목포해양대학교 해양컴퓨터공학과 3) 졸업 요건 확인하기
설명
입학(복학)연도를 선택하면 졸업 요건을 확인 할 수 있는 기능이다.
목포해양대학교 해양컴퓨터공학과
4) 캘린더
설명
학교 학사일정을 캘린더 형식으로 보여준다.
개인 일정을 추가하면 SQLite에 저장이 된다.
목포해양대학교 해양컴퓨터공학과
5) 강의 후기 게시판
설명
빈 게시판에 글을 등록하면 데이터가 서버에 저장이 된다.
모든 사용자가 글을 확인할 수 있다.
게시글 등록, 수정, 삭제 기능이 있고, 삭제할 시에는 작성자의 비밀번호를 입력한다.
목포해양대학교 해양컴퓨터공학과
6) 타이머 사용하기
목포해양대학교 해양컴퓨터공학과
설명
타이머 초기 화면이다. 시간을 설정하고, 타이머가 시작되면 시작버튼과 다시시작 버튼이 비활성화 된다.
일시 정지를 할 시 다시시작 버튼이 활성화 된다.
목포해양대학교 해양컴퓨터공학과
4. 요구사항별 개발 진도표
순번 요구사항 ID 요구사항 명칭 개발진도(O, ∆, X) 개발가능여부(O, X)
1 UC1-REQ-1 ID 입력 O O
2 UC1-REQ-2 비밀번호 입력 O O
3 UC2-REQ-1 시간표 만들기 X O
4 UC2-REQ-2 시간표 수정하기 X O
5 UC2-REQ-3 시간표 삭제하기 X O
6 UC3-REQ-1 입학(복학)연도
선택 하기 O O
7 UC4-REQ-1 학년, 학과,
반 선택하기 X O
8 UC4-REQ-2 과목 신청하기 X O
9 UC4-REQ-3 과목 취소하기 X O
10 UC4-REQ-4 개설과목 조회하
기 X O
11 UC4-REQ-5 신청과목 조회하
기 X O
12 UC5-REQ-1 학사 일정보기 O O
13 UC5-REQ-2 일정 추가하기 ∆ O
14 UC5-REQ-3 일정 삭제하기 ∆ O
15 UC6-REQ-1 후기 게시글
등록하기 ∆ O
16 UC6-REQ-2 후기 게시글
삭제하기 ∆ O
17 UC6-REQ-3 후기 게시글
검색하기 ∆ O
18 UC6-REQ-4 후기 게시글
수정하기 ∆ O
19 UC7-REQ-1 타이머 설정/시작
하기 O O
20 UC7-REQ-2 타이머 일시정지/
O O
목포해양대학교 해양컴퓨터공학과
21 UC7-REQ-3 타이머 리셋하기 O O
22 UC8-REQ-1 비밀번호 변경하
기 X O
23 UC8-REQ-2 주소 변경하기 X O
24 UC9-REQ-1 로그아웃 버튼
누르기 ∆ O
25 UC10-REQ-1 관리자 ID 입력하
기 X X
26 UC10-REQ-2 관리자 비밀번호
입력하기 X X
27 UC11-REQ-1 게시판 생성하기 X X
28 UC11-REQ-2 게시판 삭제하기 X X
29 UC11-REQ-3 게시글 삭제하기 X X
30 UC13-REQ-1 비밀번호 재설정
하기 X X
5. 진행 경과(2차 발표 이후) : ( 3/28 ~ 4/28 )
업무 이름 일정 설명 담당자
DB
서버 03.28 ~ 03.30 DB 정규화, 스키마를 정의
서버 구현 방법을 논의 박민정
DB
서버 03.31 ~ 04.04 DB 테이블에 튜플 값 만들기
서버 연동 Test 마침 박민정
DB 04.05 ~ 04.10 Test DB 완성 최상연
DB 04.11 ~ 04.15
여러가지 케이스 40~50명 분량 DB 저장
데이터 사전 만들기 최상연
업무 분장 04.15 ~ 04.18 업무를 분장하면서 UI 통합 박민정
목포해양대학교 해양컴퓨터공학과
타이머 사용하기 기능 구현6. 향후 일정
6.1. 업무 분장
수행업무 일정 설명 담당자
개인 정보 변경 05.03 ~ 05.07 로그인 한 학생이 개인정보
(주소)를 수정할 수 있다.. 박준영
캘린더
(학사일정, 개인일정)
05.03 ~ 05. 07
학사일정은 서버를 연동해 데 이터를 받아 일정을 보여주고,
개인 일정은 안드로이드 내부 DB에 저장하여 등록, 수정, 삭
제가 가능하도록 한다.
김세진
강의 후기 게시판 05.07 ~ 05.09
DB를 연동해 사용자가 게시한 글을 저장한 후 다른 사용자
에게도 보여준다.
박민정
목포해양대학교 해양컴퓨터공학과
수동 시간표
(생성, 수정, 삭제)
05.08~ 05.14
수동 시간표는 안드로이드 내부 DB에 저장하여 등록, 수 정, 삭제가 가능하도록 한다.
김세진, 모준우, 최상연
자동 시간표 생성 05.15~ 05.27
앱을 통해 수강신청을 하면 메인 화면에 자동으로 시간표
가 생성 되도록 한다.
박민정, 박준영
수강신청 05.15 ~ 05.27 학년 학기에 맞는 개설과목을
수강신청 할 수 있도록 한다.
김세진, 모준우, 박민정, 박준영,
최상연
최종 구현 및 테스트 05.03 ~ 05.31 마지막 구현 및 테스트
김세진, 모준우, 박민정, 박준영,
최상연