Skip to content

풀 캘린더 api를 활용한 통증일기 게시판 입니다.

Notifications You must be signed in to change notification settings

park-yina/Jungle13_painDiary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FullCalendar활용 두통일기 게시판

풀 캘린더 api을 활용하여 만든 두통일기 웹 사이트 입니다.

요구되는 구현 사항

  • 로그인 및 회원가입 관련(JWT아니어도 무관. OAUTH2.0혹은 자체 로그인 개발도 가능)
  • 게시물 작성 및 목록/읽기
  • 댓글 작성

db diagram

image

유저는 소셜로그인 구현 가능성에 따라 boolean필드를 추가해두었습니다.
또한 일반 일정 게시판에는 일반 일정만 보이고, 두통일기 게시판은 두통일기만 보이게 해두었습니다.
유저가 원한다면 두통일기 게시판은 로그인한 모두에게 공개 그렇지 않다면 본인만 볼 수 있도록 할 계획입니다.

추가 개인적인 구현 사항

  • 회원정보 수정이나 가입시 캡챠 추가
  • 게시물의 수정 및 삭제는 글 작성자나 관리자만 가능하도록
  • 게시물 조회의 경우 가입한 회원은 모두 가능하도록 짭니다.

발생 가능한 예외사항

  • 로그인하지 않은 유저가 도메인을 통해 직접 게시판이나 게시물에 접근할 수도 있습니다.
  • 사진첨부가 가능한 게시판의 경우 다중 첨부가 가능하도록 할 것이냐 하나의 파일만 가능하도록 할 것이냐에 따라 달라질 수 있습니다.
  • 게시물의 경우 일부로 이상한 실험을 하는 사람들을 방지하기 위하여 10만자 정도 까지만 작성 가능하도록 합니다.
  • 비밀 캘린더의 경우 유저가 늘어났을 때에 도메인이 겹치는 것을 방지하기 위해 ReqeustParam으로 자신의 닉네임도 함께 넘겨줍니다.

기존 두통일기 어플을 통해 본 개선사항

  • 전날의 통증과 다음날의 통증 강도 및 기록사항은 다를 수 있습니다.따라서 무조건적으로 이어지는 일정 등록은 위험합니다.
  • 주기가 중요한 두통의 경우도 있습니다. 따라서 지난 기록을 모아볼 수 있는 기능이 있따면 좋을 것 같습니다.

발생 가능한 예외사항 처리 방식

  • 동시에 게시물을 작성시 requestParam의 값으로 사용자 식별값을 넣어 구분된 테이블에 잘 요소가 저장되도록 하였습니다.
  • requestParam에 한글이 들어있는 닉네임을 넘길경우 예외가 발생하므로, Long타입의 uuid값을 추가하였습니다.
  • 끝나는 시간이 없는 경우 null이 아닌 종일로 표기하여 혹시나 모르는 에러 수정완료
  • 끝나는 시간이 시작시간보다 이른 시간으로 작성된 경우 db에 잘못된 시간입력임을 명시합니다.
  • 닉네임을 한글이기 때문에 한번 이상의 인코딩을 거치지 않게 하기위하여, jpa의 테이블 id를 사용하였습니다.
  • 이미지가 아닌 확장자의 입력을 시도한 경우-> Util클래스를 통해 이미지만 거르도록 코드 작성

현재까지 완료된 기능 요구 사항

  • 로그인 및 회원가입(HttpSession및 스프링시큐리티 사용 자체 로그인 구현)
  • 비밀 캘린더 기능 구현 완료
  • 나의 지난 캘린더 일정 모두 모아보기 구현 완료
  • 공지 게시판 기능 구현 완료(삭제/수정/이 기능들은 관리자만 가능하도록)
  • 이미지가 없는 공지의 경우에도 잘 등록. 이때엔 게시물 클릭시 이미지 안보여야
  • 게시물의 기본 정렬은 날짜순으로 정렬
  • 비공개 게시물은 자신의 계정이나 관리자 계정으로 로그인 했을 때만 보이는지 확인 완료
  • 자신이 쓴 댓글에는 좋아요 불가 및 댓글 작성 수정 구현 완료

About

풀 캘린더 api를 활용한 통증일기 게시판 입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published