1. 개발환경 및 시스템구성도
* 개발환경
개발언어 : Java, JSP, Javascript, HTML5
Ø Web 기반 하이브리드 웹앱
웹 프레임 워크 : Spring MVC 3.0
Ø 최신 Restful, Json, Web 기술 사용
데이터베이스 : Oracle XE 10G
Ø Sql Developer 사용
자바스크립트 Lib : Sencha Touch 2.0, jquery 등
Ø 앱 스타일의 UI구현 및 단말기능 지원
ORM : I-batis
Ø 동적 쿼리, 트랜잭션 관리, 효율적인 쿼리 관리
* 시스템구성도
2. 기능 설계
3. 기능 상세 명세
번호 |
이름 |
설명 |
1 |
SNS 리스트 뷰 |
게시글 리스트를 그룹별로 표시 |
1-1. |
열람범위 선택 |
열람범위별(전체, 동아리, 개인)로 게시글 표시 |
1-2. |
글쓰기(버튼) |
SNS 글쓰기 폼으로 이동 |
1-3 |
인기 게시글 표시 |
최근 추천을 많이 받은 게시글을 리스트의 최상단에 표시 |
2 |
SNS 글쓰기 폼 뷰 |
SNS 글 등록을 위한 폼 뷰 |
2-1 |
공개범위 선택 |
게시될 공개범위 선택(전체, 동아리, 개인) |
2-2 |
설문(공감) 선택기능 |
설문이 필요한 게시글에 경우 체크하면 동적으로 설문지 추가(의견 중복 체크 허용 여부 선택가능) |
2-3 |
글쓰기(버튼) |
공개범위(그룹) 및 포스팅 타입 정의 후 포스팅 |
3 |
게시글 세부조회 뷰 |
게시글과 댓글리스트 조회 |
3-1 |
댓글 입력 칸& 버튼 |
해당 게시글에 댓글을 입력하는 폼 |
3-2 |
SNS 게시글 추천 버튼
|
작성자 프로필 조회 게시글 추천 – 작성자에게 알림 이벤트 발생 설문이 포함된 게시글일 경우 설문리스트가 보임 |
3-3 |
댓글리스트 조회 |
댓글리스트 표시 - 최상단에 최다추천댓글 표시 |
4 |
SNS 알림기능 |
메인의 알림 표시 버튼(뷰) |
4-1 |
게시글 추천시 알람 |
게시글이 추천되면 게시자에게 알람 |
4-2 |
댓글 작성시 알람 |
게시글에 댓글이 달리면 게시글 작성자에게 알람 |
4-3 |
댓글 추천시 알람 |
댓글이 추천되면 댓글 작성자에게 알람 |
5 |
프로필 기능 |
프로필 조회/수정/설정/로그아웃 등 |
6 |
동아리 기능 |
동아리 생성/가입/탈퇴/조회 등 |
4. 데이터베이스 명세(ER 다이어그램)
데이터 베이스 (테이블, 뷰, 트리거, 시퀀스) 스키마
* 테이블
- GROUP_INFO // 그룹 정보 테이블
- GROUP_MEMBER // 그룹에 소속된 회원정보테이블
- MEMBER // 회원 정보 테이블
- MEMBER_AUTH // 회원 권한 테이블
- MEMBER_DEPT // 회원 소속정보 테이블
- MEMBER_DUTY // 회원 소속 권한 테이블
- MEMBER_REVEAL // 회원 정보 공개여부 테이블
- SNS_ARTICLE // 게시글 테이블
- SNS_REPLY // 게시글에 대한 댓글 테이블
- SNS_ARTICLE_OPINION // 게시글에 대한 설문 테이블
- SNS_MEMBER_OPINION // 설문에 대한 회원 테이블(설문에 참여한 회원정보)
- SNS_REACTION // 게시글에 대한 회원의 반응(게시글을 추천한 회원정보)
- EVENT_LOG // 알람 로그 테이블
* 뷰
- V_SNS // 게시글에 대한 조인 뷰(글쓴이, 그룹정보 포함)
- V_REPLY // 게시글 댓글에 대한 조인 뷰
- V_GROUP // 그룹에 대한 조인 뷰
- V_MEMBER // 회원에 대한 조인 뷰
- V_PROFILE // 회원 정보에 대한 조인뷰(공개여부관련)
- V_SYSTIME_MILI // ..분/시간/일 전 등 시간표시를 위한 SYSTIMEMILI 테이블
- V_EVENT // 알람에 대한 조인 뷰
* 시퀀스(대표 3개 시퀀스: 테이블 PK별로 생성)
- 시퀀스 : SNS_ARTICLE_SEQ // 게시글에 대한 시퀀스
- 시퀀스 : SNS_REPLY_SEQ // 댓글에 대한 시퀀스
- 시퀀스 : EVENT_LOG_SEQ // 알람에 대한 시퀀스
* 트리거
- 트리거 : EVENT_SNS_ARTICLE_TGR // 게시글에 추천될경우 EVENT_LOG, SNS_REACTION에insert
- 트리거 : EVENT_SNS_REPLY_TGR // 댓글에 추천될경우 EVENT_LOG, SNS_REACTION에insert
- 트리거 : EVENT_SNS_TGR // 게시글에 댓글이 달릴경우 EVENT_LOG에 insert
5. 코드 명세
Client(Javascript - Sencha .js파일)
* SNS part
- /noah/WebContent/resources/sky/app/controller/SnsController.js // SNS 이벤트 컨트롤러
- /noah/WebContent/resources/sky/app/controller/SnsInterestController.js // SNS 관심메뉴 컨트롤러
- /noah/WebContent/resources/sky/app/model/SnsListModel.js // 게시글 리스트 모델
- /noah/WebContent/resources/sky/app/model/SnsOpinionModel.js // 설문 모델
- /noah/WebContent/resources/sky/app/model/SnsReplyModel.js // 답글 모델
- /noah/WebContent/resources/sky/app/store/SnsListStore.js // 게시글리스트 스토어
- /noah/WebContent/resources/sky/app/store/SnsMyListStore.js // 내글보기 스토어
- /noah/WebContent/resources/sky/app/store/SnsOpinionStore.js // 설문 스토어
- /noah/WebContent/resources/sky/app/store/SnsReplyStore.js // 답글 스토어
* EVENT part
- /noah/WebContent/resources/sky/app/store/SnsReplyStore.js // 알람 컨트롤러
- /noah/WebContent/resources/sky/app/store/EventModel.js // 알람 모델
- /noah/WebContent/resources/sky/app/store/EventStore.js // 알람 스토어
Server(java, xml) > 서버단은 알람 파트도 같은 소스에서 구현됨.
- /noah/src/seine/db/vo/SnsVO.java // SNS뷰 오브젝트
- /noah/src/seine/noah/controller/AbstractSnsController.java // SNS컨트롤러 추상클래스
- /noah/src/seine/noah/service/ImplementSnsActions.java // SNS컨트롤러 구현클래스
- /noah/src/seine/db/dao/SnsDAO.java // SNS DB접근 모델
- /noah/src/seine/db/sqlmaps/sns.xml // SNS DB 쿼리 파일들
6. 스크린샷
'포트폴리오 > 프로젝트' 카테고리의 다른 글
[WEB] 교육용 과학언어 분석 프로그램 (0) | 2018.05.22 |
---|---|
[Web] 데이터베이스 학회 논문 투고 시스템 개발 (0) | 2012.12.16 |
[application] Linkube 멀티뷰어 (0) | 2012.11.26 |
[web] 천안함 자료실 (0) | 2012.11.26 |
[application] 장비 지속 판단 시스템 (0) | 2012.11.26 |