Background Global Trace enables brands, producers, and manufacturers to track and trace products while detecting supplier risk through their entire supply chain. Global Trace is an interoperable and commodity-agnostic tool, created to respond to increasing demands for responsibly produced products. Global Trace can facilitate mapping between supply chain tiers, tracing of product inputs, and management of risk assessment data from source to the point of purchase. It is widely understood that tracing goods is critical for identifying, addressing, and preventing labor violations in global supply chains.
Global Trace enables brands, producers, and manufacturers to track and trace products while detecting supplier risk through their entire supply chain. Global Trace is an interoperable and commodity-agnostic tool, created to respond to increasing demands for responsibly produced products. Global Trace can facilitate mapping between supply chain tiers, tracing of product inputs, and management of risk assessment data from source to the point of purchase. It is widely understood that tracing goods is critical for identifying, addressing, and preventing labor violations in global supply chains.
Global Trace was engineered to be customizable and flexible to accommodate any type of supply chain. Six configuration steps are required to set up an "instance" of Global Trace specific to the needs of the organization managing the deployment of the system. These steps are further detailed below in the Technical Documentation.
- Define the products in the supply chain and assign Key Data Elements (KDEs) to each product.
- Define the user roles and user permissions in the Global Trace instance.
- Create a tier map of the supply chain, showing how products will flow and where Critical Tracking Events (CTEs) occur. Assign input and output products (defined in Step 1) for each transformation per Role (defined in Step 2).
- Define a risk management taxonomy (list of indicators) to be used as the framework upon which users will combine Risk Assessment reports and other data inputs.
- Upload the assessments or self-assessment questionnaires (SAQs) to be used for each Producer Role (defined in Step 2). Questions in each assessment will align with the List of Indicators (defined in Step 4) and responses will contribute to the overall risk associated with a producer.
- Specify the method by which various assessment inputs will be combined to determine the overall risk associated with a Producer. These inputs can include: external risk indices, assessment or SAQ responses (defined in Step 5), DNA test results, and compliance reports filed by assessors (defined in Step 2).
Please find user support resources here including links to training videos and user manuals. Please also review the Appendix of this page below for more information, including the best practice guidance provided in the Appendix F.
The technical documentation page is designed for developers, providing an in-depth description of the code behind the Global Trace platform. For more practical information on Global Trace, due diligence and risk management, please visit Global Trace Protocol (GTP) Project website. to navigate to the technical documentation page.
Follow this link to navigate to the technical documentation page.
.
βββ assets
β βββ fonts # Font icons
β βββ data # Data sources
β βββ images # Image files ( SVG, PNG, JPG )
βββ i18n # Translate languages
β βββ en.json
β βββ vi.json
βββ dist # Build folder for dev-server watch source code
βββ public # Build folder for deploy production
βββ server # Server side rendering
β βββ app.js # Create app for server side render
β βββ App.vue # App Vue template
β βββ index.js # Run app server
βββ deploy # Deploy slack bot
βββ environments # Deploy environments
βββ src
β βββ api # API Request
β βββ components # Vue Components
β βββ modals # Modal view
β βββ config # Config router, constant
β βββ containers # Container subview for page ( include by component view, modal view, etc... )
β βββ pages # Page view for each routes
β βββ store # Root store for app
β βββ styles
β βββ types # Define types for each module
β βββ utils
β βββ main.ts
βββ webpack
β βββ base.js # Base webpack config
β βββ dev.js # Webpack config for dev-server watch source code
β βββ production.js # Webpack config for build production
β βββ server.js # Webpack config for server side render
β βββ index.js # Webpack config load ENV
βββ .env # ENV config for webpack builder ( API, APP_URL, NODE_ENV, PORT, etc... )
βββ .env.development # ENV config info ( helpful clone to .env file )
βββ .eslintignore # Ignore validate EsLint some files
βββ .eslintrc # EsLint config
βββ .nvmrc # Project nodejs version
βββ .prettierignore # Ignore validate Prettier some files
βββ .prettierrc # Prettier config
βββ .stylelintrc # Stylelint config
βββ babel.config.js # Babel plugins config
βββ index.html
βββ package.json
βββ server.js # Server side render app run
βββ tsconfig.json # Typescript config
βββ webpack.config.js # Load from folder Webpack
βββ yarn.lock
βββ ...
- Eslint
- CSSlint
- Typescript
- Linter
- Linter EsLint
- Prettier
- Vue 2
- Webpack 5
- Webpack plugins ( uglifyjs, compression, manifest, preload resources, optimize module loader, etc... )
- Typescript
- ESLint / TSLint / Stylint
- Use nodejs version 16
Clone .env.development to .env file
APP_URL=
API_URL=
NODE_ENV=development
PORT=3000
DEBUG=false
SSR=false
SSR_PORT=5000
- Install node_modules
yarn install - Run server-dev local
yarn devNODE_ENV=development
- Build production
yarn startNODE_ENV=production
- Run server side render
- Nginx config example
server {
listen 80;
server_name test.local.com;
root /var/www/esglibrary-frontend/public; # public for build production
index index.html index.htm;
if ($http_x_forwarded_proto = http) {
return 301 https://$server_name$request_uri;
}
location / {
try_files $uri$args $uri$args/ $uri $uri/ /index.html =404;
}
location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ {
gzip_static off;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 30d;
break;
}
location ~* \.(txt|js|css)$ {
add_header Pragma public;
add_header Content-Encoding gzip; # This config for gzip files ( css, js )
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
expires 30d;
break;
}
}
- Please create new brand with your issue.
- Please pull new code from develop brand before checkout your brand
- Branch naming
- feat/USDOL-xxx
- fix/USDOL-xxx
- refactor/USDOL-xxx
- docs/USDOL-xxx
- style/USDOL-xxx
- perf/USDOL-xxx
- vendor/USDOL-xxx
- chore/USDOL-xxx
- Please don't include anything that not been developed by you.
- Please don't commit anything that can be regenerated from other things that were committed such as node_modules.
- Your code, you must be cleanup and please check format code before commit ( tabs, spaces, blank )
- In your message commit, please reference your issue for review task. Ex:
git commit -m"[feat][USDOL-1] Message - Commit message
MUSTclean ( commit code detail, message fix bug, etc... ) How to write good message - Please using develop brand for development and don't use master brand.
- Merge code from develop brand and if conflict please fix conflict.
- Make sure eslint / tslint has verified ( please don't use git commit option
--no-verify) - Don't use
git rebasegit resetgit force
- Create new pull request with your brand and merge to develop brand.
- Add reviewers for review your pull request.
- When you create new pull request if you see conflict, please decline pull request and fix.
- Pull request
MUSTto have video record / image evidence for task result your commit. - Pull request title
MUSTclean and have ticket ID. Ex: [feat][usdol-1] Implement SignIn page