diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 6c0b8635858dc7ad44b93df54b762707ce49eefc..288b36b1efb71c411d5c27a1ea6c08e41a7fed46 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,5 +2,6 @@
 <project version="4">
   <component name="VcsDirectoryMappings">
     <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c820520f5e37cec3ae2bcd2c293038672968a634..bfe55b2c2dc075aa94d41cbdc489cb3d3a406645 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,25 +2,10 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="8e0a1b72-f07e-4c5d-8e03-75ac89ac3031" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/.idea/PMPBackend.iml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/__init__.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/settings.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/homePage.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/lookUpBook.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/newBook.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/signIn.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/signUp.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/updateBook.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/userProfile.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/templates/userUpdate.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/urls.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/views.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/PMPBackend/wsgi.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/db.sqlite3" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/manage.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/PMPBackend/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/PMPBackend/settings.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/PMPBackend/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/PMPBackend/urls.py" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -35,43 +20,49 @@
     <session id="-1540407213">
       <usages-collector id="statistics.lifecycle.project">
         <counts>
+          <entry key="project.closed" value="4" />
+          <entry key="project.open.time.1" value="1" />
           <entry key="project.open.time.16" value="1" />
-          <entry key="project.opened" value="1" />
+          <entry key="project.open.time.6" value="1" />
+          <entry key="project.open.time.7" value="1" />
+          <entry key="project.opened" value="4" />
         </counts>
       </usages-collector>
       <usages-collector id="statistics.file.extensions.edit">
         <counts>
           <entry key="html" value="181" />
-          <entry key="py" value="1084" />
+          <entry key="py" value="6122" />
+          <entry key="txt" value="2" />
         </counts>
       </usages-collector>
       <usages-collector id="statistics.file.types.edit">
         <counts>
           <entry key="HTML" value="181" />
-          <entry key="Python" value="1084" />
+          <entry key="PLAIN_TEXT" value="2" />
+          <entry key="Python" value="6122" />
         </counts>
       </usages-collector>
       <usages-collector id="statistics.file.extensions.open">
         <counts>
-          <entry key="html" value="13" />
-          <entry key="py" value="4" />
+          <entry key="html" value="14" />
+          <entry key="py" value="11" />
         </counts>
       </usages-collector>
       <usages-collector id="statistics.file.types.open">
         <counts>
-          <entry key="HTML" value="13" />
-          <entry key="Python" value="4" />
+          <entry key="HTML" value="14" />
+          <entry key="Python" value="11" />
         </counts>
       </usages-collector>
     </session>
   </component>
   <component name="FileEditorManager">
-    <leaf>
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/PMPBackend/settings.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="339">
-              <caret line="62" column="36" lean-forward="true" selection-start-line="62" selection-start-column="36" selection-end-line="62" selection-end-column="36" />
+            <state relative-caret-position="-106">
+              <caret line="42" lean-forward="true" selection-start-line="42" selection-end-line="42" />
             </state>
           </provider>
         </entry>
@@ -79,8 +70,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/PMPBackend/urls.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="420">
-              <caret line="28" column="43" lean-forward="true" selection-start-line="28" selection-start-column="43" selection-end-line="28" selection-end-column="43" />
+            <state relative-caret-position="375">
+              <caret line="25" column="54" selection-start-line="25" selection-start-column="54" selection-end-line="25" selection-end-column="54" />
               <folding>
                 <element signature="e#635#667#0" expanded="true" />
               </folding>
