Parcourir la source

230919-1619-Kim

EricKIm il y a 1 an
commit
b9e5678cd9

BIN
1.reference-manual/ManualforDevelopers/LT1 불러오기 제작 방법 .pptx


BIN
1.reference-manual/ManualforDevelopers/LT1 제작 방법.pptx


BIN
1.reference-manual/ManualforDevelopers/크리스탈레포트 레포트 제작 방법.pptx


+ 125 - 0
1.reference-manual/Setting-of-env-file-by-Juhyuk-kim.md

@@ -0,0 +1,125 @@
+
+
+# 다보리 Frontend에서의 Laravel .env 사용법
+
+Daboty Frontend에서는 Laravel에서 기본으로 제공하는 .env 항목이외에 항상 이용되는 변수를 추가하여 사용하고 있습니다.
+
+ .env 화일과 이외에 Backend와 연결하기 위한 .env.dabory가 별도의 화일로 사용되고 있습니다.
+
+- [Lavavel .env 기본 메뉴얼](https://laravel.kr/docs/5.7/configuration).
+- [Lavavel .env Example](https://zetawiki.com/wiki/%EB%9D%BC%EB%9D%BC%EB%B2%A8_.env,_.env.example).
+
+## .env 변수 설명 
+### [Dabory]
+ERP_THEMES=업종특화 소스코드 분리 위해 사용 (themes/erp 폴더 임포트)
+
+PRO_THEME=PRO 소스코드 분리하기 위해 사용 (themes/pro 폴더 임포트)
+
+LOCALE_SEQUENCE=다국어 사용 목록
+
+APP_MOBILE_NO=아직 사용X
+
+TAG_LINE=아직 사용X
+
+CDN_TYPE=미디어 CDN (aws-s3 or local)
+
+MEDIA_URL=미디어 base url 지정(미디어가 local or a3)
+
+FAVICON_PATH=파비콘 파일 path
+
+IS_SKIP_DBUPDATE=DBUPDATE 스킵 or 사용
+
+IS_ON_MEMBER_SIGNUP=아직 사용X
+
+## [MetaMask]
+CHAIN_ID=0xE67B
+
+CHAIN_NAME='Dang Smart Chain'
+
+RPC_URLS=http://3.38.62.211:8545
+
+NATIVE_CURRENCY_NAME=DGT
+
+NATIVE_CURRENCY_SYMBOL=DGT
+
+NATIVE_CURRENCY_DECIMALS=18
+
+BLOCK_EXPLORER_URLS=https://explorer-staging.dangnn.co.kr
+
+### [asset & cache]
+BROWSER_CACHE=브라우저 캐시사용
+
+CSSJS_URL=local or asset url 입력
+
+### [Printer]
+REPORT_SERVER_URL=프린터 서버 base url
+
+### [Laravel]
+APP_NAME=앱 이름
+
+APP_ENV=.env 기본 메뉴얼 참고
+
+APP_KEY=base64:.env 기본 메뉴얼 참고
+
+APP_DEBUG=.env 기본 메뉴얼 참고
+
+APP_URL=앱 url
+
+LOG_CHANNEL=stack
+
+LOG_LEVEL=debug
+
+DB_CONNECTION=사용x
+
+DB_HOST=사용x
+
+DB_PORT=사용x
+
+DB_DATABASE=사용x
+
+DB_USERNAME=사용x
+
+DB_PASSWORD=사용x
+
+
+BROADCAST_DRIVER=사용x
+CACHE_DRIVER=사용x
+FILESYSTEM_DRIVER=사용x
+QUEUE_CONNECTION=사용x
+SESSION_DRIVER=사용x
+SESSION_LIFETIME=사용x
+
+MEMCACHED_HOST=사용x
+
+REDIS_HOST=사용x
+REDIS_PASSWORD=사용x
+REDIS_PORT=사용x
+
+MAIL_MAILER=.env 기본 메뉴얼 참고
+MAIL_HOST=.env 기본 메뉴얼 참고
+MAIL_PORT=.env 기본 메뉴얼 참고
+MAIL_USERNAME=.env 기본 메뉴얼 참고
+MAIL_PASSWORD=.env 기본 메뉴얼 참고
+MAIL_ENCRYPTION=.env 기본 메뉴얼 참고
+MAIL_FROM_ADDRESS=.env 기본 메뉴얼 참고
+MAIL_FROM_NAME=.env 기본 메뉴얼 참고
+
+AWS_ACCESS_KEY_ID=.env 기본 메뉴얼 참고
+AWS_SECRET_ACCESS_KEY=.env 기본 메뉴얼 참고
+AWS_DEFAULT_REGION=.env 기본 메뉴얼 참고
+AWS_BUCKET=.env 기본 메뉴얼 참고
+AWS_USE_PATH_STYLE_ENDPOINT=.env 기본 메뉴얼 참고
+
+PUSHER_APP_ID=사용x
+PUSHER_APP_KEY=사용x
+PUSHER_APP_SECRET=사용x
+PUSHER_APP_CLUSTER=사용x
+
+MIX_PUSHER_APP_KEY=사용x
+MIX_PUSHER_APP_CLUSTER=사용x
+
+ANALYTICS_UA_ID=
+ANALYTICS_VIEW_ID=
+
+ANALYTICS_G_ID=
+ANALYTICS_PROPERTY_ID=

+ 154 - 0
1.reference-manual/how-to-install-and-run.md

@@ -0,0 +1,154 @@
+
+##  1. How to install and run php-docker
+ 
+####  # cd $HOME
+####  # git clone http://git.daboryhost.com:10880/dabory/mybin
+####  # export PATH=$PATH:$HOME/mybin
+
+####  # mkdir -p $HOME/docker-works/php/
+####  # cdphp 
+####  # git clone http://git.daboryhost.com:10880/dabory/php-docker
+####  # cd php-docker
+####  Read reference manual to setup docker environment
+
+####  # git clone http://git.daboryhost.com:10880/dabory/dbrerp
+####  # cd dbrerp
+####  Read reference manual to setup dbrerp environment
+
+##  2. How to Setup theme folder
+####  dbrerp has 2 different concept for controlling source code such as "standard" part and "theme" part. 
+Many software solution providers have a big scourge of core solution part and customizing part to be jumbled as a spagetti syndrom. Problems related with this issue have been preventing smooth upgrade and raised update cost in software development.
+Dabory suggested a method to solve this problem by dividing code of "stardard" and "theme" as customized part. As dabory team build developed "double git update structure" by using .git and .gitignore functiionalities and proper folder structure. Also it have applied to User Pages( so-called Admin pages) and Pro Pages ( so-called Service Pages) in 2 different ways.
+
+#### (1) THEME folder
+$HOME/docker-works/php/{website-alias}/dbrerp/public/themes/ is theme forlder to be used customized part
+"{website-alise}" is can be "php-docker" or specific names as such as "newerp-php73" when developers maintain multiple websites in local PC. In webhosting server, /home/{website-alias}/public_html/public/themes/
+
+As git structure, "themes" folder is excluded by adding folder name in .gitignore file.
+
+Under "themes" folder, it can have subfolder such as "pro" and "erp"
+As the subfolder, "pro" is for Pro Page for consists of Service Pages (or Home Page) excluding User Pages(Admin page). Also "erp" indicates folder for User Pages(or Admin Pages) This is why "themes" folder have a sub git structure under root git struture. we call root git as "parent git" and theme git as "child git"
+
+You can acquire folder name typing in cli : # cdpro {website-alise}
+example for local PC: $ cdpro newerp-php73 (will show)
+cd /Users/EricKim/docker-works/php/newerp-php73/dbrerp/public/themes/pro 
+
+example for server : $ cdpro newerp (will show)
+cd /home/newerp/public_html/public/themes/pro
+
+example for local PC: $ cderp newerp-php73 (will show)
+cd /Users/EricKim/docker-works/php/newerp-php73/dbrerp/public/themes/erp 
+
+example for server : $ cdpro newerp (will show)
+cd /home/newerp/public_html/public/themes/erp
+
+#### (2) How to install THEME folder
+http://git.daboryhost.com:10880/dbr-themes-pro
+There are dbr-themes-pro themes to be selected for theme, choose one of them and git clone the url link.
+cd {themes_folder/pro}
+#### # git clone http://git.daboryhost.com:10880/dbr-themes-pro/erponly
+
+As same way, http://git.daboryhost.com:10880/dbr-themes-erp
+There are dbr-themes-erp themes to be selected for theme, choose one of them and git clone the url link.
+#### # git clone http://git.daboryhost.com:10880/dbr-themes-erp/optical_pos
+
+!! Important difference between "pro" and "erp" is that:
+pro should be one, erp can be multiple because erp can have conbined features by business logic and workflows.
+
+#### (3) How to GIT sync STANDARD/THEME folder with git server simultanously
+
+example for local PC: 
+cd $HOME/docker-works/php/ ( normally input cdphp)
+all-gitpp {website-alias}
+
+example for server :  
+cd /home  (normally input cdz)
+all-gitpp-host {website-alias}
+
+These shell scripts run git sync with standard folder and change directory to themes folder of "pro" and "erp" and run sync for both of pro and erp folder to reduce time for total updates.
+
+#### (4) How to sync THEME folder and .env file variables
+You can easily find ERP_THEMES, PRO_THEME variables in 2nd, 3th lines of .env file.
+You MUST syncronize the variable name and theme folder name as variable value.
+
+##  3. How to start php-docker 
+####  # cd $HOME/docker-works/php/php-docker
+####  # dkrmcu-remove-containers-and-compose-up
+1) This will delete all docker containers and restart container in local PC.
+
+2) You don't need to anything after update git in server.
+
+##  4. How to stop php-docker (delete all docker containers)
+####  # cd $HOME/docker-works/php/php-docker
+####  # docker rm -f $(docker ps -a -q)
+
+.
+## 4. Configuration
+ 
+#### .env Location : $HOME/.env (Laravel Env variable and Dabory variable combined)
+ 
+#### .env.dabory Location : $HOME/.env.dabory (Dabory API Connection and Token Keys)
+
+#### Note1 : There are divided concepts of ERP / PRO in dabory solution from the other web/app solutions.
+   ERP is for backoffice pages for company or organization staffs and managers (Extension of Admin Page)
+   
+   PRO is for frontoffice pages for guest and customer member who are outside of company or organization (Extension of Service Page)
+
+#### Note2 : Dabory Media Library is inspired by Wordpress media library and extened for more wide range of use.
+
+#### Note3 : All of variables "Laravel" sub item can be referred in website below.
+    https://laravel.com/docs/7.x/configuration
+
+### Important !! : In development or web design stage, You should set .env as follows:
+1. BROWSER_CACHE=false
+2. CSSJS_URL=local
+
+This reduces website rendering speed, but changes in js script and css are fed to web pages in no time. 
+ 
+
+## .env Variable Description.
+
+|    Type  |      Name      | Usage                       | Applied | Remarks                                     |
+|----------|-------------|-----------------------------|------|---------------------------------------------|
+| Dabory| ERP_PARA_CUSTOM_THEME| ERP theme                   | | erp 파라 커스텀할 때 사                             |
+| Dabory| ERP_THEMES| ERP theme                   | | Can be multiple themes                      |
+| | PRO_THEME| PRO theme                   | | only one theme available for one site       |
+| | LOCALE_SEQUENCE| Language and Local Sequence | | Separated by comma                          |
+| | APP_MOBILE_NO| Mobile No for Admin message | |                                             |
+| | TAG_LINE| Page Tag for SEO            | |                                             |
+| | MEDIA_URL| File upload URL             | | Local, Website and CDN such as S3 available |
+| | FAVICON_PATH| Pavicon File Path           | |                                             |
+| | IS_SKIP_DBUPDATE| Skip DB update              | |                                             |
+| | IS_ON_MEMBER_SIGNUP|                             | Yes|                                             |
+| | FROALA_LICENSE_KEY|                             | | FROALA 라인센스 키                               |
+| | SHIP_TRACK_API|                             | | 배송 추적 api키                                  |
+| | DEVICE_SCALE|                             | | ex)mobile>0;tablet>768;desktop>1024         |
+| | API23E_KEY_PAIR|                             | | api23e key pair                             |
+| | USER_LOGIN_ROUTE|                             | | 유저로그인 페이지 주소 커스텀                            |
+| | ADMIN_EMAIL|                             | | 테스트 메일보낼 때 받을 메일                            |
+| | CRM_SEARCH_SITE|                             | | crm search site 이동 주소                       |
+| | CRM_CUSTOM|                             | | crm custom 확인                               |
+| | CRM_KKSEARCH_URL|                             | | crm kksearch site 주소                        |
+|SMS | SMS_TYPE|                             | | aligo                                       |
+|SMS | SMS_APIKEY|                             | | sms api key                                 |
+|SMS | SMS_USER|                             | | sms user                                    |
+|SMS | SMS_SENDER|                             | | sms sender                                  |
+| | BROWSER_CACHE| Browser Cache Available     | |                                             |
+| | CSSJS_URL| css, js asset url           | |                                             |
+| | VERSION_DATE| css, js 캐시 업데이트             | |                                             |
+|Printer | REPORT_SERVER_URL| Shared Report Server| | Crystal Report suppored                     |
+|elastic | ELASTIC_HOST| | |                    |
+|elastic | ELASTIC_USER| | |                    |
+|elastic | ELASTIC_PASSWD| | |                    |
+|elastic | KIBANA_URL| | |                    |
+| Laravel| APP-xxx| Refer Laravel Manual site for more info |  | https://laravel.com/docs/7.x/configuration  |
+| | DB_CONNECTION| | Yes | Dabory Does Not use Eloquent ORM in Laravel |
+| | AWS_ACCESS_XXX | | | Dabory use S3 as media library              |
+| | PUSHER_APP_ID| | No|                                             |
+| | LOG_CHANNEL| | No|                                             |
+| | MEMCACHED_HOST| | No|                                             |
+| | SESSION_DRIVER| | No|                                             |
+| | REDIS_HOST| | No|                                             |
+| | MAIL_MAILER| | | Dabory use S3 as mailer in Laravel          |
+| | PUSHER_APP_ID| | No|                                             |
+| | MIX_PUSHER_APP_KEY| | No|                                             |

