Closed alwaysY0ung closed 3 months ago
수업 DB랑 과제 DB랑 공유하는 class가 많고,
과제 DB에서는 DB + 과제 완료율에 따라 성장하는 나무 + 팝업 3종류 (캘린더 포함)이고 주제발표 준비하면서 보니 캘린더에는 인원이 아무도 배정되지 않았던데
아예 과제DB의 Jtable 부분을 수업DB의 Jtable 팀에서 같이 개발하고 기존 과제DB팀은 나무랑 저 캘린더팝업/블럭형팝업/Jtable형팝업 구현하는 건 어떤가요?
이러면 Jtable 구현 소통도 원활하고 캘린더뷰/기타팝업 구현인원도 해결되고 업무량도 균등하게 나눠질 것 같습니다! 중간발표 이후에 같이 이야기해서 정해봐요
해야할일
1. '정보' 팝업에서 내용 변경하면 csv 파일에 반영되기 (자기 전에 제가 구현 완료했습니다)
과제db의 왼쪽 jtable은 제가 어제오늘 거의 다 해뒀는데 아직 못 한 기능이
~~1. + 버튼으로 탭에 과목 추가하는 기능(classDB와 연동되어야함. 즉, calssdb.csv에도 해당 과목이 1주차~15주차 생겨야함)
2. "마감일" 기준 오름차순으로 정렬하는 기능~~ (제가 구현했습니다)
3. 진행한 과제에 따른 나무**
4. 마무리. jframe to jpanel 작업 (제가 구현했습니다)
입니다.
~~5. classdb에 assignmentdb의 기능을 옮겨붙이고 추가 기능을 구현합니다. (1) "음성기록"을 "관련URL" 열처럼 하이퍼링크로 처리한다. (2) ClassDb 열의 "관련파일"을 assignmentdb의 "관련파일"과 완전히 동일하게 처리한다. 즉, 파일을 입력받고 그 파일을 실행할건지 안 할 건지 바꿀 건지 안 할 건지 물어본다. (3) "To-Do"의 경우 AssignmentDb의 "과제명"처럼, 클릭하여 팝업으로 전체 내용 볼 수 있고 수정할 수 있게 한다. 이때 csv에 수정사항을 반영(저장)하는 과정에서 오류가 없도록 한다. AssignmentDB에는 저장할 때 오류가 나지 않으니 이를 참고하면 된다. (4) "예고된 강의 내용"의 경우에도 AssignmentDb의 "과제명"처럼, 클릭하여 팝업으로 전체 내용 볼 수 있고 수정할 수 있게 한다. 이때 csv에 수정사항을 반영(저장)하는 과정에서 오류가 없도록 한다. AssignmentDB에는 저장할 때 오류가 나지 않으니 이를 참고하면 된다. (5) AssignmnetDb처럼, Jtable에서의 변경사항을 csv 파일에 반영(저장)한다. 이때 오류가 없도록 한다. AssignmentDb의 경우 오류 없이 잘 저장되므로 이를 참고하면 된다.~~ (여기까지 제가 구현 완료했습니다) (6) "관련과제"와 같이 과제와 관련된 열은 "Assignmentdb.csv와 연동되도록 처리해야한다. 1) assignment_db.csv의 "마감일"과 class_db.csv의 "수업일"을 보고, class_db의 "수업일" 중 "수업일"이 assignment_db의 "마감일"보다 미래이면서 동시에 가장 가까운 미래인 경우, 그 class_db의 "수업일"의 행에 해당하는 class_db의 "과제/시험" 칸에, 지금 비교한 assignment_db의 "마감일"의 행의 "과제명"을 기록(저장)한다. 2) 1번의 작업은 AssignmentDb.java 코드에서, "마감일" 열에 해당하는 칸이 수정될 때마다 업데이트 되어야한다. 3) 그리고 "과제/시험"의 칸을 클릭하면, 해당하는 과제의 "정보" 팝업이 떠야한다.
(7) + 버튼으로 탭에 과목 추가하는 기능(assignmentdb와 연동되어야함. 즉, assignmentdb.csv에도 해당 과목의 행이 생겨야함) (제가 구현 완료했습니다)
classdb와 assignmnetdb가 완성되면,
main에 합친 후
(1. 로그인 부분 코드 수정) 회원가입할 때 즉시, 아이디_1_1_AssignmentDB.csv 아이디_1_1_ClassDB.csv 아이디_1_2_AssignmentDB.csv 아이디_1_2_ClassDB.csv 아이디_2_1_AssignmentDB.csv 아이디_2_1_ClassDB.csv 아이디_2_2_AssignmentDB.csv 아이디_2_2_ClassDB.csv 아이디_3_1_AssignmentDB.csv 아이디_3_1_ClassDB.csv 아이디_3_2_AssignmentDB.csv 아이디_3_2_ClassDB.csv 아이디_4_1_AssignmentDB.csv 아이디_4_1_ClassDB.csv 아이디_4_2_AssignmentDB.csv 아이디_4_2_ClassDB.csv 파일을 생성한다. (상대경로 첫 단계에 바로 만들어도 된다)
AssignmentDB의 열은 완료 과제명 마감일 관련수업 과제종류 성적비율 환산점수 과제만점 내 점수 관련파일 관련URL 정보 이고 ClassDB의 열은 강의명 주차 예고된 강의 내용 복습 과제/시험 음성기록 관련파일 To-Do 완료여부 수업일 이다. 각 csv에는 생성됨과 동시에 자동으로 열이 지정되어야한다.
(2. 로그인 부분 코드 수정) 로그인할 때, 기존의 아이디 (빈칸) PW (빈칸) 입력칸 아래에 학기선택 (JComboBox)를 제공한다. 선택지는 다음 8개이다. 1-1학기 1-2학기 2-1학기 2-2학기 3-1학기 3-2학기 4-1학기 4-2학기
(3.) 선택된 결과에 따라, AssignmentDB와 ClassDB에서 불러오는 csv파일은 각각 String assignment_csvFile = "아이디_학년_학기_AssignmentDB.csv" String class_csvFile = "아이디_학년_학기_ClassDB.csv" 로 지정해 불러온다.
이 기능 구현합니다
이제(assignment). + 버튼으로 탭에 과목 추가하는 기능(classDB와 연동되어야함. 즉, calssdb.csv에도 해당 과목이 1주차~15주차 생겨야함)
이거랑
(class) + 버튼으로 탭에 과목 추가하는 기능(assignmentdb와 연동되어야함. 즉, assignmentdb.csv에도 해당 과목의 행이 생겨야함)
이거 구현 완료되면
바로 jframe to panel 한 다음에 (제가 구현 완료했습니다)
(assignment) 진행한 과제에 따른 나무 도 만들고
(class) "관련과제"와 같이 과제와 관련된 열은 "Assignmentdb.csv와 연동되도록 처리해야한다. 1) assignment_db.csv의 "마감일"과 class_db.csv의 "수업일"을 보고, class_db의 "수업일" 중 "수업일"이 assignment_db의 "마감일"보다 미래이면서 동시에 가장 가까운 미래인 경우, 그 class_db의 "수업일"의 행에 해당하는 class_db의 "과제/시험" 칸에, 지금 비교한 assignment_db의 "마감일"의 행의 "과제명"을 기록(저장)한다. 2) 1번의 작업은 AssignmentDb.java 코드에서, "마감일" 열에 해당하는 칸이 수정될 때마다 업데이트 되어야한다. 3) 그리고 "과제/시험"의 칸을 클릭하면, 해당하는 과제의 "정보" 팝업이 떠야한다.
마지막에 이거 구현할 수 있습니다 그리고 뒷부분 구현 가능
[중간발표 전 상황보고] (may 25, 2024)
@eun1337 @alwaysY0ung @SoyunJung @eunseo0422 @rosy-n
구현 완료된 기능
JTable의 셀을 클릭하면 해당 열에 따라 URL을 열거나 상세 정보를 팝업으로 표시
+'정보'의 긴 string 불러오는 관정에서 \n등의 공백과 쉼표로 발생하는 오류 해결됨
아직 구현 중인 기능