@@ -88,19 +79,42 @@
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/cargo/models.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="90">
+              <caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/cargo/views.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="376">
+              <caret line="77" column="32" lean-forward="true" selection-start-line="77" selection-start-column="32" selection-end-line="77" selection-end-column="32" />
+              <folding>
+                <element signature="e#0#45#0" expanded="true" />
+                <marker date="1538741737406" expanded="true" signature="674:1340" ph="..." />
+                <marker date="1538741737406" expanded="true" signature="3852:5054" ph="..." />
+                <marker date="1538741737406" expanded="true" signature="5769:6475" ph="..." />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/PMPBackend/wsgi.py">
           <provider selected="true" editor-type-id="text-editor" />
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/PMPBackend/views.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="420">
-              <caret line="28" column="24" lean-forward="true" selection-start-line="28" selection-start-column="24" selection-end-line="28" selection-end-column="24" />
+            <state relative-caret-position="30">
+              <caret line="2" selection-start-line="2" selection-end-line="2" />
               <folding>
                 <marker date="1538386992227" expanded="true" signature="556:604" ph="..." />
-                <marker date="1538386992227" expanded="true" signature="702:750" ph="..." />
               </folding>
             </state>
           </provider>
@@ -108,7 +122,41 @@
       </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/manage.py">
-          <provider selected="true" editor-type-id="text-editor" />
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="195">
+              <caret line="14" column="39" selection-start-line="14" selection-start-column="39" selection-end-line="14" selection-end-column="39" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-186">
+              <caret line="5" selection-start-line="5" selection-end-line="5" />
+              <folding>
+                <element signature="e#104#113#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file:///usr/local/lib/python3.7/site-packages/django/utils/autoreload.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="210">
+              <caret line="224" selection-start-line="224" selection-end-line="224" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/utils.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="240">
+              <caret line="203" column="31" selection-start-line="203" selection-start-column="31" selection-end-line="203" selection-end-column="31" />
+            </state>
+          </provider>
         </entry>
       </file>
     </leaf>
@@ -117,16 +165,16 @@
     <option name="RECENT_TEMPLATES">
       <list>
         <option value="HTML File" />
+        <option value="Python Script" />
       </list>
     </option>
   </component>
   <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/PMPBackend/settings.py" />
         <option value="$PROJECT_DIR$/PMPBackend/templates/homePage.html" />
         <option value="$PROJECT_DIR$/PMPBackend/templates/SignUp.html" />
         <option value="$PROJECT_DIR$/PMPBackend/templates/SignIn.html" />
@@ -139,8 +187,12 @@
         <option value="$PROJECT_DIR$/PMPBackend/templates/updatebook.html" />
         <option value="$PROJECT_DIR$/PMPBackend/templates/updateBook.html" />
         <option value="$PROJECT_DIR$/PMPBackend/templates/lookUpBook.html" />
-        <option value="$PROJECT_DIR$/PMPBackend/urls.py" />
         <option value="$PROJECT_DIR$/PMPBackend/views.py" />
+        <option value="$PROJECT_DIR$/PMPBackend/models.py" />
+        <option value="$PROJECT_DIR$/PMPBackend/settings.py" />
+        <option value="$PROJECT_DIR$/cargo/models.py" />
+        <option value="$PROJECT_DIR$/PMPBackend/urls.py" />
+        <option value="$PROJECT_DIR$/cargo/views.py" />
       </list>
     </option>
   </component>
@@ -150,11 +202,21 @@
     <detection-done>true</detection-done>
     <sorting>DEFINITION_ORDER</sorting>
   </component>
-  <component name="ProjectFrameBounds">
-    <option name="x" value="113" />
-    <option name="y" value="34" />
-    <option name="width" value="1400" />
-    <option name="height" value="908" />
+  <component name="ProjectFrameBounds" fullScreen="true">
+    <option name="width" value="1680" />
+    <option name="height" value="1050" />
+  </component>
+  <component name="ProjectInspectionProfilesVisibleTreeState">
+    <entry key="Project Default">
+      <profile-state>
+        <expanded-state>
+          <State />
+          <State>
+            <id>SQL</id>
+          </State>
+        </expanded-state>
+      </profile-state>
+    </entry>
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectView">
@@ -162,7 +224,6 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -170,6 +231,11 @@
               <item name="PMPBackend" type="b2602c69:ProjectViewProjectNode" />
               <item name="PMPBackend" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="PMPBackend" type="b2602c69:ProjectViewProjectNode" />
