diff --git a/.codebeatignore b/.codebeatignore
new file mode 100644
index 0000000000000000000000000000000000000000..7f65077bf48ec9dd0f3f3dc454b0c2ecafa06c45
--- /dev/null
+++ b/.codebeatignore
@@ -0,0 +1,3 @@
+docs/**
+tests/**
+
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000000000000000000000000000000000000..bdce7faabb49c4c058c632f1fe1e7b00163bd509
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,24 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: "[BUG] "
+labels: bug, new
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md
new file mode 100644
index 0000000000000000000000000000000000000000..d575df3e11bdbaf39218162822b8eb96ca8a401c
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/custom.md
@@ -0,0 +1,10 @@
+---
+name: Custom issue template
+about: Describe this issue template's purpose here.
+title: ''
+labels: new
+assignees: ''
+
+---
+
+
diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md
new file mode 100644
index 0000000000000000000000000000000000000000..d1c54acca1ca3709c538c104e47b09140fff0bd8
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature.md
@@ -0,0 +1,17 @@
+---
+name: Feature
+about: Create a report to help us improve
+title: "[Feature] "
+labels: feature, new
+assignees: ''
+
+---
+
+**Describe the feature**
+A clear and concise description of what the feature is.
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Additional context**
+Add any other context about the feature here.
diff --git a/.github/ISSUE_TEMPLATE/maintenance.md b/.github/ISSUE_TEMPLATE/maintenance.md
new file mode 100644
index 0000000000000000000000000000000000000000..f0da599435c5341fee20fb8b5f7abc35bf312902
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/maintenance.md
@@ -0,0 +1,17 @@
+---
+name: Maintenance
+about: Create a report to help us improve
+title: "[Maintenance] "
+labels: maintenance, new
+assignees: ''
+
+---
+
+**Describe the feature**
+A clear and concise description of what the feature is.
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Additional context**
+Add any other context about the feature here.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..bdb4d680670163548a90146b6ee745772fb20070
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,67 @@
+*.pyc
+__pycache__
+
+.DS_Store
+
+# pycharm
+.idea
+
+# vscode
+.vscode
+
+# data
+data/**/train.json
+data/**/val.json
+data/**/test.json
+data/camrest/CamRest676_v2.json
+data/multiwoz/annotated_user_da_with_span_full.json
+data/schema/dstc8-schema-guided-dialogue-master
+**/processed_data/*
+data/mdbt/data
+data/mdbt/models
+data/mdbt/word-vectors
+convlab2/nlg/sclstm/**/resource/*
+convlab2/nlg/sclstm/**/resource_usr/*
+convlab2/nlg/sclstm/**/sclstm.pt
+convlab2/nlg/sclstm/**/sclstm.res
+convlab2/nlg/sclstm/**/sclstm.log
+convlab2/nlg/sclstm/**/sclstm_usr.pt
+convlab2/nlg/sclstm/**/sclstm_usr.res
+convlab2/nlg/sclstm/**/sclstm_usr.log
+convlab2/nlu/jointBERT/**/output/
+convlab2/dst/sumbt/multiwoz/output/
+convlab2/nlg/sclstm/**/generated_sens_sys.json
+convlab2/nlg/template/**/generated_sens_sys.json
+# test script
+*_test.py
+
+# log
+**/log/**
+*.log
+
+# save
+**/save/**
+
+# .bak.py
+*.bak.py
+
+# compile files
+build
+dist
+convlab2.egg-info
+
+# configs
+
+
+.ipynb_checkpoints
+
+## dst files
+convlab2/dst/trade/crosswoz/data/
+convlab2/dst/trade/crosswoz/model/
+convlab2/dst/trade/crosswoz_config/
+convlab2/dst/trade/multiwoz/data/
+convlab2/dst/trade/multiwoz/model/
+convlab2/dst/trade/multiwoz_config/
+deploy/bert_multiwoz_all.zip
+deploy/templates/dialog_eg.html
+test.py
diff --git a/.travis.yml b/.travis.yml
new file mode 100755
index 0000000000000000000000000000000000000000..71ea2f1b67e31dcda33e3fc7a9701c8cd999a98e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,39 @@
+language: python
+
+python:
+  - 3.6
+
+cache: pip
+
+install:
+  - pip install --upgrade pip
+  - pip install --progress-bar off -e .[develop]
+  - pip install sphinx
+
+script:
+  # - python setup.py test
+  - cd docs && rm source/convlab2.*.rst
+  - sphinx-apidoc -o ./source ../convlab2/
+  - cd source && python gen_rst.py --project convlab2 && cd ..
+  - make html
+  - cd source
+  - python modify_py_modindex.py -d ../build/html/
+  - cd ..
+  - mv ./build/html ./build/docs && rm -r ./build/doctrees && mv LICENSE.txt ./build && mv README.md ./build && cd ..
+  
+deploy:
+  - provider: pages
+    skip-cleanup: true
+    github-token: $DEPLOY_KEY
+    keep-history: true
+    repo: thu-coai/convlab2_docs
+    target-branch: master
+    local-dir: ./docs/build
+    on:
+      branch: master
+  - provider: script
+    skip-cleanup: true
+    script: coveralls
+    on:
+      all_branches: true
+      condition: true