Skip to content
 
 

Repository files navigation

To_DO List 개인 및 팀 버전

초기 공동 작업 git 바로가기




전승민(팀장), 박대호, 김민성, 심규혁



Google Sheet(4팀 프로젝트 문서)

프로젝트 목표 :

개인이 사용할 수 있는 To-Do List 및 구성원과 팀원이 서로 공유하고 볼 수 있는 To-Do list를 만들어보자.

사용 기술 스택: spring boot, rest api, maven, mariadb

역할 분담

전승민
1. 프로젝트 설계​

2. 개인/ 팀간 데이터 연결 ​

3. 발표 자료 작성 및 발표 ​

4. 세션 로그인


심규혁
1. 개인 ToDo List (rest/ html)​

2. DB 설계​

3. 다이어 그램 작성


박대호
1. 팀별 할일 작성/ 삭제/ 수정/ 완료 기능 구현(Rest / html) ​

2. Spring Session - 메인 클래스 간   관계 기술


김민성
1. 세션 로그아웃​

2. 마이페이지​

3. html, css 디자인 

# 요구 사항 및 기능

1. 회원가입 ( + 로그인 기능) (세션 사용)

2. 개인 To-Do List                                            ​

3. 날짜, 내용 입력하여 할 일 추가                                            ​

4. 날짜,  할 일, 수행 여부 확인 가능 ​

5. 날짜,  할 일, 수행 여부 변경 가능  + 삭제 기능                                             ​

7. 팀 To-Do List​

8. 팀별 To-Do만 따로 확인 및 기능 구현 + 전체 팀(default)​

9. 팀별 날짜, 내용 입력하여 할 일 추가 + 팀 id 기입 ​

10. 팀원 날짜, 할 일, 수행 여부  확인 가능                                        ​

11. 팀원 날짜, 할 일, 수행 여부 변경 가능 + 삭제 기능​

12. 팀 To-Do <-> 개인 To-Do  버튼을 이용한 자유로운 이동​

13. 팀 및 개인 To-Do에서 로그아웃 기능 및 개인  마이 페이지(계정 정보)​


# 초기 구성

image

  • 기본적인 데이터 입력 및 수정, 제거 기능 구현. todo의 기능 구현

초기 구성 flow

ToDo_flow

  • todo 사용자 -> 회원가입 유무를 본인이 확인 -> 아이디가 있다면 로그인 -> 개인 Todo List 사용 -> 팀 Todo List 사용 -> 개인 Todo List 사용(자유롭게 이동 가능)

아이디가 없다면 회원가입

팀용 todolist에서의 팀원들 마다 구별법 추후 구상.

캡처

  • 사용하게 될 기본적인 table 구상.

# 구현완료된 동작에 대한 캡쳐 및 설명

개인 할일 페이지지 Rest로 구현

// 개인 페이지에서의 todo 작성 insert

// 개인 페이지에서의 todo 작성 결과

insert2

// 개인 페이지에서의 todo 열람 get

// 개인 페이지에서의 todo 수정 ![update](https://github.com/CoffeerLatte/git-4team/assets/76561901/b인 할일 페이지 구현


팀 할일 페이지 Rest로 구현

// 팀 할일 페이지 팀별 todolist 확인

image

// 팀 할일 페이지 팀별 todolist 작성

insert

// 팀 할일 페이지 팀별 todolist 작성 결과

insert2

// 팀 할일 페이지 팀별 할일 수정 전

update1

// 팀 할일 페이지 팀별 할일 수정 화면

update2

// 팀 할일 페이지 팀별 할일 수정 후

update3

// 팀 할일 페이지 할일 완료 처리

completed

// 팀 할일 페이지 할일 완료 처리 결과

completed2

// 팀 할일 페이지 할일 삭제 처리

delete

// 팀 할일 페이지 할일 삭제 처리 결과

delete2


로그인 및 회원가입

// 로그인 로그인

// 회원가입 회원가입

//비밀번호가 틀렸을 경우 회원가입 비밀번호

// 다른 회원이 사용중인 닉네임의 경우 회원가입 중복

// 로그인 시 자신만의 개인 todo리스트로 이동 개인 todo


개인 할일 페이지

// 개인 페이지에서의 todo 작성 개인todo메인

// 버튼 정상 동작 개인todo완료

// 개인 페이지에서의 수정 정상 기능 개인todo수정

// 개인 페이지에서의 데이터 삭제 정상 개인todo삭제

// 개인 페이지에서의 수정, 삭제 이후 개인 수정 삭제 이후


팀 할일 버튼 및 로그아웃 버튼 상호 작용 가능.

// 팀 할일 페이지 팀 todo

// 팀 할일 페이지에서의 todo 삭제 메시지 띄우기 팀 삭제

// 팀 할일 페이지에서 수정 버튼을 눌러서 완수 날짜 및 할일을 수정하는 캡쳐 팀 수정

// 팀 할일 페이지에서 수정, 삭제 이후 팀 수정 삭제 이후

// 완료 버튼 정상 동작 팀 완료


// maria db 데이터 베이스에 쌓이는 todoentity 정보 (팀)

image

// maria db 데이터 베이스에 쌓이는 todoentity 정보 (개인)

image

// maria db 데이터베이스에 쌓이는 회원가입한 계정 정보

image


# 개선 및 추가 예정 사항
  1. jwt 토큰 방식으로의 로그인
  2. 관리자 권한 기능 추가
  3. 팀원 구별 추가(닉네임/id)

# 문제점 및 힘들었던 부분

로그인 시 세션과 ToDo List 연결 과정

원인 -> 서로다른 테이블을 join하는 방법으로 원하는 데이터를 가져오려고 함.

-> join 과정에서 데이터 타입이 달라서 타입 변환하는데 어려움 발생.

해결 -> joincolumn을 사용하지 않고, 로그인을 하자마자, 로그인하는 파트에서 바로 데이터를 넘겨주는 방식으로 해결. tempsnip [해결 캡처]


session login + TodoList + team_todolist 연동과정

안되었던 부분 image

원인 -> team_todolist 수정 과정에서 코드에서 문제는 없었지만, html 에서 JSON 방식으로 넘겨 받는 과정에서 JSON 형식에 맞지 않아 에러 발생

해결 -> html 에서 입력받는 데이터를 JSON 형식에 맞게 전달하여 해결.


리다이렉션 문제

원인 -> 데이터를 update, insert, delete, complete 과정 후 나서 원하는 페이지로 redirection이 되지 않고, 메인 페이지로 이동.

해결 -> resource / template/ teamtodo.html 파일을 수정하여 update, delete, complete 과정에서 데이터 이동 동작 후 page를 reload하게 만듬.

-> 데이터를 입력 후 입력한 데이터가 현재 html 페이지에 정상 반영됨.


개인 To-Do List에서의 다른 사용자의 개인 할 일이 보이는 문제

원인 -> 로그인 시 로그인 정보를 get, set 하는 방식 사용.

-> 여러 사람이 로그인 시 가장 최근에 로그인한 사용자의 정보를 set함.

-> 다른 사람들도 가장 최근에 로그인한 사용자의 정보를 set하는 문제 발생.

해결 -> 로그인 시 사용자의 세션 정보를 가져오는 방식 사용.

-> 여러명이 로그인 해도 각 사용자들의 세션 정보에서 id를 가져올 수 있게 됨.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages