반응형

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_REACTIONinsert

- 트리거  :             EVENT_SNS_REPLY_TGR      // 댓글에 추천될경우 EVENT_LOG, SNS_REACTIONinsert

- 트리거  :             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. 스크린샷




반응형
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형

추가할 라이브러리
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js'></script>
<link rel='stylesheet' type='text/css' href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css'/>
<link rel='stylesheet' type='text/css' href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css'/>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushAS3.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDiff.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js'></script>
<script type='text/javascript' src='http://alexgorbatchev.com/pub/sh/current/scripts/shLegacy.js'></script>
<script type='text/javascript'>
SyntaxHighlighter.all();
SyntaxHighlighter.config.stripBrs = true;
SyntaxHighlighter.config.bloggerMode = true;
</script>

코드 적용

<pre class="brush: js; smart-tabs: true">
</pre>
blush종류
applescript @shBrushAppleScript.js actionscript3 as3 @shBrushAS3.js bash shell @shBrushBash.js coldfusion cf @shBrushColdFusion.js cpp c @shBrushCpp.js c# c-sharp csharp @shBrushCSharp.js css @shBrushCss.js delphi pascal @shBrushDelphi.js diff patch pas @shBrushDiff.js erl erlang @shBrushErlang.js groovy @shBrushGroovy.js java @shBrushJava.js jfx javafx @shBrushJavaFX.js js jscript javascript @shBrushJScript.js perl pl @shBrushPerl.js php @shBrushPhp.js text plain @shBrushPlain.js py python @shBrushPython.js ruby rails ror rb @shBrushRuby.js sass scss @shBrushSass.js scala @shBrushScala.js sql @shBrushSql.js vb vbnet @shBrushVb.js xml xhtml xslt html @shBrushXml.js

반응형

'코드자료실 > html' 카테고리의 다른 글

[meta 태그] meta태그 종류와 사용  (0) 2013.03.14
[html] 특수문자 코드표  (0) 2013.01.21
[링크] 홈페이지 템플릿  (0) 2012.12.14
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,