+              <item name="PMPBackend" type="462c0819:PsiDirectoryNode" />
+              <item name="cargo" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="PMPBackend" type="b2602c69:ProjectViewProjectNode" />
               <item name="PMPBackend" type="462c0819:PsiDirectoryNode" />
@@ -185,6 +251,7 @@
           <select />
         </subPane>
       </pane>
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -247,30 +314,30 @@
     <servers />
   </component>
   <component name="ToolWindowManager">
-    <frame x="113" y="34" width="1400" height="908" extended-state="0" />
+    <frame x="0" y="0" width="1680" height="1050" extended-state="0" />
     <editor active="true" />
     <layout>
-      <window_info id="Favorites" side_tool="true" />
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2496318" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.21611722" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info anchor="bottom" id="Docker" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Database Changes" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Version Control" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Python Console" />
-      <window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.32965687" />
-      <window_info anchor="bottom" id="Event Log" side_tool="true" />
+      <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.32965687" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.32959184" />
       <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="right" id="SciView" />
-      <window_info anchor="right" id="Database" />
+      <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Version Control" order="8" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
+      <window_info anchor="bottom" id="Terminal" order="11" weight="0.32965687" />
+      <window_info anchor="bottom" id="Python Console" order="12" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
+      <window_info anchor="right" id="SciView" order="3" />
+      <window_info anchor="right" id="Database" order="4" />
     </layout>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -280,13 +347,6 @@
     <option name="myLimit" value="2678400000" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/PMPBackend/templates/homePage.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1275">
-          <caret line="85" column="17" lean-forward="true" selection-start-line="85" selection-start-column="17" selection-end-line="85" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/PMPBackend/templates/signIn.html">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="60">
@@ -308,19 +368,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/PMPBackend/wsgi.py">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/manage.py">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/PMPBackend/settings.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="339">
-          <caret line="62" column="36" lean-forward="true" selection-start-line="62" selection-start-column="36" selection-end-line="62" selection-end-column="36" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/PMPBackend/templates/userProfile.html">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="60">
@@ -349,23 +396,97 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/PMPBackend/urls.py">
+    <entry file="file://$PROJECT_DIR$/PMPBackend/templates/homePage.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1275">
+          <caret line="85" column="17" selection-start-line="85" selection-start-column="17" selection-end-line="85" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="420">
-          <caret line="28" column="43" lean-forward="true" selection-start-line="28" selection-start-column="43" selection-end-line="28" selection-end-column="43" />
+        <state relative-caret-position="-186">
+          <caret line="5" selection-start-line="5" selection-end-line="5" />
           <folding>
-            <element signature="e#635#667#0" expanded="true" />
+            <element signature="e#104#113#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file:///usr/local/lib/python3.7/site-packages/django/utils/autoreload.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="210">
+          <caret line="224" selection-start-line="224" selection-end-line="224" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file:///usr/local/lib/python3.7/site-packages/django/db/utils.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="240">
+          <caret line="203" column="31" selection-start-line="203" selection-start-column="31" selection-end-line="203" selection-end-column="31" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/PMPBackend/models.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state>
+          <caret selection-end-line="31" selection-end-column="47" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/PMPBackend/wsgi.py">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
     <entry file="file://$PROJECT_DIR$/PMPBackend/views.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="420">
-          <caret line="28" column="24" lean-forward="true" selection-start-line="28" selection-start-column="24" selection-end-line="28" selection-end-column="24" />
+        <state relative-caret-position="30">
+          <caret line="2" selection-start-line="2" selection-end-line="2" />
           <folding>
             <marker date="1538386992227" expanded="true" signature="556:604" ph="..." />
