항해99 개발일지 - 미니 프로젝트(1)

jinseo's development note·2022년 2월 15일
0

항해99

목록 보기
1/2

기획 초안

1. 프로젝트 명

2. 프로젝트 주제

  • 한줄 요약 : 반려견 정보 제공 및 익명 커뮤니티
  • 상세 설명 :
    • "IntroDog" 은 애견인들의 의견을 교류할 수 있는 사이트입니다.
    • 반려견을 키우면서 생기는 질문, 일상 등 사소한 것까지 다른 이들과 함께 교류할 수 있습니다!

2. 페이지별 와이어프레임

  1. 메인 페이지

  2. 커뮤니티 페이지

  3. 로그인 / 회원가입 페이지

3. MONGO DB 설계

  • user

    • id(유저아이디) - PK
    • password(비밀번호)
    • nickname(닉네임)
    • email(이메일)
    • dogId(강아지코드)
    • profileImg(프로필사진)
  • dog

    • id(강아지코드) - PK
    • name(강아지명)
    • desc(강아지설명)
  • dogimg

    • dogId(강아지코드)
    • seqNo(일련번호)
    • imgUrl(이미지경로)
  • board

    • id(게시글의 아이디) - PK
    • userId(유저의 아이디)
    • title(게시글제목)
    • contents(게시글내용)
    • imgUrl(게시글이미지)
    • createTime(게시글작성시간)
    • updateTime(게시글수정시간)
  • reply

    • boardId(게시글의 아이디)
    • userId(유저의 아이디)
    • seqNo(일련번호)
    • contents(댓글내용)
    • createTime(댓글작성시간)

4. API 설계

기능MethodURLRequestResponse
메인화면 페이지 로드GET/render_template('index.html')
로그인 페이지 로드GET/loginmsgrender_template('login.html', msg=errorMsg)
회원가입 페이지 로드GET/joinrender_template('join.html')
글쓰기 페이지 로드GET/board/writeToken 인증시 - render_template('board_write.html'), Token 미인증시 - {msg="로그인 정보가 존재하지 않습니다."}
회원가입시 선택할 강아지 목록 조회GET/dog/listjsonify({'msg': dog})
ID 중복검사POST/api/check_dup{'id': id}중복 아닐시 - {'msg': "사용 가능한 ID 입니다"} 중복 시 - {'msg': "사용이 불가능한 ID 입니다."}
회원가입POST/api/join{'file': file, 'email': email, 'id' :id, 'nickname':nickname, 'pw':password, 'dogCode',dog_result}회원가입 성공시 - {'msg': '회원가입이 완료되었습니다.'} , 실패시 - 상황에 맞는 MSG 출력
로그인POST/api/login{'id': id_give, 'pw': pw_give}로그인 성공 - {'result': 'success', 'token': token, "nickname":nickname } 로그인 실패 - {'result': 'fail', 'msg': '아이디/비밀번호가 일치하지 않습니다.'}
메인화면 강아지 이미지, 목록 조회GET/getDogList조회 성공시 - {'dogList': dog_list, 'dogimgList': dogimg_list}
메인화면에서 강아지 검색어 조회POST/api/search{'give_keyword': keyword}조회 성공시 - {'search_dog': search_dog, 'dogimgList': dogimg_list, 'receive_keywords': receive_keywords}
게시글 작성GET/board/writeToken 인증시 - render_template('board_write.html', user_id = user_id, nickname = nickname, profileImg=user_info["profileImg"]), Token 인증 실패시 - make_response(redirect(url_for("login", errorCode=errorCode)))
게시글 조회GET/board/selectToken 인증시 - render_template('board_list.html',result=boardList, user_id = user_id, nickname = nickname, profileImg=user_info["profileImg"] ), Token 인증 실패시 - make_response(redirect(url_for("login", errorCode=errorCode)))
게시글 상세 조회GET/board/detail?id={id}{'id':board_id}Token 인증시 - render_template('board_detail.html', board=board, reply=reply_list, user_id=user_id, nickname = nickname, profileImg=user_info["profileImg"]), Token 인증 실패시 - make_response(redirect(url_for("login", errorCode=errorCode)))
게시글 수정 화면 렌더링GET/board/modify?id={id}{'id':board_id}render_template('board_update.html', board = board, user_id = user_id, nickname = nickname)
게시글 저장POST/board/create{'id':id, 'userId': user_id, 'contents': contents, 'title': title, 'imgUrl': imgUrl,'createTime': now.strftime("%Y-%m-%d %H:%M:%S"),'updateTime': now.strftime("%Y-%m-%d %H:%M:%S")}{msg="저장되었습니다."}
게시글 수정PUT/board/update{'id':boardId, 'contents': contents, 'title': title, 'imgUrl': imgUrl,'updateTime': now.strftime("%Y-%m-%d %H:%M:%S")}{msg="수정되었습니다."}
게시글 삭제DELETE/board/delete{'id':id}{msg="삭제되었습니다."}
댓글 저장POST/board/reply/create{'boardId':board_Id ,'userId': user_id, 'contents': contents}{msg="저장되었습니다."}
댓글 삭제DELETE/board/reply/delete{'boardId':board_id,'seqNo' : seqNo}{msg="삭제되었습니다."}

5. 후기

gitHub 레퍼지토리를 만들고, 백엔드 개발에 필요한 MongoDB설정과 연결, DB 설계 및 API 설계를 담당하여 백엔드의 전반적인 기획 구성을 하였다. 진행하면서 항해99 멘토링 매니저의 DB 설계 방식이나 API 네이밍 같은 지적을 받았고, 추후 수정하여 설계를 완성하였다. 4일이라는 짧은 기간 안에 만들어야 해서 프로젝트의 규모는 크지 않게 구성하였다. 3명의 팀원과 함께 의논하여 프로젝트를 시작해 봐야겠다.

profile
개발 노트입니다.

0개의 댓글

관련 채용 정보