+ 42 - 0
1.reference-manual/usage-of-libSodium.md

@@ -0,0 +1,42 @@
+
+
+## Sodium 이란 ?
+
+Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing, and more.
+It is a portable, cross-compilable, installable, and packageable fork of NaCl, with a compatible but extended API to improve usability even further.
+Its goal is to provide all of the core operations needed to build higher-level cryptographic tools.
+Sodium is cross-platform and cross-language. It runs on many compilers and operating systems, including Windows (with MinGW or Visual Studio, x86 and x86_64), iOS, and Android. JavaScript and WebAssembly versions are also available and fully supported. Furthermore, bindings for all common programming languages are available and well-supported.
+The design choices emphasize security and ease of use. But despite the emphasis on high security, primitives are faster across-the-board than most implementations.:
+
+- [Sodium official documentation](https://libsodium.gitbook.io/doc/).
+- [Quick Manual how to use it in PHP](https://www.php.net/manual/en/function.sodium-crypto-box-seal.php).
+- [Referece Manual how to use it in PHP](https://www.php.net/manual/en/book.sodium.php).
+
+## 다보리 ERP는 
+1) 각 사용자 DB의 접속정보를 sodium 으로 암호화한 후 해당 접속정보를 Frontend Locate 하고
+2) 해당정보를 Backend 에 제출하고 GateToken을 리턴 받아서 해당 토큰으로 세션을 유지하 는 동시에  DB 접속정보를 Backend의 Memory DB 에만 임시로 존재하게 하는 Frontend Driven 방식을 채택함으로써
+3) ISMS 보안 사항을 준수합니다.
+4) 동일한 Backend API 로 다양한 Microservice Frontend 요청을 처리할 수 있는 Gateway API를 제공합니다.
+
+
+## Encryption 구조 는 
+1) 최초에 작성된 sodium Key Pair는 SSO 서버에 별도로 저장이 됩니다.
+2) Frontend 에는 .env.dabory에 BeforeBase64 Key에 DB 접속 정보가 저장됩니다.
+3) Frontend 가 Backend API 를 사용하기 위해서 최초에 Client Id와 BA64 Key를 제출하면 GateToken을 Return  받습니다.
+4) 이 때 Backend API 서버의 Memory DB에 해당 GateToken과 연관된 DB접속 정보가 생성되어 이후 DB 접속을 반복할 수 있습니다. 
+5) Key pair는 SSO 서버에 저장되고 가져오는 것이 기본으로 되어 있으나 Backend API 서버의 conf 화일에 저장해서 운용됨으로써 SSO 서버와의 독립적으로 운영될 수 있습니다. 
+
+
+## Sodium 관련 소스 코드 
+
+Frontend에서 Sodium과 관련된 소스코드
+
+- [ KeyPair/PublicKey 등을 를 생성하는 일반적인 PHP Code ](https://www.php.net/manual/en/function.sodium-crypto-box-seal.php).
+
+- [Sodium 사용 Ajax 제공 (260~262 Lines)](http://git.daboryhost.com:10880/dabory/dbrerp/src/master/routes/web.php).
+- [ DB 정보 암호화 how to use it in PHP (254~263 Lines)](http://git.daboryhost.com:10880/dabory/dbrerp/src/master/resources/views/front/dabory/pro/my-app/popup/popup-form1/form-a/client-app-form.blade.php).
+
+
+**A. Ajax를 이용하여 Sodium function 구성 이유.** 
+
+    팝업 div에서 직접 PHP 코드를 사용할 수 없으므로 Ajax를 이용하여 Sodium function 을 서비스 합니다

+ 56 - 0
1.reference-manual/문자전송-소유자변경.md

@@ -0,0 +1,56 @@
+
+
+## 문자발송자 변경 이란 ?
+
+문자발송 소유자 변경을 통하여 문자 발송시 발생하는 비용과 내부 통제를 할 수 있습니다. 
+
+- [서비스 리스트] - (!주의) 해당 업체에서 고객 등록 후 사용료를 선불하신 후 사용가능합니다. 
+
+- (알리고: Aligo) https://smartsms.aligo.in
+
+
+## 변경 절차 
+1) 회원가입 및 비용 지불
+
+2) 아이디/비번/API Key 설정합니다.
+
+3) Frontend(Laravel PHP)의 서버 IP 를 알리고 서비스에 등록합니다.
+
+   그렇지 않으면 서버의 IP가 차단되어 문자가 가지 않습니다. 
+
+4) ERP 사용 비번과 API 키 변경 : ERP / 쇼핑몰 관리자에서 아래와 같이 변경합니다.
+
+5) 추가 사용자 등록을 통하여 제대로 문자가 가는지 반드시 확인합니다. 
+
+
+
+
+
+## Frontend(Laravel PHP) ERP 사용 비번과 API 키 변경 방법
+
+1) 관리자매뉴 (매장관리 또는 설정관리 에서 ) 통합설정 - 조회선택 - 설정이름 선택 - 문자전송 입력 후 리스트 클릭하면
+
+2) "문자전송(알리고)"가 리스트에 보입니다. 해당 "설정이름"을 항목을 클릭하면 입력 팝업 화면이 올라오는데
+
+3) 알리고에서 제공된 API 키 와 UserId, Sender(모바일폰 번호)를 입력하면 됩니다. 그 이외의 항목들은 특수 용도에만
+   
+   사용하게 되므로 관여하지 않아도 됩니다.
+
+4) 입력 후 저장 버튼을 클릭하면 DB에도 저장이 되지만 $HOME 폴더의 .env 화일에 아래와 같이 저장됩니다.
+
+#### 
+    # [SMS]
+    SMS_TYPE=
+    SMS_APIKEY=
+    SMS_USER=
+    SMS_SENDER=
+
+
+5) .env 파일에 SMS_TYPE, SMS_APIKEY, SMS_USER, SMS_SENDER 입력한 값으로 변경 되었는지 확인합니다.
+
+6) 만약 값 입력값 대로 변화되지 않으면  .env 화일 소유권/권한을 확인하여 수정하여 변경된 것이 저장될 수 있도록 하여야 합니다.
+
+7) 해당 내용은 Frontend 패아지 전역에서 사용되고 필요시에는 Backend API 에서도 사용되므로 속도와 편의성을 감안하여 위와 같이 구성되었습니다.
+
+
+