공모전 정보 공유 서비스 제작
공모전 관련 정보를 등록하고, 검색 확인할 수 있는 시스템을 개발하시오. 개발 시스템은 다음과 같은 기능을 제공
하여야 한다.
참고 사이트: 위비티 https://www.wevity.com/
- 회원가입, 로그인
- 사용자는 본인이 공모전 정보를 등록할 수 있다
- 관리자는 관리 페이지에서 사용자 목록을 관리(조회,삭제,수정)할 수 있다.
- 회원 탈퇴: 탈퇴 시 회원의 개인 정보는 삭제하고 로그인 할 수 없도록 처리함.
- 비밀번호 암호화
- (option) Facebook/Google/카카오톡 로그인
- (option) 비밀번호 수정, 회원 정보 수정
- (option) 여러 명의 관리자 계정을 만들 수 있다.
- 기본정보: 이름, 주최사, 분야, 응시대상, 접수기간, 공모요강, 담당자, 연락처
- 기타정보: 참고 사이트를 참조하여 다양한 추가 정보를 적절한 UI를 통해 입력받는다.
- 등록자는 공모전 정보를 수정/삭제할 수 있다.
- (option) 신고기능: 적절하지 못한 공모전 정보/공모전 댓글에 대한 신고를 할 수 있고, 관리자는 신고 내역을 확인/관리할 수 있다.
- (option) reCAPTCHA를 사용하여 스팸을 막는다. (https://www.google.com/recaptcha/intro/v3beta.html)
- (option) 공모전 포스터를 이미지, pdf 등을 등록할 수 있다.
- (option) 상세 설명을 WYSIWYG에디터를 이용하여 입력받는다. (TinyMCE, summernote 등 활용 가능 https://github.com/cheeaun/mooeditable/wiki/Javascript-WYSIWYG-editors)
- (option) 공모전/이벤트 장소를 맵을 이용하여 입력받을 수 있다.
- (option) 공모전의 분야, 응시대상 등의 옵션을 관리자가 설정할 수 있다.
- (option) 공모전 정보 승인 프로세스 추가: 등록된 정보는 관리자의 승인 이후에 공개된다.
- 공모전의 목록을 조회할 수 있다.
- 공모전의 상세 정보를 조회할 수 있다.
- (option) 댓글 기능: 사용자는 공모전에 대한 댓글을 남길 수 있다.
- (option) 추천배너: 추천 공모전 정보를 사용자에게 보여준다.
- (option) 분야별/상태(접수중/마감임박/마감 등)별 공모전 목록을 조회할 수 있다.
- (option) 검색: 키워드를 통해 공모전을 검색할 수 있다.
- (option) 추천 기능: 공모전 정보, 댓글 등에 추천(좋아요/싫어요)을 할 수 있다.
- (option) Favorite 기능: 공모전 정보를 Favorite에 추가. 자신의 Favorite 목록 확인 가능
- (option) 공유기능: 공모전 정보를 페이스북, 트위터 등으로 공유할 수 있다.
- 반드시 nodejs, expressjs, mongodb를 사용해야 한다.
- 모든 최신 브라우져(Safari, Chrome, Firefox 등)에서 무리 없이 사용할 수 있어야 한다.
- 과제의 결과물을 웹에서 확인 가능해야 한다. (AWS, Heroku 등을 통해 deploy해야 함)
- (option) Responsive Design: 모바일 환경에서도 서비스를 확인가능하도록 만든다.
- (option) Ajax 기술, 혹은 WebSocket 기술을 활용
최종보고서는 공학인증 보고서 표지를 사용하고, 왜, 어떻게 이 프로그램을 제작하였는지 내용을 상세히 기술한다. 소스 코드는 출력하지 않는다.
최종보고서에는 관련 유사 서비스에 대한 조사 및 사이트 분석 (기능 및 UI) 내용이 포함되어야 한다.
본인의 프로그램이 위의 기능 목록을 만족하는지 여부를 스스로 분석하여 제시하여야 하며, 만족하는 경우 왜 만족한다고 할 수 있는지 명확한 이유를 제시해야 한다.
최종 보고서 내 첫 페이지에 확인 가능하도록 (1) 웹 사이트 접속 URL, (2) 긴급연락처 를 제시하여야 한다.
웹사이트 URL은 채점기간 내에 항상 확인 가능해야 하며 채점 중 확인이 안되는 경우 긴급 연락처로 연락함. 연락이 안되면 점수 없음.
소스코드는 조교에게 이메일로 별도로 제출하며, 이메일 제출 대신 Github이나 Bitbucket을 이용하는 경우 가산점을 부여함.
(마지막 한두번의 commit만으로 과제를 upload한 경우에는 최소 가산점을 부여하며 프로젝트 전체 수행 기간에 걸쳐 꾸준히 지속적으로 commit을 한 경우 추가 가산점 부여)
채점방법: 기본 기능 70점 + 추가 기능 30점 제출방법: 최종보고서 - 업로드 / 웹사이트 - URL 공개 / 소스코드 - Github, Bitbucket, Email