-            <marker date="1538386992227" expanded="true" signature="702:750" ph="..." />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manage.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="195">
+          <caret line="14" column="39" selection-start-line="14" selection-start-column="39" selection-end-line="14" selection-end-column="39" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/PMPBackend/settings.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-106">
+          <caret line="42" lean-forward="true" selection-start-line="42" selection-end-line="42" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/cargo/models.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="90">
+          <caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/PMPBackend/urls.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="375">
+          <caret line="25" column="54" selection-start-line="25" selection-start-column="54" selection-end-line="25" selection-end-column="54" />
+          <folding>
+            <element signature="e#635#667#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/cargo/views.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="376">
+          <caret line="77" column="32" lean-forward="true" selection-start-line="77" selection-start-column="32" selection-end-line="77" selection-end-column="32" />
+          <folding>
+            <element signature="e#0#45#0" expanded="true" />
+            <marker date="1538741737406" expanded="true" signature="674:1340" ph="..." />
+            <marker date="1538741737406" expanded="true" signature="3852:5054" ph="..." />
+            <marker date="1538741737406" expanded="true" signature="5769:6475" ph="..." />
           </folding>
         </state>
       </provider>
diff --git a/PMPBackend/__pycache__/settings.cpython-37.pyc b/PMPBackend/__pycache__/settings.cpython-37.pyc
index c967042f833771514f9819f3b9136e876ddfd935..8617d40c248557a2f35b7cf5c8571dde80319b2d 100644
Binary files a/PMPBackend/__pycache__/settings.cpython-37.pyc and b/PMPBackend/__pycache__/settings.cpython-37.pyc differ
diff --git a/PMPBackend/__pycache__/urls.cpython-37.pyc b/PMPBackend/__pycache__/urls.cpython-37.pyc
index af9d35153d71dab7ad39345d15ee345ace37d15b..6136e6f4b4699f6022f4f9ebeb8f7e3d456a341f 100644
Binary files a/PMPBackend/__pycache__/urls.cpython-37.pyc and b/PMPBackend/__pycache__/urls.cpython-37.pyc differ
diff --git a/PMPBackend/__pycache__/views.cpython-37.pyc b/PMPBackend/__pycache__/views.cpython-37.pyc
index 1ffbf6a09262a8c3d90d9e636cb38d90b73c7477..a30f6e801cc757af695bc0ade8d814982e1870d7 100644
Binary files a/PMPBackend/__pycache__/views.cpython-37.pyc and b/PMPBackend/__pycache__/views.cpython-37.pyc differ
diff --git a/PMPBackend/settings.py b/PMPBackend/settings.py
index 64766d70e51635a2965ea527eeaa7a2664063d81..1a807e4cd16a7757ff89a03d89b56339c0a242be 100644
--- a/PMPBackend/settings.py
+++ b/PMPBackend/settings.py
@@ -25,7 +25,7 @@ SECRET_KEY = '84rci9)9prwn$cd!gv2g3^7s0)^a9_o30!k6iwy=wdav9+p7g#'
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
 
-ALLOWED_HOSTS = []
+ALLOWED_HOSTS = ['10.13.105.80']
 
 
 # Application definition
@@ -37,13 +37,15 @@ INSTALLED_APPS = [
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
+    'rest_framework',
+    'cargo',
 ]
 
 MIDDLEWARE = [
     'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
-    'django.middleware.csrf.CsrfViewMiddleware',
+     #'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
@@ -70,14 +72,18 @@ TEMPLATES = [
 
 WSGI_APPLICATION = 'PMPBackend.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'),
+    # }
     'default': {
-        'ENGINE': 'django.db.backends.sqlite3',
-        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': 'lihuanz',
+        'USER': 'lihuanz',
+        'HOST': 'info20003db.eng.unimelb.edu.au',
+        'PASSWORD': 'zlh2005zlh',
+        'PORT': 3306,
     }
 }
 
