diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..1868dd6267e491ee01f8726f7d03099e7a38dcc6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,36 @@
+*.pyc
+.idea
+build
+sandbox
+
+tests/dockerfiles/
+.tox/
+docs/_build/
+media/logo_design/
+DEV/
+.pytest_cache/
+.vscode/
+
+pip-selfcheck.json
+
+html-coverage
+html-report
+
+.~lock.*
+*.dot
+*.svg
+
+
+dist
+*egg-info
+
+*/.ipynb_checkpoints
+
+*/__pycache__
+*/*.pyc
+.ipynb_checkpoints
+
+.eggs
+
+artifacts
+
diff --git a/.idea/fund_report.iml b/.idea/fund_report.iml
index f3d7bc9c9d036a32dfe9c30113dafdf14174715b..d7db3b16926e43cee4fd69e43ee20e1f3c0fbc8c 100644
--- a/.idea/fund_report.iml
+++ b/.idea/fund_report.iml
@@ -2,7 +2,7 @@
 <module type="PYTHON_MODULE" version="4">
   <component name="NewModuleRootManager">
     <content url="file://$MODULE_DIR$" />
-    <orderEntry type="jdk" jdkName="Python 3.7" jdkType="Python SDK" />
+    <orderEntry type="jdk" jdkName="Python 3.8" jdkType="Python SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
   <component name="TestRunnerService">
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 865611434f0cce78ec2223c6c4d52a717e8ec1c1..6649a8c6e4382a796b26d73769fa70496803daa0 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
   <component name="JavaScriptSettings">
     <option name="languageLevel" value="ES6" />
   </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
 </project>
\ No newline at end of file
diff --git a/app/__pycache__/__init__.cpython-38.pyc b/app/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index e53a08d2a5791386fbc60f79103004953edd8dd0..0000000000000000000000000000000000000000
Binary files a/app/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/app/api/__pycache__/__init__.cpython-38.pyc b/app/api/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index e2e13a3b72eb95d63154f0ce11c57e4b298bb1e3..0000000000000000000000000000000000000000
Binary files a/app/api/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/app/api/__pycache__/engine.cpython-38.pyc b/app/api/__pycache__/engine.cpython-38.pyc
deleted file mode 100644
index a5b6d03c3b10ee58b05b2a541a36b5434460a49a..0000000000000000000000000000000000000000
Binary files a/app/api/__pycache__/engine.cpython-38.pyc and /dev/null differ
diff --git a/app/model/__pycache__/__init__.cpython-38.pyc b/app/model/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index fcf05d65c32731d0c56877040e156ba2685fbae6..0000000000000000000000000000000000000000
Binary files a/app/model/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/app/model/__pycache__/base.cpython-38.pyc b/app/model/__pycache__/base.cpython-38.pyc
deleted file mode 100644
index 0d510029b3483b9891827ea5de67bc1e8d9663bc..0000000000000000000000000000000000000000
Binary files a/app/model/__pycache__/base.cpython-38.pyc and /dev/null differ
diff --git a/app/model/__pycache__/order.cpython-38.pyc b/app/model/__pycache__/order.cpython-38.pyc
deleted file mode 100644
index 14d2576d60234a179daa852193af6a73202da72f..0000000000000000000000000000000000000000
Binary files a/app/model/__pycache__/order.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/__init__.cpython-38.pyc b/app/pypfopt/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index d09291a483317eec01e8a38da1f4ce38801f5f5d..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/base_optimizer.cpython-38.pyc b/app/pypfopt/__pycache__/base_optimizer.cpython-38.pyc
deleted file mode 100644
index 7b000bddc80c0285d68d1baee00185518944a588..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/base_optimizer.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/black_litterman.cpython-38.pyc b/app/pypfopt/__pycache__/black_litterman.cpython-38.pyc
deleted file mode 100644
index 0eec2dba3aee9e6b9179c00939a7dcbe997e3bdc..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/black_litterman.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/cla.cpython-38.pyc b/app/pypfopt/__pycache__/cla.cpython-38.pyc
deleted file mode 100644
index a6770b6b4a7b6b0fe0bd976d84610ff43b25828f..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/cla.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/discrete_allocation.cpython-38.pyc b/app/pypfopt/__pycache__/discrete_allocation.cpython-38.pyc
deleted file mode 100644
index 85932db3775efcf3532502c1cfbfe635eeedc1c5..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/discrete_allocation.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/efficient_frontier.cpython-38.pyc b/app/pypfopt/__pycache__/efficient_frontier.cpython-38.pyc
deleted file mode 100644
index 2fc36c6643677aafe563ac089742656ed0b070c5..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/efficient_frontier.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/exceptions.cpython-38.pyc b/app/pypfopt/__pycache__/exceptions.cpython-38.pyc
deleted file mode 100644
index 283fb07e6ddf77530e9a59ed8997ad5162e051c9..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/exceptions.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/expected_returns.cpython-38.pyc b/app/pypfopt/__pycache__/expected_returns.cpython-38.pyc
deleted file mode 100644
index f616ccb664df76a954fc184660a6e9bc9e5c1c80..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/expected_returns.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/hierarchical_portfolio.cpython-38.pyc b/app/pypfopt/__pycache__/hierarchical_portfolio.cpython-38.pyc
deleted file mode 100644
index 89ae61151bee2642cbbed78ee75d421cb7c1ab91..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/hierarchical_portfolio.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/objective_functions.cpython-38.pyc b/app/pypfopt/__pycache__/objective_functions.cpython-38.pyc
deleted file mode 100644
index dc06587f3862c6eb86ec79499ce55b6dcf066a05..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/objective_functions.cpython-38.pyc and /dev/null differ
diff --git a/app/pypfopt/__pycache__/risk_models.cpython-38.pyc b/app/pypfopt/__pycache__/risk_models.cpython-38.pyc
deleted file mode 100644
index 1b37acf53bb1f35ef5969439d9bf7eefa3fda436..0000000000000000000000000000000000000000
Binary files a/app/pypfopt/__pycache__/risk_models.cpython-38.pyc and /dev/null differ
diff --git a/app/service/__pycache__/__init__.cpython-38.pyc b/app/service/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index 8f26d66033123cb6e1e185804184bbde94bf0db1..0000000000000000000000000000000000000000
Binary files a/app/service/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/app/service/__pycache__/data_service.cpython-38.pyc b/app/service/__pycache__/data_service.cpython-38.pyc
deleted file mode 100644
index f8ab15656126d7c990669bf3323e6c8f9e29ac38..0000000000000000000000000000000000000000
Binary files a/app/service/__pycache__/data_service.cpython-38.pyc and /dev/null differ
diff --git a/app/service/__pycache__/result_service.cpython-38.pyc b/app/service/__pycache__/result_service.cpython-38.pyc
deleted file mode 100644
index 15505d4965e4fc2615881df286f6fa72923ef91d..0000000000000000000000000000000000000000
Binary files a/app/service/__pycache__/result_service.cpython-38.pyc and /dev/null differ
diff --git a/app/service/data_service.py b/app/service/data_service.py
index 14422f3feccdbfe62d280904d921deeb30d37d09..84b47f97e7c907ecf199dc4942b28cd6caaa3ede 100644
--- a/app/service/data_service.py
+++ b/app/service/data_service.py
@@ -292,7 +292,7 @@ class UserCustomerDataAdaptor:
                 # cnav_df[cur_fund_id + "_profit_ratio"] = cnav_df[cur_fund_id + "_profit_ratio"].fillna(Decimal(0))
                 # cnav_df[cur_fund_id + "_amount"] = 0
                 # cnav_df[cur_fund_id + "_earn"] = 0
-                # # cnav_df[cur_fund_id + "_cum_earn"] = 0
+                # cnav_df[cur_fund_id + "_cum_earn"] = 0
                 # cnav_df[cur_fund_id + "_share"] = 0
 
             # buy
diff --git a/app/utils/__pycache__/__init__.cpython-38.pyc b/app/utils/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index 00b12a47217433e2797b6a2b1ce7901c2d3fc96a..0000000000000000000000000000000000000000
Binary files a/app/utils/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/app/utils/__pycache__/fund_rank.cpython-38.pyc b/app/utils/__pycache__/fund_rank.cpython-38.pyc
deleted file mode 100644
index 7a7ee50c9f3dc736e1383803e454a1b132071f48..0000000000000000000000000000000000000000
Binary files a/app/utils/__pycache__/fund_rank.cpython-38.pyc and /dev/null differ
diff --git a/app/utils/__pycache__/risk_parity.cpython-38.pyc b/app/utils/__pycache__/risk_parity.cpython-38.pyc
deleted file mode 100644
index 56d95c688d1c559bed58f453f86a0bf76f20e672..0000000000000000000000000000000000000000
Binary files a/app/utils/__pycache__/risk_parity.cpython-38.pyc and /dev/null differ
diff --git a/app/utils/__pycache__/week_evaluation.cpython-38.pyc b/app/utils/__pycache__/week_evaluation.cpython-38.pyc
deleted file mode 100644
index 2ade0e4f886de25badcfca849e1ba750b7ed48d4..0000000000000000000000000000000000000000
Binary files a/app/utils/__pycache__/week_evaluation.cpython-38.pyc and /dev/null differ