Add base project structure and files
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..2c50915
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,307 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
+******************************************
+
+======================================
+ LICENSES FOR INCLUDED DEPENDENCIES
+======================================
+
+All the source code for the Apache Fineract project is released under the
+license above. Additionally, the Apache Fineract source and binary
+distribution includes a number of third-party files that are required in
+order to the software to function. Unless noted below, these jars
+and resource files are also released under the ASF license above.
+
+==================================================
+*The exceptions for binary release are as follows:
+==================================================
+This product bundles AOP Alliance v1.0, which is available under a
+Public Domain license. For details, see licenses/binary/Aopa.PL
+
+This product bundles ASM Core v3.1, which is available under a BSD license.
+For details, see licenses/binary/Asm.BSD
+
+This product bundles JavaMail API(compat) v1.5.0-b01,
+which is available under a CDDL v1.0 license.
+For details, see licenses/binary/Javamail.CDDL
+
+This product bundles AspectJ Runtime v1.8.2, Copyright (c) 1999-2001
+Xerox Corporation, 2002 Palo Alto Research Center, Incorporated (PARC),
+which is available under a EPL v1.0 license.
+For details, see licenses/binary/Aspectrt.EPL
+
+This product bundles AspectJ Weaver v1.8.2, Copyright (c) 2002 Palo Alto
+Research Center, Incorporated (PARC), which is available under a EPL v1.0
+license. For details, see licenses/binary/Aspectweaver.EPL
+
+This product bundles IText(A Free Java PDF Library) v2.1.7, Copyright 2007
+Bruno Lowagie, which is available under a MPL v1.1 license.
+For details, see licenses/binary/IText.MPL
+
+This product bundles DOM4J, Copyright 2001-2005 (C) MetaStuff, Ltd.,
+which is available under a BSD license.
+For details, see licenses/binary/Dom4J.BSD
+
+This product bundles JDBC driver for MySQL and Drizzle v1.3, Copyright (c)
+2009-2013, Marcus Eriksson which is available under a BSD license.
+For details, see licenses/binary/Drizzle.BSD
+
+This product bundles Ical4J v1.0.4, Copyright (c) 2012, Ben Fortuna,
+which is available under a BSD license.
+For details, see licenses/binary/Ical4J.BSD
+
+This product bundles Jersey Core v1.17, Copyright (c) 2010-2012 Oracle
+and/or its affiliates, which is available under a CDDL 1.1 license.
+For details, see licenses/binary/Jersey.CDDL
+
+This product bundles Jersey Json v1.17, Copyright (c) 2010-2012 Oracle
+and/or its affiliates, which is available under a CDDL 1.1 license.
+For details, see licenses/binary/Jersey.CDDL
+
+This product bundles Jersey Multipart v1.17, Copyright (c) 2010-2011 Oracle
+and/or its affiliates, which is available under a CDDL 1.1 license.
+For details, see licenses/binary/Jersey.CDDL
+
+This product bundles Jersey Server v1.17, Copyright (c) 2010-2011 Oracle
+and/or its affiliates, which is available under a CDDL 1.1 license.
+For details, see licenses/binary/Jersey.CDDL
+
+This product bundles Jersey Servlet v1.17, Copyright (c) 2010-2011 Oracle
+and/or its affiliates, which is available under a CDDL 1.1 license.
+For details, see licenses/binary/Jersey.CDDL
+
+This product bundles Jersey Spring v1.17, Copyright (c) 2010-2011 Oracle
+and/or its affiliates, which is available under a CDDL 1.1 license.
+For details, see licenses/binary/Jersey.CDDL
+
+This product bundles Logback Classic Module v1.1.2, Copyright (C) 1999-2012,
+QOS.ch. All rights reserved, which is available under a EPL v1.0 license.
+For details, see licenses/binary/Logback.EPL
+
+This product bundles Logback Core Module v1.1.2, Copyright (C) 1999-2012,
+QOS.ch. All rights reserved, which is available under a EPL v1.0 license.
+For details, see licenses/binary/Logback.EPL
+
+This product bundles MIME Streaming Extension v1.6, Copyright (c) 1997-2010
+Oracle and/or its affiliates. All rights reserved., which is available under
+a CDDL v1.1 license.
+For details, see licenses/binary/Mimepull.CDDL
+
+This product bundles JUnit v3.8.1 created by Erich Gamma and Kent Beck which
+is available under a CPL v1.0 license.
+For details, see licenses/binary/Junit.CPL
+
+This product bundles SLF4J API Module v1.7.7 opyright (c) 2004-2013 QOS.ch
+All rights reserved., which is available under a MIT license.
+For details, see licenses/binary/Slf4j.MIT
+
+This product bundles Backport Util Concurrent v3.1 written by Dawid Kurzyniec,
+which is avilable under Public Domain license.
+For details see licenses/binary/Backport.PL
+
+This product bundles JarAnalyzer v1.2 written by Kirk Knoernschild,
+which is available under BSD license.
+For details see licences/binary/JarAnalyzer.BSD
+
+******************************************
\ No newline at end of file
diff --git a/api/__init__.py b/api/__init__.py
new file mode 100644
index 0000000..555eccf
--- /dev/null
+++ b/api/__init__.py
@@ -0,0 +1,17 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
diff --git a/api/admin.py b/api/admin.py
new file mode 100644
index 0000000..9a206ea
--- /dev/null
+++ b/api/admin.py
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+from django.contrib import admin
+
+# Register your models here.
diff --git a/api/apps.py b/api/apps.py
new file mode 100644
index 0000000..948a9b8
--- /dev/null
+++ b/api/apps.py
@@ -0,0 +1,23 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+from django.apps import AppConfig
+
+
+class ApiConfig(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = 'api'
diff --git a/api/migrations/__init__.py b/api/migrations/__init__.py
new file mode 100644
index 0000000..555eccf
--- /dev/null
+++ b/api/migrations/__init__.py
@@ -0,0 +1,17 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
diff --git a/api/models.py b/api/models.py
new file mode 100644
index 0000000..b645262
--- /dev/null
+++ b/api/models.py
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+from django.db import models
+
+# Create your models here.
diff --git a/api/serializers.py b/api/serializers.py
new file mode 100644
index 0000000..7630270
--- /dev/null
+++ b/api/serializers.py
@@ -0,0 +1,31 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+from django.contrib.auth.models import User, Group
+from rest_framework import serializers
+
+
+class UserSerializer(serializers.HyperlinkedModelSerializer):
+ class Meta:
+ model = User
+ fields = ['url', 'username', 'email', 'groups']
+
+
+class GroupSerializer(serializers.HyperlinkedModelSerializer):
+ class Meta:
+ model = Group
+ fields = ['url', 'name']
diff --git a/api/tests.py b/api/tests.py
new file mode 100644
index 0000000..9f4bf12
--- /dev/null
+++ b/api/tests.py
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/api/views.py b/api/views.py
new file mode 100644
index 0000000..55297d5
--- /dev/null
+++ b/api/views.py
@@ -0,0 +1,40 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+from api.serializers import GroupSerializer, UserSerializer
+from django.contrib.auth.models import Group, User
+from rest_framework import viewsets, permissions
+from django.shortcuts import render
+
+# Create your views here.
+
+class UserViewSet(viewsets.ModelViewSet):
+ """
+ API endpoint that allows users to be viewed or edited.
+ """
+ queryset = User.objects.all().order_by('-date_joined')
+ serializer_class = UserSerializer
+ permission_classes = []
+
+
+class GroupViewSet(viewsets.ModelViewSet):
+ """
+ API endpoint that allows groups to be viewed or edited.
+ """
+ queryset = Group.objects.all()
+ serializer_class = GroupSerializer
+ permission_classes = [permissions.IsAuthenticated]
\ No newline at end of file
diff --git a/app/__init__.py b/app/__init__.py
new file mode 100644
index 0000000..d81b0ff
--- /dev/null
+++ b/app/__init__.py
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Package for the application.
+"""
diff --git a/app/forms.py b/app/forms.py
new file mode 100644
index 0000000..85ed9a0
--- /dev/null
+++ b/app/forms.py
@@ -0,0 +1,35 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Definition of forms.
+"""
+
+from django import forms
+from django.contrib.auth.forms import AuthenticationForm
+from django.utils.translation import ugettext_lazy as _
+
+class BootstrapAuthenticationForm(AuthenticationForm):
+ """Authentication form which uses boostrap CSS."""
+ username = forms.CharField(max_length=254,
+ widget=forms.TextInput({
+ 'class': 'form-control',
+ 'placeholder': 'User name'}))
+ password = forms.CharField(label=_("Password"),
+ widget=forms.PasswordInput({
+ 'class': 'form-control',
+ 'placeholder':'Password'}))
diff --git a/app/migrations/__init__.py b/app/migrations/__init__.py
new file mode 100644
index 0000000..cce3aca
--- /dev/null
+++ b/app/migrations/__init__.py
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
diff --git a/app/models.py b/app/models.py
new file mode 100644
index 0000000..6bde428
--- /dev/null
+++ b/app/models.py
@@ -0,0 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Definition of models.
+"""
+
+from django.db import models
+
+# Create your models here.
diff --git a/app/templates/app/about.html b/app/templates/app/about.html
new file mode 100644
index 0000000..3e0cfbe
--- /dev/null
+++ b/app/templates/app/about.html
@@ -0,0 +1,10 @@
+{% extends "app/layout.html" %}
+
+{% block content %}
+
+<h2>{{ title }}.</h2>
+<h3>{{ message }}</h3>
+
+<p>Use this area to provide additional information.</p>
+
+{% endblock %}
diff --git a/app/templates/app/contact.html b/app/templates/app/contact.html
new file mode 100644
index 0000000..85346f1
--- /dev/null
+++ b/app/templates/app/contact.html
@@ -0,0 +1,20 @@
+{% extends "app/layout.html" %}
+
+{% block content %}
+
+<h2>{{ title }}.</h2>
+<h3>{{ message }}</h3>
+
+<address>
+ One Microsoft Way<br />
+ Redmond, WA 98052-6399<br />
+ <abbr title="Phone">P:</abbr>
+ 425.555.0100
+</address>
+
+<address>
+ <strong>Support:</strong> <a href="mailto:Support@example.com">Support@example.com</a><br />
+ <strong>Marketing:</strong> <a href="mailto:Marketing@example.com">Marketing@example.com</a>
+</address>
+
+{% endblock %}
diff --git a/app/templates/app/index.html b/app/templates/app/index.html
new file mode 100644
index 0000000..b502e38
--- /dev/null
+++ b/app/templates/app/index.html
@@ -0,0 +1,33 @@
+{% extends "app/layout.html" %}
+
+{% block content %}
+
+<div class="jumbotron">
+ <h1>Django</h1>
+ <p class="lead">Django is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
+ <p><a href="https://www.djangoproject.com/" class="btn btn-primary btn-large">Learn more »</a></p>
+</div>
+
+<div class="row">
+ <div class="col-md-4">
+ <h2>Getting started</h2>
+ <p>
+ Django gives you a powerful, patterns-based way to build dynamic websites that
+ enables a clean separation of concerns and gives you full control over markup
+ for enjoyable, agile development.
+ </p>
+ <p><a class="btn btn-default" href="https://djangobook.com/django-tutorials/">Learn more »</a></p>
+ </div>
+ <div class="col-md-4">
+ <h2>Get more libraries</h2>
+ <p>The Python Package Index is a repository of software for the Python programming language.</p>
+ <p><a class="btn btn-default" href="https://pypi.org/">Learn more »</a></p>
+ </div>
+ <div class="col-md-4">
+ <h2>Microsoft Azure</h2>
+ <p>You can easily publish to Microsoft Azure using Visual Studio. Find out how you can host your application using a free trial today.</p>
+ <p><a class="btn btn-default" href="http://azure.microsoft.com">Learn more »</a></p>
+ </div>
+</div>
+
+{% endblock %}
diff --git a/app/templates/app/layout.html b/app/templates/app/layout.html
new file mode 100644
index 0000000..4bfc1c6
--- /dev/null
+++ b/app/templates/app/layout.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>{{ title }} - My Django Application</title>
+ {% load static %}
+ <link rel="stylesheet" type="text/css" href="{% static 'app/content/bootstrap.min.css' %}" />
+ <link rel="stylesheet" type="text/css" href="{% static 'app/content/site.css' %}" />
+ <script src="{% static 'app/scripts/modernizr-2.6.2.js' %}"></script>
+</head>
+
+<body>
+ <div class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a href="/" class="navbar-brand">Application name</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="{% url 'home' %}">Home</a></li>
+ <li><a href="{% url 'about' %}">About</a></li>
+ <li><a href="{% url 'contact' %}">Contact</a></li>
+ </ul>
+ {% include 'app/loginpartial.html' %}
+ </div>
+ </div>
+ </div>
+
+ <div class="container body-content">
+{% block content %}{% endblock %}
+ <hr/>
+ <footer>
+ <p>© {{ year }} - My Django Application</p>
+ </footer>
+ </div>
+
+ <script src="{% static 'app/scripts/jquery-1.10.2.js' %}"></script>
+ <script src="{% static 'app/scripts/bootstrap.js' %}"></script>
+ <script src="{% static 'app/scripts/respond.js' %}"></script>
+{% block scripts %}{% endblock %}
+
+</body>
+</html>
diff --git a/app/templates/app/login.html b/app/templates/app/login.html
new file mode 100644
index 0000000..a2cb15c
--- /dev/null
+++ b/app/templates/app/login.html
@@ -0,0 +1,50 @@
+{% extends "app/layout.html" %}
+
+{% block content %}
+
+<h2>{{ title }}</h2>
+<div class="row">
+ <div class="col-md-8">
+ <section id="loginForm">
+ <form action="." method="post" class="form-horizontal">
+ {% csrf_token %}
+ <h4>Use a local account to log in.</h4>
+ <hr />
+ <div class="form-group">
+ <label for="id_username" class="col-md-2 control-label">User name</label>
+ <div class="col-md-10">
+ {{ form.username }}
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="id_password" class="col-md-2 control-label">Password</label>
+ <div class="col-md-10">
+ {{ form.password }}
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <input type="hidden" name="next" value="/" />
+ <input type="submit" value="Log in" class="btn btn-default" />
+ </div>
+ </div>
+ {% if form.errors %}
+ <p class="validation-summary-errors">Please enter a correct user name and password.</p>
+ {% endif %}
+ </form>
+ </section>
+ </div>
+ <div class="col-md-4">
+ <section id="socialLoginForm"></section>
+ </div>
+</div>
+
+{% endblock %}
+
+
+{% block scripts %}
+
+ {% load static %}
+<script src="{% static 'app/scripts/jquery.validate.min.js' %}"></script>
+
+{% endblock %}
diff --git a/app/templates/app/loginpartial.html b/app/templates/app/loginpartial.html
new file mode 100644
index 0000000..974ad86
--- /dev/null
+++ b/app/templates/app/loginpartial.html
@@ -0,0 +1,16 @@
+{% if user.is_authenticated %}
+<form id="logoutForm" action="/logout/" method="post" class="navbar-right">
+ {% csrf_token %}
+ <ul class="nav navbar-nav navbar-right">
+ <li><span class="navbar-brand">Hello {{ user.username }}!</span></li>
+ <li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
+ </ul>
+</form>
+
+{% else %}
+
+<ul class="nav navbar-nav navbar-right">
+ <li><a href="{% url 'login' %}">Log in</a></li>
+</ul>
+
+{% endif %}
diff --git a/app/tests.py b/app/tests.py
new file mode 100644
index 0000000..6aaff7c
--- /dev/null
+++ b/app/tests.py
@@ -0,0 +1,51 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+This file demonstrates writing tests using the unittest module. These will pass
+when you run "manage.py test".
+"""
+
+import django
+from django.test import TestCase
+
+# TODO: Configure your database in settings.py and sync before running tests.
+
+class ViewTest(TestCase):
+ """Tests for the application views."""
+
+ if django.VERSION[:2] >= (1, 7):
+ # Django 1.7 requires an explicit setup() when running tests in PTVS
+ @classmethod
+ def setUpClass(cls):
+ super(ViewTest, cls).setUpClass()
+ django.setup()
+
+ def test_home(self):
+ """Tests the home page."""
+ response = self.client.get('/')
+ self.assertContains(response, 'Home Page', 1, 200)
+
+ def test_contact(self):
+ """Tests the contact page."""
+ response = self.client.get('/contact')
+ self.assertContains(response, 'Contact', 3, 200)
+
+ def test_about(self):
+ """Tests the about page."""
+ response = self.client.get('/about')
+ self.assertContains(response, 'About', 3, 200)
diff --git a/app/views.py b/app/views.py
new file mode 100644
index 0000000..9415c13
--- /dev/null
+++ b/app/views.py
@@ -0,0 +1,62 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Definition of views.
+"""
+
+from datetime import datetime
+from django.shortcuts import render
+from django.http import HttpRequest
+
+def home(request):
+ """Renders the home page."""
+ assert isinstance(request, HttpRequest)
+ return render(
+ request,
+ 'app/index.html',
+ {
+ 'title':'Home Page',
+ 'year':datetime.now().year,
+ }
+ )
+
+def contact(request):
+ """Renders the contact page."""
+ assert isinstance(request, HttpRequest)
+ return render(
+ request,
+ 'app/contact.html',
+ {
+ 'title':'Contact',
+ 'message':'Your contact page.',
+ 'year':datetime.now().year,
+ }
+ )
+
+def about(request):
+ """Renders the about page."""
+ assert isinstance(request, HttpRequest)
+ return render(
+ request,
+ 'app/about.html',
+ {
+ 'title':'About',
+ 'message':'Your application description page.',
+ 'year':datetime.now().year,
+ }
+ )
diff --git a/manage.py b/manage.py
new file mode 100644
index 0000000..6950323
--- /dev/null
+++ b/manage.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Command-line utility for administrative tasks.
+
+# For more information about this file, visit
+# https://docs.djangoproject.com/en/2.1/ref/django-admin/
+"""
+
+import os
+import sys
+
+if __name__ == '__main__':
+ os.environ.setdefault(
+ 'DJANGO_SETTINGS_MODULE',
+ 'scorecardapp.settings')
+ try:
+ from django.core.management import execute_from_command_line
+ except ImportError as exc:
+ raise ImportError(
+ "Couldn't import Django. Are you sure it's installed and "
+ "available on your PYTHONPATH environment variable? Did you "
+ "forget to activate a virtual environment?"
+ ) from exc
+ execute_from_command_line(sys.argv)
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..32bd369
--- /dev/null
+++ b/requirements.txt
Binary files differ
diff --git a/scorecardapp/__init__.py b/scorecardapp/__init__.py
new file mode 100644
index 0000000..bef43cc
--- /dev/null
+++ b/scorecardapp/__init__.py
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Package for scorecardapp.
+"""
diff --git a/scorecardapp/settings.py b/scorecardapp/settings.py
new file mode 100644
index 0000000..ee5b4b4
--- /dev/null
+++ b/scorecardapp/settings.py
@@ -0,0 +1,132 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Django settings for scorecardapp project.
+
+Based on 'django-admin startproject' using Django 2.1.2.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/2.1/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/2.1/ref/settings/
+"""
+
+import os
+import posixpath
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'fd363ff3-ab24-476d-8409-9a45ab0300f9'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = []
+
+# Application references
+# https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-INSTALLED_APPS
+INSTALLED_APPS = [
+ 'app',
+ 'api',
+ # Add your apps here to enable them
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+ 'rest_framework',
+]
+
+# Middleware framework
+# https://docs.djangoproject.com/en/2.1/topics/http/middleware/
+MIDDLEWARE = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'scorecardapp.urls'
+
+# Template configuration
+# https://docs.djangoproject.com/en/2.1/topics/templates/
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'scorecardapp.wsgi.application'
+# Database
+# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+ }
+}
+
+# Password validation
+# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+# Internationalization
+# https://docs.djangoproject.com/en/2.1/topics/i18n/
+LANGUAGE_CODE = 'en-us'
+TIME_ZONE = 'UTC'
+USE_I18N = True
+USE_L10N = True
+USE_TZ = True
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/2.1/howto/static-files/
+STATIC_URL = '/static/'
+STATIC_ROOT = posixpath.join(*(BASE_DIR.split(os.path.sep) + ['static']))
diff --git a/scorecardapp/urls.py b/scorecardapp/urls.py
new file mode 100644
index 0000000..e86b6f8
--- /dev/null
+++ b/scorecardapp/urls.py
@@ -0,0 +1,60 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+Definition of urls for scorecardapp.
+"""
+
+from datetime import datetime
+from django.urls import path, include
+from django.contrib import admin
+from django.contrib.auth.views import LoginView, LogoutView
+from rest_framework import routers
+from app import forms, views
+from api import views as apiViews
+
+
+router = routers.DefaultRouter()
+router.register(r'users', apiViews.UserViewSet)
+router.register(r'groups', apiViews.GroupViewSet)
+
+
+urlpatterns = [
+ path('', views.home, name='home'),
+ path('contact', views.contact, name='contact'),
+ path('about', views.about, name='about'),
+ path('login',
+ LoginView.as_view
+ (
+ template_name='app/login.html',
+ authentication_form=forms.BootstrapAuthenticationForm,
+ extra_context=
+ {
+ 'title': 'Log in',
+ 'year' : datetime.now().year,
+ }
+ ),
+ name='login'),
+ path('logout/', LogoutView.as_view(next_page='/'), name='logout'),
+ path('admin/', admin.site.urls),
+
+ # API Views
+ # Wire up our API using automatic URL routing.
+ # Additionally, we include login URLs for the browsable API.
+ path('api/', include(router.urls)),
+ path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
+]
diff --git a/scorecardapp/wsgi.py b/scorecardapp/wsgi.py
new file mode 100644
index 0000000..b8533f2
--- /dev/null
+++ b/scorecardapp/wsgi.py
@@ -0,0 +1,46 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+"""
+WSGI config for scorecardapp project.
+
+This module contains the WSGI application used by Django's development server
+and any production WSGI deployments. It should expose a module-level variable
+named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
+this application via the ``WSGI_APPLICATION`` setting.
+
+Usually you will have the standard Django WSGI application here, but it also
+might make sense to replace the whole Django WSGI application with a custom one
+that later delegates to the Django one. For example, you could introduce WSGI
+middleware here, or combine a Django application with an application of another
+framework.
+
+For more information, visit
+https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/
+"""
+
+import os
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault(
+ 'DJANGO_SETTINGS_MODULE',
+ 'scorecardapp.settings')
+
+# This application object is used by any WSGI server configured to use this
+# file. This includes Django's development server, if the WSGI_APPLICATION
+# setting points here.
+application = get_wsgi_application()