diff --git a/PMPBackend/urls.py b/PMPBackend/urls.py
index 7c03c40fd594c3fd79cd628600a418c25a1adf6b..a62a4772dfc51f61878927b86e1727c3c89d2bd2 100644
--- a/PMPBackend/urls.py
+++ b/PMPBackend/urls.py
@@ -16,18 +16,17 @@ Including another URLconf
 
 from django.contrib import admin
 from django.urls import path
-from PMPBackend import views
+from cargo import views as cargoViews
 
 urlpatterns = [
-    path('', views.homepage),
-    path('user/login', views.signin),
-    path('user/signup', views.signup),
-    path('user/profile', views.userprofile),
-    path('user/updateprofile', views.userprofile),
-    path('booking/booklookup', views.lookupbook),
-    path('booking/makebooking', views.newbook),
-    path('booking/updatebooking', views.updatebook),
-    path('admin/', admin.site.urls),
+    path('api/user/profile', cargoViews.profile),
+    path('api/user/update', cargoViews.updateprofile),
+    path('api/user/signin', cargoViews.signIn),
+    path('api/user/signup', cargoViews.signUp),
+    path('api/booking/check', cargoViews.displaybook),
+    path('api/booking/create', cargoViews.newbook),
+    path('api/booking/update', cargoViews.updatebook),
+    path('api/shipInfo', cargoViews.shipInfo),
 ]
 
 
