DO NOT MERGE: Merge Oreo MR1 into master

Exempt-From-Owner-Approval: Changes already landed internally
Change-Id: I58939894be9fc8b85fe0cd4bdc629f198f4ed649
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7e99e36
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*.pyc
\ No newline at end of file
diff --git a/app.yaml b/app.yaml
new file mode 100644
index 0000000..f041d38
--- /dev/null
+++ b/app.yaml
@@ -0,0 +1,7 @@
+runtime: python27
+api_version: 1
+threadsafe: true
+
+handlers:
+- url: /.*
+  script: main.app
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..cacff94
--- /dev/null
+++ b/main.py
@@ -0,0 +1,26 @@
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import webapp2
+
+
+class MainPage(webapp2.RequestHandler):
+    def get(self):
+        self.response.headers['Content-Type'] = 'text/plain'
+        self.response.write('VTS Fuzzing Dashboard')
+
+
+app = webapp2.WSGIApplication([
+    ('/', MainPage),
+], debug=True)
diff --git a/main_test.py b/main_test.py
new file mode 100644
index 0000000..b56cc52
--- /dev/null
+++ b/main_test.py
@@ -0,0 +1,26 @@
+# Copyright 2017 Google Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import webtest
+
+import main
+
+
+def test_get():
+    app = webtest.TestApp(main.app)
+
+    response = app.get('/')
+
+    assert response.status_int == 200
+    assert response.body == 'VTS Fuzzing Dashboard'