From 5ebeff9ad7baca17fdb2a92ee4a7608273b41b96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Efe=20Ayd=C4=B1n?= <3feaydin@gmail.com>
Date: Sat, 20 Apr 2019 15:37:54 +0300
Subject: [PATCH 1/2] qr read system, denunciation map, better everything
---
.../java/gq/yigit/mycity/MainActivity.java | 9 +-
.../yigit/mycity/navigation/MapsFragment.java | 109 ------
.../src/main/res/layout/fragment_layout.xml | 7 +
.../main/res/menu/activity_main_drawer.xml | 4 -
.../interface/UserData/denunciation_map.html | 55 +++
client_side/interface/UserData/index.html | 31 --
client_side/interface/UserData/index.js | 4 -
.../interface/UserData/package-lock.json | 333 ------------------
client_side/interface/UserData/qr_info.html | 49 +++
client_side/interface/UserData/socket.io | 1 -
client_side/modules/qr/user_data.py | 38 +-
server_side/api/images/muhtarlik.jpg | Bin 0 -> 119769 bytes
server_side/api/images/park.jpg | Bin 0 -> 206397 bytes
.../api/modules/databases/bus_locations.json | 6 +
.../api/modules/databases/denunciations.json | 4 +-
server_side/api/modules/databases/users.json | 2 +-
.../api/modules/databases/votings.json | 37 +-
server_side/api/modules/user_info.py | 4 +-
18 files changed, 163 insertions(+), 530 deletions(-)
delete mode 100644 MyCity/app/src/main/java/gq/yigit/mycity/navigation/MapsFragment.java
create mode 100644 MyCity/app/src/main/res/layout/fragment_layout.xml
create mode 100644 client_side/interface/UserData/denunciation_map.html
delete mode 100644 client_side/interface/UserData/index.html
delete mode 100644 client_side/interface/UserData/index.js
delete mode 100644 client_side/interface/UserData/package-lock.json
create mode 100644 client_side/interface/UserData/qr_info.html
delete mode 160000 client_side/interface/UserData/socket.io
create mode 100644 server_side/api/images/muhtarlik.jpg
create mode 100644 server_side/api/images/park.jpg
create mode 100644 server_side/api/modules/databases/bus_locations.json
diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java b/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java
index 7a47f81..ea5a9e8 100644
--- a/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java
+++ b/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java
@@ -26,7 +26,6 @@ import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
-import gq.yigit.mycity.navigation.MapsFragment;
import gq.yigit.mycity.navigation.TransitFragment;
import gq.yigit.mycity.tools.*;
import gq.yigit.mycity.tools.WebRequest.responseListener;
@@ -49,7 +48,6 @@ public class MainActivity extends AppCompatActivity
OnListFragmentInteractionListener,
MainFragment.OnFragmentInteractionListener,
RateFragment.OnFragmentInteractionListener,
- MapsFragment.OnFragmentInteractionListener,
UtilityMain.OnFragmentInteractionListener,
TransitFragment.OnFragmentInteractionListener,
OnFragmentInteractionListener,
@@ -176,12 +174,7 @@ public class MainActivity extends AppCompatActivity
fragmentTransaction.replace(R.id.app_bar_main, fragment);
fragmentTransaction.commit();
fragmentTransaction.addToBackStack(null);
- } else if (id == R.id.navigation) {
- MapsFragment fragment = new MapsFragment();
- fragmentTransaction.replace(R.id.app_bar_main, fragment);
- fragmentTransaction.commit();
- fragmentTransaction.addToBackStack(null);
- } else if (id == R.id.rating) {
+ } else if (id == R.id.rating) {
RateFragment fragment = new RateFragment();
fragmentTransaction.replace(R.id.app_bar_main, fragment);
fragmentTransaction.commit();
diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/navigation/MapsFragment.java b/MyCity/app/src/main/java/gq/yigit/mycity/navigation/MapsFragment.java
deleted file mode 100644
index 51e1a30..0000000
--- a/MyCity/app/src/main/java/gq/yigit/mycity/navigation/MapsFragment.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package gq.yigit.mycity.navigation;
-
-import android.content.Context;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import gq.yigit.mycity.R;
-
-/**
- * A simple {@link Fragment} subclass.
- * Activities that contain this fragment must implement the
- * {@link MapsFragment.OnFragmentInteractionListener} interface
- * to handle interaction events.
- * Use the {@link MapsFragment#newInstance} factory method to
- * create an instance of this fragment.
- */
-public class MapsFragment extends Fragment {
- // TODO: Rename parameter arguments, choose names that match
- // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
- private static final String ARG_PARAM1 = "param1";
- private static final String ARG_PARAM2 = "param2";
-
- // TODO: Rename and change types of parameters
- private String mParam1;
- private String mParam2;
-
- private OnFragmentInteractionListener mListener;
-
- public MapsFragment() {
- // Required empty public constructor
- }
-
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment MapsFragment.
- */
- // TODO: Rename and change types and number of parameters
- public static MapsFragment newInstance(String param1, String param2) {
- MapsFragment fragment = new MapsFragment();
- Bundle args = new Bundle();
- args.putString(ARG_PARAM1, param1);
- args.putString(ARG_PARAM2, param2);
- fragment.setArguments(args);
- return fragment;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (getArguments() != null) {
- mParam1 = getArguments().getString(ARG_PARAM1);
- mParam2 = getArguments().getString(ARG_PARAM2);
- }
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_maps, container, false);
- }
-
- // TODO: Rename method, update argument and hook method into UI event
- public void onButtonPressed(Uri uri) {
- if (mListener != null) {
- mListener.onFragmentInteraction(uri);
- }
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
- if (context instanceof OnFragmentInteractionListener) {
- mListener = (OnFragmentInteractionListener) context;
- } else {
- throw new RuntimeException(context.toString()
- + " must implement OnFragmentInteractionListener");
- }
- }
-
- @Override
- public void onDetach() {
- super.onDetach();
- mListener = null;
- }
-
- /**
- * This interface must be implemented by activities that contain this
- * fragment to allow an interaction in this fragment to be communicated
- * to the activity and potentially other fragments contained in that
- * activity.
- *
- * See the Android Training lesson Communicating with Other Fragments for more information.
- */
- public interface OnFragmentInteractionListener {
- // TODO: Update argument type and name
- void onFragmentInteraction(Uri uri);
- }
-}
diff --git a/MyCity/app/src/main/res/layout/fragment_layout.xml b/MyCity/app/src/main/res/layout/fragment_layout.xml
new file mode 100644
index 0000000..d2602cd
--- /dev/null
+++ b/MyCity/app/src/main/res/layout/fragment_layout.xml
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/MyCity/app/src/main/res/menu/activity_main_drawer.xml b/MyCity/app/src/main/res/menu/activity_main_drawer.xml
index 6e32444..ad3e68a 100644
--- a/MyCity/app/src/main/res/menu/activity_main_drawer.xml
+++ b/MyCity/app/src/main/res/menu/activity_main_drawer.xml
@@ -9,10 +9,6 @@
android:id="@+id/transit"
android:icon="@drawable/subway"
android:title="Public Transit"/>
-
-
+
+
+
+ Denunction Map
+
+
+
+
+
+
+
+
+
+
+
diff --git a/client_side/interface/UserData/index.html b/client_side/interface/UserData/index.html
deleted file mode 100644
index 2e47c27..0000000
--- a/client_side/interface/UserData/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- UserInterface
-
-
-
-
-
-
-
-
-
-
-
- |
-
- |
-
- |
-
-
-
- |
-
-
-
-
-
-
diff --git a/client_side/interface/UserData/index.js b/client_side/interface/UserData/index.js
deleted file mode 100644
index 334ff75..0000000
--- a/client_side/interface/UserData/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var exampleSocket = new WebSocket("ws://localhost:3000", "protocolOne");
-exampleSocket.onmessage = function (event) {
- console.log(event.data);
-}
\ No newline at end of file
diff --git a/client_side/interface/UserData/package-lock.json b/client_side/interface/UserData/package-lock.json
deleted file mode 100644
index dd2b26b..0000000
--- a/client_side/interface/UserData/package-lock.json
+++ /dev/null
@@ -1,333 +0,0 @@
-{
- "requires": true,
- "lockfileVersion": 1,
- "dependencies": {
- "accepts": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
- "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
- "requires": {
- "mime-types": "2.1.23",
- "negotiator": "0.6.1"
- }
- },
- "after": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
- "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
- },
- "arraybuffer.slice": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
- "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
- },
- "async-limiter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
- },
- "backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
- },
- "base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
- },
- "base64id": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
- "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
- },
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
- "requires": {
- "callsite": "1.0.0"
- }
- },
- "blob": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
- "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
- },
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
- },
- "component-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
- "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
- },
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
- },
- "component-inherit": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
- "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
- },
- "cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
- },
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "requires": {
- "ms": "2.1.1"
- }
- },
- "engine.io": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz",
- "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==",
- "requires": {
- "accepts": "1.3.5",
- "base64id": "1.0.0",
- "cookie": "0.3.1",
- "debug": "3.1.0",
- "engine.io-parser": "2.1.3",
- "ws": "6.1.4"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "engine.io-client": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz",
- "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==",
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "3.1.0",
- "engine.io-parser": "2.1.3",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "6.1.4",
- "xmlhttprequest-ssl": "1.5.5",
- "yeast": "0.1.2"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "engine.io-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
- "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
- "requires": {
- "after": "0.8.2",
- "arraybuffer.slice": "0.0.7",
- "base64-arraybuffer": "0.1.5",
- "blob": "0.0.5",
- "has-binary2": "1.0.3"
- }
- },
- "has-binary2": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
- "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
- "requires": {
- "isarray": "2.0.1"
- }
- },
- "has-cors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
- "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
- },
- "indexof": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
- "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
- },
- "isarray": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
- "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
- },
- "mime-db": {
- "version": "1.39.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.39.0.tgz",
- "integrity": "sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw=="
- },
- "mime-types": {
- "version": "2.1.23",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.23.tgz",
- "integrity": "sha512-ROk/m+gMVSrRxTkMlaQOvFmFmYDc7sZgrjjM76abqmd2Cc5fCV7jAMA5XUccEtJ3cYiYdgixUVI+fApc2LkXlw==",
- "requires": {
- "mime-db": "1.39.0"
- }
- },
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
- },
- "negotiator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
- "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
- },
- "object-component": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
- "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
- },
- "parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "requires": {
- "better-assert": "1.0.2"
- }
- },
- "parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "requires": {
- "better-assert": "1.0.2"
- }
- },
- "socket.io": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz",
- "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==",
- "requires": {
- "debug": "4.1.1",
- "engine.io": "3.3.2",
- "has-binary2": "1.0.3",
- "socket.io-adapter": "1.1.1",
- "socket.io-client": "2.2.0",
- "socket.io-parser": "3.3.0"
- }
- },
- "socket.io-adapter": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
- "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="
- },
- "socket.io-client": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz",
- "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==",
- "requires": {
- "backo2": "1.0.2",
- "base64-arraybuffer": "0.1.5",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "3.1.0",
- "engine.io-client": "3.3.2",
- "has-binary2": "1.0.3",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "socket.io-parser": "3.3.0",
- "to-array": "0.1.4"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "socket.io-parser": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
- "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
- "requires": {
- "component-emitter": "1.2.1",
- "debug": "3.1.0",
- "isarray": "2.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "to-array": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
- "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
- },
- "ws": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
- "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
- "requires": {
- "async-limiter": "1.0.0"
- }
- },
- "xmlhttprequest-ssl": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
- "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
- },
- "yeast": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
- "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
- }
- }
-}
diff --git a/client_side/interface/UserData/qr_info.html b/client_side/interface/UserData/qr_info.html
new file mode 100644
index 0000000..668a892
--- /dev/null
+++ b/client_side/interface/UserData/qr_info.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+ UserInterface
+
+
+
+
+
+
+
+
+
+
+ |
+
+ |
+
+
+
+ |
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
diff --git a/client_side/interface/UserData/socket.io b/client_side/interface/UserData/socket.io
deleted file mode 160000
index 3020e45..0000000
--- a/client_side/interface/UserData/socket.io
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3020e455ab9a81341722e6c1e6cd8ef6b4b0ea28
diff --git a/client_side/modules/qr/user_data.py b/client_side/modules/qr/user_data.py
index 525ffbb..c1dd1bb 100644
--- a/client_side/modules/qr/user_data.py
+++ b/client_side/modules/qr/user_data.py
@@ -1,6 +1,15 @@
+from flask import Flask, jsonify, request, abort
from multiprocessing import Process
+import requests
import reader
+import json
+
+import urllib3
+urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
+
+app = Flask(__name__)
+user = {}
class Reader():
def __init__(self):
@@ -8,23 +17,24 @@ class Reader():
p1 = Process(target=read.detect)
p1.start()
- def received(self,data):
- print(data)
-
-qr_reader = Reader()
-
-while 1:
- continue
-
-
-
-
-
-
-
+ def received(self, data):
+ r = requests.get('https://0.0.0.0:5000/users/{}'.format(data), verify=False)
+ requests.get('http://0.0.0.0:3000/set', data={'data': r.text})
+qr_reader = Reader()
+@app.route('/set')
+def set_data():
+ global user
+ user = json.loads(request.form['data'])
+ return ''
+@app.route('/get')
+def get_qr():
+ if user == {}:
+ abort(404)
+ return jsonify(user)
+app.run(host='0.0.0.0', port=3000)
\ No newline at end of file
diff --git a/server_side/api/images/muhtarlik.jpg b/server_side/api/images/muhtarlik.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7d95405299c569bd2badc36e8a05e5984e1a8802
GIT binary patch
literal 119769
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 |