diff --git a/cargo/__init__.py b/cargo/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/cargo/__pycache__/__init__.cpython-37.pyc b/cargo/__pycache__/__init__.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c00edd3425d1db03025622df32c27973a1d219a6
Binary files /dev/null and b/cargo/__pycache__/__init__.cpython-37.pyc differ
diff --git a/cargo/__pycache__/admin.cpython-37.pyc b/cargo/__pycache__/admin.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0be9f2f83db4ecb506c6ad230410ef34be78467c
Binary files /dev/null and b/cargo/__pycache__/admin.cpython-37.pyc differ
diff --git a/cargo/__pycache__/models.cpython-37.pyc b/cargo/__pycache__/models.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..f64e7da019efcf49d04224047c52b157bcbdbd3c
Binary files /dev/null and b/cargo/__pycache__/models.cpython-37.pyc differ
diff --git a/cargo/__pycache__/views.cpython-37.pyc b/cargo/__pycache__/views.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..3d6ed7e014f08d9b91e1c82f70bdda25e25c1666
Binary files /dev/null and b/cargo/__pycache__/views.cpython-37.pyc differ
diff --git a/cargo/admin.py b/cargo/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e
--- /dev/null
+++ b/cargo/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/cargo/apps.py b/cargo/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e0480a0b464c2111af295ba8eb5eaa93f92f9a7
--- /dev/null
+++ b/cargo/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class CargoConfig(AppConfig):
+    name = 'cargo'
diff --git a/cargo/migrations/0001_initial.py b/cargo/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..0010817cf1c91e97e8df18eebaa8334e9104e17b
--- /dev/null
+++ b/cargo/migrations/0001_initial.py
@@ -0,0 +1,60 @@
+# Generated by Django 2.1.1 on 2018-10-05 05:42
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='request',
+            fields=[
+                ('bookID', models.AutoField(primary_key=True, serialize=False)),
+                ('boxNumber', models.IntegerField()),
+                ('destination', models.CharField(max_length=150)),
+                ('pickup', models.CharField(max_length=150)),
+                ('customerMessage', models.TextField(null=True)),
+                ('status', models.IntegerField(default=0, max_length=1)),
+                ('cost', models.IntegerField(null=True)),
+                ('pickupDate', models.DateTimeField(null=True)),
+                ('HBL', models.CharField(max_length=30, null=True)),
+                ('shiperMessage', models.TextField(null=True)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='shipment',
+            fields=[
+                ('shipmentID', models.AutoField(primary_key=True, serialize=False)),
+                ('leaveDate', models.DateField()),
+                ('arriveDate', models.DateField()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='user',
+            fields=[
+                ('userID', models.AutoField(primary_key=True, serialize=False)),
+                ('email', models.CharField(max_length=50)),
+                ('password', models.CharField(max_length=20)),
+                ('userType', models.IntegerField(default=0, max_length=1)),
+                ('userName', models.CharField(max_length=30)),
+                ('phoneNumber', models.CharField(max_length=20)),
+                ('homeAddress', models.CharField(max_length=150)),
+            ],
+        ),
+        migrations.AddField(
+            model_name='request',
+            name='shipmentID',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cargo.shipment'),
+        ),
+        migrations.AddField(
+            model_name='request',
+            name='userID',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cargo.user'),
+        ),
+    ]
diff --git a/cargo/migrations/0002_auto_20181005_0611.py b/cargo/migrations/0002_auto_20181005_0611.py
new file mode 100644
index 0000000000000000000000000000000000000000..36016858da90cbd2b6d84b6e4395281a471e733e
--- /dev/null
+++ b/cargo/migrations/0002_auto_20181005_0611.py
@@ -0,0 +1,23 @@
+# Generated by Django 2.1.1 on 2018-10-05 06:11
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('cargo', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='request',
+            name='status',
+            field=models.IntegerField(default=0),
+        ),
+        migrations.AlterField(
+            model_name='user',
+            name='userType',
+            field=models.IntegerField(default=0),
+        ),
+    ]
diff --git a/cargo/migrations/0003_auto_20181005_0942.py b/cargo/migrations/0003_auto_20181005_0942.py
new file mode 100644
index 0000000000000000000000000000000000000000..ae01614f3f3c315a0fb4d00c290a9c10d2b63d7f
--- /dev/null
+++ b/cargo/migrations/0003_auto_20181005_0942.py
@@ -0,0 +1,17 @@
+# Generated by Django 2.1.1 on 2018-10-05 09:42
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('cargo', '0002_auto_20181005_0611'),
+    ]
+
+    operations = [
+        migrations.RenameModel(
+            old_name='request',
+            new_name='requestbook',
+        ),
+    ]
diff --git a/cargo/migrations/__init__.py b/cargo/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/cargo/migrations/__pycache__/0001_initial.cpython-37.pyc b/cargo/migrations/__pycache__/0001_initial.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..333e6a4e7f02bdb33eebc61f5b46f3155e950b7b
Binary files /dev/null and b/cargo/migrations/__pycache__/0001_initial.cpython-37.pyc differ
diff --git a/cargo/migrations/__pycache__/0002_auto_20181005_0611.cpython-37.pyc b/cargo/migrations/__pycache__/0002_auto_20181005_0611.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0d5010fc29499beeb9e7b69771c69128ee52d193
Binary files /dev/null and b/cargo/migrations/__pycache__/0002_auto_20181005_0611.cpython-37.pyc differ
diff --git a/cargo/migrations/__pycache__/0003_auto_20181005_0942.cpython-37.pyc b/cargo/migrations/__pycache__/0003_auto_20181005_0942.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..42d2036524668946e59506700688b146e4574835
Binary files /dev/null and b/cargo/migrations/__pycache__/0003_auto_20181005_0942.cpython-37.pyc differ
diff --git a/cargo/migrations/__pycache__/__init__.cpython-37.pyc b/cargo/migrations/__pycache__/__init__.cpython-37.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..384dd58025beed8d8f708f54e9809b9fd40cabc0
Binary files /dev/null and b/cargo/migrations/__pycache__/__init__.cpython-37.pyc differ
diff --git a/cargo/models.py b/cargo/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2150d1830117c88f5a63200f635a16d3a542eb0
--- /dev/null
+++ b/cargo/models.py
@@ -0,0 +1,34 @@
+from django.db import models
+
+# Create your models here.
+class user(models.Model):
+    userID = models.AutoField(primary_key=True)
+    email = models.CharField(max_length=50)
+    password = models.CharField(max_length=20)
+    userType = models.IntegerField(default=0)
+    userName = models.CharField(max_length=30)
+    phoneNumber = models.CharField(max_length=20)
+    homeAddress = models.CharField(max_length=150)
+
+
+# Create your models here.
+class shipment(models.Model):
+    shipmentID = models.AutoField(primary_key=True)
+    leaveDate = models.DateField()
+    arriveDate = models.DateField()
+
+
+# Create your models here.
+class requestbook(models.Model):
+    bookID = models.AutoField(primary_key=True)
+    userID = models.ForeignKey('user', on_delete=models.CASCADE)
+    shipmentID = models.ForeignKey('shipment', on_delete=models.CASCADE)
+    boxNumber = models.IntegerField()
+    destination = models.CharField(max_length=150)
+    pickup = models.CharField(max_length=150)
+    customerMessage = models.TextField(null=True)
+    status = models.IntegerField(default=0)
+    cost = models.IntegerField(null=True)
+    pickupDate = models.DateTimeField(null=True)
+    HBL = models.CharField(max_length=30, null=True)
+    shiperMessage = models.TextField(null=True)
diff --git a/cargo/tests.py b/cargo/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6
--- /dev/null
+++ b/cargo/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/cargo/views.py b/cargo/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..f1c5ae97b96b1e30fbc0bb23d756beb2a65fb94a
--- /dev/null
+++ b/cargo/views.py
@@ -0,0 +1,210 @@
+from django.shortcuts import render, redirect
+import datetime
+from cargo.models import user, shipment, requestbook
+import json
+from django.http import HttpResponse
+import sys
+
+# Create your views here.
+
+
+def shipInfo(request):
+    if request.method == 'GET':
+        today = datetime.date.today()
+        shipmentInfo = shipment.objects.all()
+        s = []
+        for i in shipmentInfo:
+            s.append([i.shipmentID, 'From ' + i.leaveDate.__str__() + ' To ' + i.arriveDate.__str__()])
+
+        res = {
+            'shipInfo': s,
+            'status': '0'
+        }
+
+        return HttpResponse(json.dumps(res), content_type="application/json")
+
+
+def signIn(request):
+    if request.method == 'GET':
+        #print(request.get_full_path(), file=sys.stderr)
+
+        passwordNow = request.GET['password']
+        emailNow = request.GET['email']
+
+        #print(passwordNow, file=sys.stderr)
+        #print(emailNow, file=sys.stderr)
+
+        check = user.objects.get(email=emailNow)
+
+        if (check.password == passwordNow):
+            res = {
+                'status': '0',
+                'userid': check.userID,
+                'usertype': check.userType
+            }
+        else:
+            res = {
+                'status': '1'
+            }
+        return HttpResponse(json.dumps(res), content_type="application/json")
+
+
+def signUp(request):
+    if request.method == 'POST':
+        req = json.loads(request.body.decode())
+
+        newUser = user()
+        newUser.email = req.get('email')
+        newUser.password = req.get('password')
+        newUser.userName = req.get('realname')
+        newUser.phoneNumber = req.get('phonenumber')
+        newUser.homeAddress = req.get('address')
+
+        check = user.objects.filter(email=newUser.email)
+
+        if (check):
+            res = {
+                'status': 1,
+                'msg':'email exist'
+            }
+            return HttpResponse(json.dumps(res), content_type="application/json")
+
+        else:
+            newUser.save()
+            res = {
+                'status': '0',
+                'usertype': '0',
+                'userid': newUser.userID,
+                'msg': 'success'
+            }
+            return HttpResponse(json.dumps(res), content_type="application/json")
+    else:
+        res = {
+            'status': '0',
+            'msg': 'error access'
+        }
+        return HttpResponse(json.dumps(res), content_type="application/json")
+
+
+def profile(request):
+    if request.method == 'GET':
+        useridNow = int(request.GET['userid'])
+        userNow = user.objects.get(userID=useridNow)
+
+        if (userNow):
+            res = {
+                'status': '0',
+                'email': userNow.email,
+                'password': userNow.password,
+                'realname': userNow.userName,
+                'phonenumber': userNow.phoneNumber,
+                'address': userNow.homeAddress
+            }
+            return HttpResponse(json.dumps(res), content_type="application/json")
+        else:
+            res = {
+                'status': '1',
+                'msg': 'user not exist'
+            }
+            return HttpResponse(json.dumps(res), content_type="application/json")
+
+
+def updateprofile(request):
+    if request.method == 'POST':
+        req = json.loads(request.body.decode())
+
+        useridNow = int(req.get('userid'))
+        userNow = user.objects.get(userID=useridNow)
+
+        userNow.email = req.get('email')
+        userNow.password = req.get('password')
+        userNow.userName = req.get('realname')
+        userNow.phoneNumber = req.get('phonenumber')
+        userNow.homeAddress = req.get('address')
+
+        userNow.save()
+
+        res = {
+            'status': '0',
+            'msg': 'success'
+        }
+        return HttpResponse(json.dumps(res), content_type="application/json")
+
+def displaybook(request):
+    if request.method == 'GET':
+        useridNow = int(request.GET['userid'])
+        if (int(user.objects.get(userID=useridNow).userType) > 0):
+            booklist = requestbook.objects.all()
+        else:
+            booklist = requestbook.objects.filter(userID_id=useridNow)
+
+        res = []
+
+        for i in booklist:
+            select = shipment.objects.get(shipmentID=int(i.shipmentID_id))
+            str = 'From ' + select.leaveDate.__str__() + ' To ' + select.arriveDate.__str__()
+
+            res.append({
+                'bookingNumber': i.bookID,
+                'bookingStatus': i.status,
+                'HBLNumber': i.HBL,
+                'boxNumber': i.boxNumber,
+                'destination': i.destination,
+                'pickupAddress': i.pickup,
+                'pickupDate': i.pickupDate.__str__().split(' ')[0],
+                'selectDate': str,
+                'optionalInformationCustomer': i.customerMessage,
+                'optionalInformationShipper': i.shiperMessage,
+                'cost': i.cost})
+
+        res = {
+            'booklist': res,
+            'status': '0'
+        }
+        return HttpResponse(json.dumps(res), content_type="application/json")
+
+
+def newbook(request):
+    if request.method == 'POST':
+        req = json.loads(request.body.decode())
+        newbook = requestbook()
+
+        newbook.boxNumber = int(req.get('boxnumber'))
+        newbook.cost = newbook.boxNumber * 35
+        newbook.shipmentID_id = int(req.get('shipmentid'))
+        newbook.userID_id = int(req.get('userid'))
+        newbook.destination = req.get('destination')
+        newbook.pickup = req.get('pickupaddress')
+        newbook.customerMessage = req.get('cutomermsg')
+        newbook.save()
+
+        res = {
+            'status': '0',
+            'msg': 'success'
+        }
+        return HttpResponse(json.dumps(res), content_type="application/json")
+
+
+def updatebook(request):
+    if request.method == 'POST':
+        req = json.loads(request.body.decode())
+
+        bookidNow = int(req.get('bookingNumber'))
+        bookCur = requestbook.objects.get(bookID=bookidNow)
+
+        bookCur.HBL = req.get('bookingHBL')
+        print(bookCur.HBL, file=sys.stderr)
+        bookCur.status = req.get('bookingStatus', bookCur.status)
+        bookCur.pickupDate = req.get('bookingPickupDate', bookCur.pickupDate)
+        bookCur.shiperMessage = req.get('bookingInformationShipper', bookCur.shiperMessage)
+
+        bookCur.save()
+
+        res = {
+            'status': '0',
+            'msg': 'success'
+        }
+        return HttpResponse(json.dumps(res), content_type="application/json")
+
+
+