-
Notifications
You must be signed in to change notification settings - Fork 5
I‐CURRICULUM ADMIN Wiki
Yeongggg edited this page Oct 10, 2024
·
6 revisions
초기에는 데이터 “curriculum” 등을 DataBase에 집어넣을 필요가 있습니다.
학과별 교과 과정이 변경됨에 따라 수정할 필요가 있습니다.
따라서 "관리자 페이지"를 통해 curriculum 데이터를 효율적으로 관리하고자 합니다.
기능 소개에 앞서, 관리자 페이지의 흐름에 대해 설명드리겠습니다.
- 저장하기: 작업하고 싶은 curriculum 데이터가 DB에 존재하지 않을 경우, "저장하기" 버튼을 통해 데이터를 저장합니다.
- 조회하기: 데이터가 이미 존재하거나 저장한 경우, "조회하기" 버튼을 통해 데이터를 불러옵니다.
- 수정하기: 불러온 데이터에 대해 자신이 조사한 과 curriculum에 맞게 수정 후 "수정하기" 버튼을 통해 데이터를 업데이트합니다.
- 삭제하기: 데이터 삭제가 필요할 경우, "삭제하기" 버튼을 통해 삭제합니다.
자신이 저장하고자 커리큘럼데이터를 전공, 학과, 년도를 선택한 후 JSON 형태의 커리큘럼 데이터를 다음과 같이 필드에 입력합니다.
- 복사 붙여넣기: 입련란에 JSON을 복사하여 붙여넣기 하면 됩니다.
- 파일 업로드하기: 로컬 환경에 해당 전공, 학과, 년도에 대한 JSON 파일이 존재한다면, 파일 업로드를 통해 자동으로 필드를 채울 수 있습니다.
- 크롤링 API 호출: 크롤링 버튼을 누르면, 3~5초 후 자동으로 필드가 채워집니다. 이때 주의사항: 불러온 데이터의 맨 위와 아래의 '['와 ']'를 제거해야 합니다.
위와 같이 정상적으로 JSON 파일을 필드에 입력하셨다면, "커리큘럼 등록하기" 버튼을 통해 새로운 데이터를 저장할 수 있습니다.
-
Case 1: 기존 데이터가 존재하지 않는 경우
-
Case 2: 해당 전공, 학과, 년도에 대한 데이터가 존재하는 경우
이 경우에는 "조회하기" 버튼을 통해 데이터를 조회한 후 수정하시길 바랍니다.
자신이 조회하고자 하는 커리큘럼 데이터를 전공, 학과, 년도를 선택한 후 조회합니다.
불러온 데이터에 대해 해당 학과 커리큘럼에 맞는 데이터를 필드값에 채워넣습니다.
주의: 필드에 넣는 값은
,
를 구분자로 인식합니다. 오탈자 여부만 신경 써주시면 감사하겠습니다.
예시)
- 핵심교양1, 핵심교양2 (O)
- 핵심교양1,핵심교양2 (O)
- 핵심고향1, 핵심교양2 (X)
@Getter
@JsonProperty("영역_지정여부")
private Boolean isAreaFixed;
@Getter
@JsonProperty("요구학점")
private Integer requiredCredit;
@Getter
@JsonProperty("필수영역")
private Set<Category> requiredAreaSet = new HashSet<>();
@JsonProperty("영역별_지정과목")
private Map<Category, Set<String>> areaDeterminedCodeMap = new HashMap<>();
@JsonProperty("영역별_대체과목")
private Map<Category, Set<String>> areaAlternativeCodeMap = new HashMap<>();
@JsonProperty("추가정보")
private Map<String, Object> additionalInfoMap = new HashMap<>();
-
영역 지정 여부:
-
true
/false
(예: 버튼 클릭)
-
-
요구 학점:
- 0 ~ 12 사이의 정수 (예: 12)
-
필수 영역:
- 해당 학과의 핵심교양 필수 영역
- 예: 핵심교양1, 핵심교양2, 핵심교양3 ...
-
영역별 대체 과목:
- 해당 학과 커리큘럼에 핵심교양에 대한 영역별 대체 과목 데이터를 입력합니다.
- 만일 존재하지 않으면 해당 필드는 공란으로 남겨두세요.
- 예: CSE1234 (여러 개인 경우: CSE1234, CSE1235)
-
영역별 지정 과목:
- 해당 학과 커리큘럼에 핵심교양에 대한 영역별 지정 과목 데이터를 입력합니다.
- 만일 존재하지 않으면 해당 필드는 공란으로 남겨두세요.
- 예: CSE1234 (여러 개인 경우: CSE1234, CSE1235)
@Getter
@JsonProperty("인정과목")
private Set<String> approvedCodeSet = new HashSet<>();
@Getter
@JsonProperty("영역대체과목")
private Set<String> areaAlternativeCodeSet = new HashSet<>();
@Getter
@JsonProperty("필요학점")
private Integer requiredCredit;
@JsonProperty("추가정보")
private Map<String, Object> additionalInfoMap = new HashMap<>();
-
인정과목:
- 해당 학과의 swAi 인정과목
- 예: CSE1234 (여러 개인 경우: CSE1234, CSE1235)
-
영역대체과목:
- 해당 학과의 swAi 대체과목
- 예: CSE1234 (여러 개인 경우: CSE1234, CSE1235)
-
필수학점:
- 해당 학과의 swAi 필수 학점
- 예: '0' / 필수학점 (int)
@Getter
@JsonProperty("인정과목")
private Set<String> approvedCodeSet = new HashSet<>();
@Getter
@JsonProperty("요구학점")
private Integer requiredCredit;
@JsonProperty("추가정보")
private Map<String, Object> additionalInfoMap = new HashMap<>();
-
인정과목:
- 해당 학과의 Creativity 인정과목
- 만일 존재하지 않으면 해당 필드는 공란으로 남겨두세요.
- 예: CSE1234 (여러 개인 경우: CSE1234, CSE1235)
-
요구학점:
- 해당 학과의 Creativity 요구학점
- 만일 존재하지 않으면 0 으로 해주세요.
- 예: 요구학점 (int)
@JsonProperty("총필요학점")
private Integer totalNeedCredit;
@JsonProperty("단일전공_필요학점")
private Integer singleNeedCredit;
@JsonProperty("복수_연계_융합_전공_필요학점")
private Integer secondNeedCredit;
@JsonProperty("부전공_필요학점")
private Integer minorNeedCredit;
-
총 이수 학점:
- 해당 학과의 총 이수 학점
- 공란으로 남겨두면 안됩니다.
- 예: 총 이수 학점 (int)
-
단일 전공:
- 해당 학과의 총 단일 전공
- 공란으로 남겨두면 안됩니다.
- 예: 단일 전공 (int)
-
복수 연계 융합 전공:
- 해당 학과의 복수 연계 융합 전공
- 공란으로 남겨두면 안됩니다.
- 예: 복수 연계 융합 전공 (int)
-
부전공:
- 해당 학괌의 부전공
- 공란으로 남겨두면 안됩니다.
- 예: 부전공 (int)
@Getter
@JsonProperty("과목코드")
private Set<String> codeSet = new HashSet<>();
@JsonProperty("추가정보")
private Map<String, Object> additionalInfoMap = new HashMap<>();
-
전공필수과목:
- 해당 학과의 전공필수과목
- 공란으로 남겨두면 안됩니다.
- 예: CSE1234, CSE1235, ...
-
전공선택과목:
- 해당 학과의 전공선택과목
- 공란으로 남겨두면 안됩니다.
- 예: CSE1234, CSE1235, ...
-
교양필수과목:
- 해당 학과의 교양필수과목
- 공란으로 남겨두면 안됩니다.
- 예: PYH1004, MTH1123, ...
@JsonProperty("대체과목코드")
private Map<String, Set<String>> alternativeCourseCodeMap = new HashMap<>();
-
alternative:
- 해당 학과의 특정 과목에 대한 대체과목 코드
- 공란으로 남겨두면 안됩니다.
-
- (추가) 버튼을 통해 새로운 과목코드에 대한 대체과목 코드를 저장할 수 있습니다.
-
- (삭제) 버튼을 통해 기존의 과목코드에 대한 대체과목 코드를 삭제할 수 있습니다,
- 만일 새로운 기준 과목코드와 대체과목코드를 저장했다면, 대체 과목 코드는 수정이 되지만, '기준과목코드'는 수정하면 안됩니다. 과목코드를 수정하는 경우 삭제 후 새로 만들길 바랍니다.
- 예: 새로운 기준 과목코드 : CSE1234 (단일 값) , 대체 과목 코드 : CSE1111 (여러 개인 경우: CSE1111, CSE1235)
- Case 1: + 버튼을 누른 경우
- Case 2: - 버튼을 누른 경우
- 변경사항 저장하기
해당 커리큘럼 삭제하기 버튼을 누르면, 커리큘럼이 디비에서 삭제됩니다. 신중히 삭제하기 버튼을 누르시길 바랍니다.