프롬프트 추가
This commit is contained in:
parent
5d8c21038b
commit
0fad651c1e
|
|
@ -0,0 +1,56 @@
|
|||
안녕? 한글로 얘기해.
|
||||
나는 온라인 셀링을 하는 사업가야. 필요한 프로그램이 있어서 직접 코딩하는 중이야. 내가 원하는 프로그램을 완성해 줄래?
|
||||
차근차근 진행해 보자.
|
||||
|
||||
전체코드의 구조를 검토해 보고 , 효율적으로 수정해 나가보자.
|
||||
|
||||
|
||||
프로그램 아웃라인
|
||||
1. 이 프로그램의 목적은 'percenty.co.kr'이라는 웹사이트에 접속 후 로그인 하고,
|
||||
'마켓 설정'에 존재하는 각 마켓들의 'API key'를 바꾸는 프로그램이야.
|
||||
2. 마켓은 현재 '쿠팡,' 스스', 'ESM', '11번가-국내', '11번가-해외', , '롯데온'이야. 추후에 더 추가될 수도 있어.
|
||||
마켓마다 요구하는 api키의 종류는 다양하고 해당부분은 추가되어 있어.
|
||||
3. 이 프로그램을 사용하는 사람은 사업자가 여러개 있을 수 있고, 사업자마다 마켓별 api키를 가지고 있지.
|
||||
4. 프로그램 설정으로 저장할 수 있는 총 사업자 숫자를 제한할 수 있어야 해.
|
||||
5. 각각의 설정은 암호화되어 config.ini 파일에 저장되고, 프로그램이 실행되면 다시 불러오게 해야해.
|
||||
6. 디버깅을 위해 로그는 로그파일과 콘솔출력 모두 되어야 하고, 디버깅레벨은 디버그, 디버깅이 끝난 후 배포단계에서는 Info로 변경해서 배포할꺼야.
|
||||
|
||||
UI 구성
|
||||
1. pyqt5를 이용한 GUI프로그램이야. 웹과 상호작용하는 부분은 playwright의 비동기 기능을 이용해야해.
|
||||
2. 프로그램이 실행되면 라이센스 동의 화면이 표시되. 이 화면에는 아랫쪽에 체크버튼이 있고, 체크버튼을 클릭하면 Acept버튼이 활성화 되. 취소 버튼은 항상 활성화 되어있고, 이걸 누르면 프로그램이 종료되.
|
||||
3. Accept버튼을 클릭하면 라이센스 동의화면이 없어지고 본 기능을 하는 메인윈도우가 표시되.
|
||||
4. 메인 윈도우에는 '도움말', '퍼센티설정', '사업자설정'이라는 메뉴 item이 있어.
|
||||
5. '도움말'을 누르면 QTextBrowser 가 실행되고 그 내부에 도움말을 표시할꺼야.
|
||||
6. '퍼센티설정'을 누르면 사용자 아이디와 비밀번호를 입력받는 작은 위젯이 실행되고, 저장버튼과 취소버튼으로 구성되어있고, 저장 버튼을 누르면 설정이 저장되.
|
||||
7. '사업자 설정'을 누르면 별도의 사업자설정 위젯이 생겨. 여기는 사업자마다 탭으로 구성되어있고, 탭 내부의 상단레이아웃에는 사업자 정보, 하단레이아웃은 다시 마켓별 탭이 있고, 탭마다 마켓의 api키들을 저장할 수 있는 qlabel과 qtextedit가 쌍을 이루면서 존재해.
|
||||
|
||||
8. 메인 윈도우는 mainLayout으로 qvlayout을 사용해.
|
||||
9. mainLayout의 내부 구성레이아웃으로 3개의 layout들이 있어. 각각 20%, 60% 20%의 면적을 차지해.
|
||||
10. 1번 qhlayout은 SettingButtonLayout으로 '현재설정 가져오기' 버튼과 '현재설정 저장하기' 버튼이 있어.
|
||||
10. 현재설정 가져오기 버튼을 누르면 playwright가 비동기로 실행되어 웹사이트에 접속 후 로그인하고, 현재의 마켓설정들을 가져와.
|
||||
11. 현재설정 저장하기 버튼을 누르면 '사업자 저장' 위젯이 떠.
|
||||
12. '사업자 저장 위젯'은 사업자 별칭, 사업자등록번호, 상호명, 등록날짜, 응대전화번호를 입력하는 칸이 있어. 해당 칸들을 채운 후 취소버튼과 확인버튼 중 확인버튼을 누르면 해당사업자로 저장되.
|
||||
13. 이때 현재 등록된 사업자 숫자가 총 등록된 사업자 숫자보다 많은 경우 에러 메세지를 띄워줘.
|
||||
13. '사업자 저장 위젯'의 필수 입력정보는 사업자등록번호, 상호명이며 사업자별칭이 비어있으면 상호명이 이곳에 들어가면 되.
|
||||
|
||||
14. 2번 qhlayout은 currentStatusLayout으로 실제 웹사이트에 접속 후 가져온 데이터를 표시해 주는곳이야.
|
||||
15. 2번 qhlayout은 3개의 박스로 구성 되어있어.
|
||||
16. 2번 qhlayout 의 첫번째 박스는 현재 사업자 현황을 보여주는 박스가 표시되. 30%를 차지하는데, 가져온 데이터가 저장된 사업자데이터와 일치하는 경우 그 사업자의 사업자별칭, 사업자등록번호, 상호명, 등록날짜, 응대전화번호가 표시되.
|
||||
17. 2번 qhlayout 의 두번째 박스는 60%를 차지하는데 내부에는 다시 qhlayout으로 만들어진 marketqhlayout 레이아웃은 마켓별로 구성되고, 여기에는 마켓이름을 표시하는 qpushbutton과 사업자별칭을 표시하는 qplaintext가 있어.
|
||||
18. 가져온 데이터의 마켓별 api키가 저장된 사업자들 중 일치하는 사업자가 있으면 해당 마켓 라벨의 배경을 연두색으로 하고, 사업자의 별칭을 보여줘.
|
||||
19. 만약 일치하는 사업자가 없다면 배경을 진한회색으로 변경하고 "NoMatch"로 표시하면 되.
|
||||
20. 2번 qhlayout 의 세번째 박스 10%를 차지하고 내용은 일단 비워줘.
|
||||
|
||||
21. 3번 qvlayout은 selectSettingLayout으로 '사업자 드롭박스', '마켓 체크박스'와 '사업자 바꾸기' 버튼, '진행상황' 프로그레스바가 있어.
|
||||
22. selectSettingLayout은 '사업자 드롭박스' 위젯1개, '마켓 체크박스'를 표시할 레이아웃 1개, '사업자 바꾸기' 위젯1개, '진행상황' 위젯 1개로 구성되.
|
||||
22 '사업자 드롭박스'에는 '사업자설정'에서 마켓별 api가 1개라도 설정된 사업자만 표시되.
|
||||
23. 마켓 체크박스 레이아웃은 마켓이름으로 구성된 체크박스들이 3열로 구성되어 있어. 추후 지원하는 마켓이 늘어나면 이곳에도 추가로 늘어날 예정이야.
|
||||
24. 마켓 체크박스 레이아웃' 내부에는 '전체선택' 이라는 체크박스와 함께 모든 마켓들이 표시되. 그런데 '사업자 드롭박스'에서 선택된 사업자의 마켓 중 api값이 없는 마켓은 체크할 수 없게 비활성화 되어야 해.
|
||||
25. '사업자바꾸기' 버튼을 누르면 선택된 사업자와 선택된 마켓을 기준으로 실제 바꾸는 동작을 해야해. 이 동작은 playwright의 비동기작업으로 실행되.
|
||||
26. 이때 작업 진행상황은 '진행상황'프로그레스 바에 업데이트 시켜줘.
|
||||
26. 사업자 api가 모두 바꿔지면 '현재설정 가져오기' 의 연결된 메서드 동작 중 현재마켓 설정을 가져오는 메서드만 동작하여 currentStatusLayout의 내용을 업데이트 시켜야 해.
|
||||
27. 작업이 완료되면 작업완료 창을 띄워줘.
|
||||
28. 작업완료창은 현황 레이아웃 ('사용자에게 바뀌기전 사업자 현황'과 '바뀐 사업자 현황'으로 구성), '브라우저 실행' 버튼과 '확인'버튼으로 구성되어 있어.
|
||||
29. 작업완료창의 확인 버튼을 누르면 창이 사라지고, 브라우저 실행 버튼을 누르면 playwright의 chrome이 headless=false 모드로 실행되면서 작업완료 창은 사라져.
|
||||
30. 사용자가 브라우저 실행 버튼을 누르면서 실행된 playwright는 이제부터 사용자가 웹사이트 작업을 할꺼야. 그래서 기존에 사업자 정보를 불러왔던 객체와는 별도의 객체여야 해.
|
||||
|
||||
Loading…
Reference in New Issue