22-08-10 까지 된 것들.
- Database 를 만드는 것까지는 했음 (Dog)
- 그 외에.. http 해서 가져오는 것 됨.
- Provider에 들어가는 것 까지 확인 됨.
- FoundatationData class 만들다 말았음.
앞으로 해야 할 것.
- 일단 내일 mssql 살려. 외부망 (누구에게 얘기해야함??? - 대현피디님)
- 다음, http로 가져오는 데이터 sqlite에 넣을 것.
- Provider에 있는 정보 가져와서 Chart 그리기.
Chart 에서는 Customizing 해야 함.
2022-08-11의 작업로그 정리
작업의 순서를 정의해 보자.
-
일단 sqflite 는 나중에 하는걸로 하자. 크롬에서는 안되니 에뮬레이터에서 동작해야하는데 그렇게하려면, 백엔드 쪽이 완전히 배포가 되어야함. 관련해서는 수일팀장님께서 주신 url 들로 내부망에서 배포해보고 그 후 도메인 등록까지 마쳐야하는 걸로 알고 있음. 해본적이 없으니 나중에 생각할 것. (크롬으로 먼저 하자…)
-
데이터 정리. 지금부턴 크롬으로 띄워서 되는 것 확인하는 것임. 일단 http는 잘 들어오는 것 확인 다음으로 provider에서 동작할 수 있도록 해야함. provider에 ConsultData 저장할 것. provider에 저장한 값을 사용하면 되기 때문에 Chart에 적용하면 됨. 현재 사용하는 List들이 _majorName, _maximum, minimum 등을 사용하고 있음.
- 일단 발표자료 만들면서 정리하자.
flutter 관련 패키지 찾아보기
https://software-creator.tistory.com/23 https://seizemymoment.tistory.com/39 https://velog.io/@adbr/flutter-line-chart%EA%BA%BD%EC%9D%80%EC%84%A0-%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B02-flutter-flchart-example
https://github.com/syncfusion/flutter-examples https://flutter.syncfusion.com/?_ga=2.109876807.335131318.1659666052-1345779900.1657531458&_gl=1vhyn9a_gaMTM0NTc3OTkwMC4xNjU3NTMxNDU4_ga_WC4JKKPHH0*MTY1OTY2NjA1Mi4xLjEuMTY1OTY2NjA2NS4w#/
flutter 와 noejs 간의 연결이 가능한지 확인하기 localhost로 요청보내보자.
github token : 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
써야하는 데이터 SubjectName SelTypeNo SelTypeName CollegeNo CollegeName GunChasuNo
- foundation data 가져와서 확인
- 데이터 다 가져왔을 때, register screen(loading 화면)이 넘어가게끔 만들면 (나중에 serialkey validate 하면 됨)
EVBQEDJOJBRS
오전 8:39 2022-08-25
필요한 파일
- Screen - ConsultingScreen
- Provide/Model (Class) - ConsultingData.dart
- SQLite 넣기 (DB helper) - ConsultDBHelper.dart(나중에 구현)
Flutter 진행
- Data 가져오기 (print 찍어보기) (v)
- Provider에 저장 (Provider print찍어볼 것) (v) 2-2. Provider 안쓰기로 했음. sqlite에 저장해보자. 원래 Provider 라고하는 애는, 컴포넌트 간에 데이터를 전달할 때 사용하는 것. 공용으로 데이터를 사용하고 싶다면, provider가 아니라 sqlite를 사용해야할 것 같음.
-
true/ false value를 가져오지 못함 => 이 부분은 알아서 바꿔서 1,0으로 들어가는 것을 확인 아래가 sqflite에 저장할 데이터 타입이다. NULL. The value is a NULL value. INTEGER. The value is a signed integer, stored in 0, 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value. REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number. TEXT. The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16LE). BLOB. The value is a blob of data, stored exactly as it was input.
-
http로 가져와서 SQLite에 저장하자. (완료)
-
사용해야하는 컬럼들 SubjectName, 모집단위 SATMaxScore, 최고점 SATMinScore, 최저점 SATAvgScore, 평균점 TOTMaxScore, 총점 최고점 TOTMinScore, 총점 최저점 TOTAvgScore, 총점 평균점
3-1. Model 만들기 전에 일단 Chart 그려주는 원리 파악 필요 (코드 리팩토링 진행) 3-1-1. ConsultGrid (하단 테이블) - source : consultdatagridsource : 정리된 데이터들 그러면 지금 하고 싶은건, class 안에서 provider 데이터를 가져와서 뿌려주는 것인데.. 가능할지… 아니면 그냥 아예, provider 는 딱 받을 때만 쓰고 그 후엔 sqlite에 담아서 뿌려주는 것이 좋을지 결정해야 함. 그러면 먼저 sqlite를 해보는 것도 좋을 듯.
- Model 만들어서 Model의 형태로 저장 (Model Design)
- Provider 바탕으로 Chart 그리기 (여러가지 컴포넌트가 나눠져있어야 함)
http://bitbucket.jinhaksa.net:7990/scm/jat/dockerbuild_inside.git 2022-08-26 - 코드정리 완료 29일 수정
-
먼저 Provider를 도입해보자. (context가 있으니 사용할 수 있을 것임.) Provider는 여전히 어려움. 결론) sharedpreference를 사용하는 것이 좋다고 생각함.
- carousel 을 만들거고(slide)
1-1. 이부분은 그러면 몇개 단위로 나눌건지를 생각해야 함. 1-2. section을 정했으면, 그 section 별로 데이터를 뿌려줘야 함. - 5개~7개 정도씩 띄울 거임
일단 5개 단위라고 해보자. 그러면, 데이터 소스를 변경해줘야함.
carousel 을 만들려면
지금 현재는 build라는 과정을 거쳐서, DataSource를 만들어주는데, 이 과정을 바꿔줘야한다.
List 별로 바꿔줄 수 있을까 확인해야한다.
22.08.30
- 자자 여기 정리
구조를 이렇게 가져가자
- 일단 데이터를 sqlite에서 가져오지 말고, sharedpreference를 사용해서 가져올 수 있도록 설정해준다.
- ConsultingGraph, ConsultingTable 이렇게 있는데, 이 안에서 data build까지 다 할 수 있도록, 설정해준다. (지금은 그냥 ConsultingChart 안에서하고 있으니 이 부분을 분리해서 각자의 컴포넌트 안에서 동작할 수 있도록 해보자.)
다 때려박자!!!
오후 1:04 2022-09-02
그러면 다음 검색 모듈 만들기 그 다음 DNS 등록까지
검색 모듈을 어떻게 만들까?
- 성적별 필터링 (A, B, C, D) => (안정 - 파랑, 적정 - 초록, 경합 - 노랑, 위험 - 빨강)
- 검색input 길게 빼고, 전형별, 계열별, 학과별, 학년도별 드롭다운 필요 (반드시 전체 옵션이 있어야 함) 표 상에 해당 검색 필터링이 보여야할 거 같음 전형 : SelTypeName 계열 : CourseName 대학별 : CollegeName 학과별 : SubjectName
- 검색 순서는 기초 순서로 가자.
2022-09-08
다음작업
- 검색 모듈 정리 위치 정리등등 (하얀피디가 해준거 바탕으로 그려볼 것.)
- expand 될 수 있도록 만들어야 함.
- Search Module 오른쪽으로 빼기.
두개를 만드는것도 괜찮을 거 같음
- 일단, 현재 Table 차트에서 위에 뜰 수 있도록
- Expansion Chart 버전으로 하나 만들 것. 일단 우측으로 먼저 빼고 만들자 둘만들고 작업하는 것보다는 그게 나을 것 같음
정리하면..
- Search Module 우측으로 빼기(v)
- 위에 텍스트 박스 만들기 (v)
-
소스 정리
- 먼저 타블렛 길이에 맞출 수 있도록 해보자 (나중에 길이 맞추는건 좀 생각해봐야 할듯) [1] 비율로 나눌 수 있음 [2] % 형식으로 나눌 수 있음 등등을 조금 생각해봐야겠다.
-
Carousel 이 동작해야 함. 일단 정리한번 해보자. carousel data 넘겨주는 _init 이라는 애가 있고 table이랑, graph를 그려주는 _initsource 라는 애가 있다.
그러면 어떤 때 어떤 데이터를 어떻게 넘겨주냐가 혼동되지 않게 잘 정리되는 것이 필요하다.
- 먼저 carousel 을 넘길 때는 어떤 데이터로 넘겨야 하는가. => 여기서는 graph랑 table만 바뀌면 된다.
- 그 다음으로 Search Module 에서 값을 넘겼을 때 filtering 해주는 곳은 어디가 되어야할까. => 여기선 carousel 이 바뀌면 된다.
- SearchModule 이 동작해야 함
- 커스터마이징이 가능해야 함.
- 위에 간략보기는 고정되어야 함.
- 선택한 행이 무엇인지 표시가 되어야 함.
- 2021, 2022 버튼 만들기
- 진단선택 필터링 진행하기
- 데이터 모델링 하기
- 클릭 이벤트 받아서 위에 뿌려주기
- 상세 보기 만들기
- 진단 아이콘 수정하기
3) 백엔드 쪽 디비 연결하는 부분 손볼 것. env 파일을 봐줘야할 듯. 이 부분은 지금 에러뜨고 있으니, 나중에 시스템팀 오면 물어보고, 아마 Jenkins 도커 쪽 권한 문제인지, 방화벽 문제인지 일듯…
[수시 끝나고 회의하며 얘기해야할 것들] 내 입장정리
- 디자인요청서는 미리 작성해서 준다 (단, 절대 ARA보다 우선순위는 아니다! 내년에 디자인 개편을 목표로 함)
- 그전까지 우리는 우리대로 프로토타입을 진행한다. (이번 정시 대, 하나의 학교를 대상으로, 쓰겠다고 하면 쓰고, 안쓰겠다고 하면 안써도 상관 없음) ex) 서원대, “다만 목표를 갖고 수준을 높이자는 의미.”
질문) “쓰겠다고 하면 쓰고 product로 나가는 것은 디자인을 거쳐야하는 것이다?” 답) “정확하게는 product라고 할수는 없는 것이다. feedback을 받기 위한 prototype의 제공 정도이지 완성본이라고 할 수는 없는 것이다.”
[Flutter] Json 데이터를 GetX를 활용하여 list view, detail view 만들기 https://mugon-devlog.tistory.com/82?category=953465
●•※
오전 9:46 2022-09-17 할일 정리 0. apk 파일로 만들어서 배포해볼 것. (이거먼저 해보자) (v)
- Detail Page card들… 데이터 가져와서 뿌려주는 것 해볼 것. (관리자쪽이랑 연동시키기)
- syllabus json data modeling
- ipsischedule data modeling
- Chart Card data modeling
- 코드 정리(데이터 모델링)
- SearchModule 쪽 정리할 것.
위 두개만 되면 얼추 되는 것 같고
그러면 다음주에는
- 백엔드 배포
- 남은 과제들, 설정/산출 부분만 만들 것. 그러면 얼추 됐고,
그 외에 필요한 것들을 정리할 것.
- SearchModule 쪽 정리할 필요가 있음.
-
상위 목록의 선택 시 하위목록의 초기화 및 항목이 아래 항목으로 나와야 함. 아래 항목으로 나오려면… SelTypeDropDown 이 change 이벤트를 발생시키면 data 정리해서 CourseDropDown으로 넘겨야 함. 그 다음엔 CollegeDropDown으로 넘기고 MajorDropDown으로 넘기는 식으로 되어야 함.
SelTypeDropDown의 데이터는 3개에 모두 영향을 주어야 함. 그러나
- 자기 자신에게는 영향을 주어선 안됨. 그대로 가야 함.
- 아래 데이터는 수정되는 것이 윗 데이터에 영향을 줄 수 없겠지만
- 윗 데이터의 수정은 아래 데이터의 초기화를 동반한다.
그 외에 것들도 마찬가지…
이 로직을 서로에게 영향을 줄 수 있도록 적용해보자.
- 진단 선택은 중복이 되어야 함.
- 학과 검색은 포함하는 단어로 가져와야 함. (학과 검색 시 학과 검색이 가장 우선순위임.)
오후 4:08 2022-09-23 회의 후 결과
- 먼저 이식 시키는게 먼저임.
- provider로 바꿔서 만들어볼 것.
- 상세보기 옆에 상담완료(색상 다르게)
- 그래프모드, 테이블모드 버튼을 SearchModule 안에 넣을 것. (년도 설정 위에)
- 모드를 바꿔도 필터 값은 그대로 적용되게 만들 것.
- DetailPage 쪽, 입시일정을 모집 요강 옆에 붙일 수 있도록 만들어둠
- 그 다음에 대형 과제를 실행한다.
- SearchModule 쪽 정리할 것.
- 관리자 쪽 수정하여, json
오전 12:37 2022-09-30 자자 머지를 진행해보자..
일단 하나씩 만들어가야 할 것인데.
구조 파악 Row 안에서
- 좌측 차트 , 우측 서치 모듈 나눌 것.
-
우측 SearchModule 부분
- 좌측 차트에는 ChartView (그래프모드일 때) - TopCard - ConsultCarousel (CarouselSlider 이거 커스터마이징 해서 만든 것)
ConsultCarousel 안에는 - ConsultingGraph - ConsultingTable
(표모드일 때) - ConsultGaugeTable
이렇게 나오면 될 것 같음
나중에 생각할 부분은 껍데긴는 어떻게든 만들텐데 그 이후에 SearchModule쪽을 어떻게할건지 고심해봐야할 듯.
_blueChecked. ALength _greenChecked. BLength
_yellowChecked CLength _redChecked DLength
_blackChecked XLength
_blueChecked,_greenChecked,_yellowChecked,_redChecked,_blackChecked, ALength,BLength,CLength,DLength,XLength,
x: listApplyMajor[i].toJson()['SubjectName'],
xValue: listApplyMajor[i].toJson()['SATAvgScore'],
y: listApplyMajor[i].toJson()['SATMinScore'],
yValue: listApplyMajor[i].toJson()['SATMaxScore'],
secondSeriesYValue: myscore,
웬만한 전달해야하는 데이터를 Provider에 담아서 전달하도록 하자.
ChangeNotifierProvider
오후 5:31 2022-10-03
- 싱글터치시 topcard로 정보 찍힘 (V)
- 더블 터치하면 상세보기로 이동 (v)
- 상세보기 옆에 상담완료(색상 다르게) (v)
- SearchModule 쪽 정리할 것.
- 모드를 바꿔도 필터 값은 그대로 적용되게 만들 것. (v)
- 다듬기 작업 (계산 쪽이랑 그 외의 것들)
- 그 다음에 대형 과제를 실행한다. (관리자 쪽 vue2)
2022년 모집인원 : PersonalCnt 전년도 모집인원 : LastYearMojipCnt 전년도 경쟁률 수치 : LastYearApplyRatio 전년도 지원자 수 : LastYearJiwonCnt 2022 최종등록자 평균 성적 : SATAvgScore
BeforeTwoYearApplyRatio: 8.0, BeforeTwoYearJiwonCnt: 72, BeforeTwoYearMojipCnt: 9, BeforeThreeYearApplyRatio: 5.559999942779541, BeforeThreeYearJiwonCnt: 50, BeforeThreeYearMojipCnt: 9,
오전 10:17 2022-10-04 오늘 부터는 SearchModule을 정리할 예정임
SearchModule 계획을 세워보자 2022. 2021. 2020 에 따라서 만들어줄 것. 세개의 데이터를 모두가져와야 함.
ApplyMajor ApplyMajorLastYear ApplyMajorBeforeThreeYear
이렇게 담아두고 쓸 것.
그 다음, 전형을 선택하면 해당 전형 값을 가지고 있다가 ApplyMajor(해당년도) 의 값에 Filtering 을 걸어주는 로직을 처리한다. 예를들면 SelType 값을 Where 조건을 걸어서 넣어준다. 그러면 그 Filtering 걸린 List 값을 가져와서 보여준다.
당연히 전형을 선택하면, 그 하위 (계열, 대학, 모집단위)가 초기화 되어야 한다.
나머지도 동일하게 제어를 건다. 위에서 초기화가 될 때는 Filtering 걸리는 Store(Provider) 에서도 초기화가 되어야함을 잊지 말자.
KeyWord Search는 위와 중복이 되어야할까 아니면 단독으로 검색이 되어야할까 생각해야한다. 중복으로 걸려야하지 않을까 싶다. 일단은…
진단 선택 값은 위의 Filtering에 따라서 Length가 결정이 된다. filtering 걸리는 데이터가 어떻게 전달이 될지는 모르겠으나… 그에 맞게끔 걸리면 될 것이다.
또 생각해야하는 것이 하나 더 있다.
- ConstCase에 대한 것이다. 나중에 생각하자…
필터를 만들고 있음…
- 일단 , SelTypeValue 를 설정하면 그게 Provider 에 들어갈 것임.
- 그거 가지고 검색하는 것은 가능함.
그러나 MajorValue 까지 있으면 중첩해서 검색해야 함.
Color.fromRGBO(80, 190, 132, 1) Color.fromRGBO(230, 187, 0, 1)
일단 위에서부터 초기화 되는 로직부터 만들어볼까..?
전형을 선택했을 때, 계열이 초기화 되어야 함.
계열 초기화를 어떻게 시킬 것이냐 전형 change 이벤트에 걸어서 계열을 다시 불러와야 함. 불러온다??????
계열의 데이터를 새로 넣어줘야 한다.
- 하위 드롭다운은 상위 드롭다운에만 영향을 받아야한다.
- 무언가를 선택했을 때, 나와야하는 데이터는 동일해야 한다.
- 상위 드롭다운을 선택하면 하위 드롭다운은 초기화 되어야한다.
한문학과 -> 계열 : 자연 선택시 -> 대학 초기화(자연필터링), 한문 초기화 (자연필터링)
계열을 바꿈 : change 이벤트 발생 -> change 이벤트 발생 시, modifyCall 발생시킬 것.(이걸 어떻게 할 거이냐하는 것인데)
-> modifyCall: DropDownList를 새로 가져옴.
바뀌었을 때 초기화되는건, widget 안에 함수를 담아서 넘기면 될 것 같고… 그러나 매번 누를 때, 그 데이터를 가지고 있어야하는데…
“전형 : 일반학생” 만 검색해서 가지고 있어야 함. 그것만 가지고 있으면 됨.
그러므로 이것도 다 Provider에 담아서 저장해두고 있어야 함. 변하는 데이터에 맞게 뿌려주려고 하면 안됨.
오케이 그러면 SelTypeList CourseList CollegeList MajorList
이렇게 넣어두고, 저기서 Dropdownlist를 만들어주자. 그리고 Select 된 애를 바탕으로 filtering 걸어주자.
- MyScore를 어떻게 처리할 것이냐…
희건피디의 의견 : “extends 해서 변수 세개만 추가”
- 내점수 TopCard에 추가할것(result, result-detail모두)
Color.fromRGBO(68, 79, 148, 1); Color.fromRGBO(42, 148, 183, 1);
- 내일 발표 준비