From c214e4716b1fc5787480dbae4b67e522a6b7c1df Mon Sep 17 00:00:00 2001 From: p1utoze Date: Sun, 5 Feb 2023 12:28:52 +0530 Subject: [PATCH] Added submission Team 12: Dial-404 --- Dial-404/LICENSE | 201 ++++++++++++++++++ Dial-404/Models/fingermatchFinal.py | 87 ++++++++ Dial-404/Models/fuzzysearchTest.py | 39 ++++ Dial-404/Models/main.py | 24 +++ Dial-404/Models/photomatchFinal.py | 86 ++++++++ Dial-404/kspone/Basic_front/README.md | 10 + Dial-404/kspone/Basic_front/global.css | 12 ++ Dial-404/kspone/Basic_front/index.css | 127 +++++++++++ Dial-404/kspone/Basic_front/index.html | 44 ++++ Dial-404/kspone/Basic_front/package.json | 15 ++ .../kspone/Basic_front/rectangle-5@2x.png | Bin 0 -> 42470 bytes Dial-404/kspone/HTML/fingerprint.html | 5 + Dial-404/kspone/HTML/home.html | 86 ++++++++ Dial-404/kspone/HTML/loginhelp.html | 19 ++ Dial-404/kspone/HTML/loginpage.html | 68 ++++++ Dial-404/kspone/HTML/navbar.html | 51 +++++ Dial-404/kspone/HTML/pdf.html | 51 +++++ Dial-404/kspone/HTML/search.html | 116 ++++++++++ Dial-404/kspone/HTML/userguide.html | 5 + Dial-404/kspone/base/__init__.py | 0 .../base/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 144 bytes .../base/__pycache__/admin.cpython-310.pyc | Bin 0 -> 185 bytes .../base/__pycache__/apps.cpython-310.pyc | Bin 0 -> 419 bytes .../base/__pycache__/models.cpython-310.pyc | Bin 0 -> 555 bytes .../base/__pycache__/pdf.cpython-310.pyc | Bin 0 -> 748 bytes .../base/__pycache__/urls.cpython-310.pyc | Bin 0 -> 568 bytes .../base/__pycache__/views.cpython-310.pyc | Bin 0 -> 3441 bytes Dial-404/kspone/base/admin.py | 3 + Dial-404/kspone/base/apps.py | 6 + .../kspone/base/migrations/0001_initial.py | 21 ++ Dial-404/kspone/base/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-310.pyc | Bin 0 -> 651 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 155 bytes Dial-404/kspone/base/models.py | 7 + Dial-404/kspone/base/pdf.py | 14 ++ Dial-404/kspone/base/tests.py | 3 + Dial-404/kspone/base/urls.py | 14 ++ Dial-404/kspone/base/views.py | 95 +++++++++ Dial-404/kspone/db.sqlite3 | Bin 0 -> 139264 bytes Dial-404/kspone/kspone/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 146 bytes .../__pycache__/settings.cpython-310.pyc | Bin 0 -> 2458 bytes .../kspone/__pycache__/urls.cpython-310.pyc | Bin 0 -> 967 bytes .../kspone/__pycache__/wsgi.cpython-310.pyc | Bin 0 -> 547 bytes Dial-404/kspone/kspone/asgi.py | 16 ++ Dial-404/kspone/kspone/settings.py | 136 ++++++++++++ Dial-404/kspone/kspone/urls.py | 24 +++ Dial-404/kspone/kspone/wsgi.py | 16 ++ Dial-404/kspone/manage.py | 22 ++ Dial-404/kspone/requirements.txt | 1 + .../kspone/static/images/rectangle-5@2x.png | Bin 0 -> 42470 bytes Dial-404/kspone/static/rectangle-5@2x.jpg | Bin 0 -> 13015 bytes Dial-404/kspone/static/rectangle-5@2x.png | Bin 0 -> 42470 bytes Dial-404/kspone/static/styles/global.css | 12 ++ Dial-404/kspone/static/styles/index.css | 129 +++++++++++ Dial-404/kspone/templates/README.md | 10 + Dial-404/kspone/templates/index.html | 45 ++++ Dial-404/kspone/templates/package.json | 15 ++ README.md | 12 +- 59 files changed, 1642 insertions(+), 5 deletions(-) create mode 100644 Dial-404/LICENSE create mode 100644 Dial-404/Models/fingermatchFinal.py create mode 100644 Dial-404/Models/fuzzysearchTest.py create mode 100644 Dial-404/Models/main.py create mode 100644 Dial-404/Models/photomatchFinal.py create mode 100755 Dial-404/kspone/Basic_front/README.md create mode 100755 Dial-404/kspone/Basic_front/global.css create mode 100755 Dial-404/kspone/Basic_front/index.css create mode 100755 Dial-404/kspone/Basic_front/index.html create mode 100755 Dial-404/kspone/Basic_front/package.json create mode 100755 Dial-404/kspone/Basic_front/rectangle-5@2x.png create mode 100755 Dial-404/kspone/HTML/fingerprint.html create mode 100755 Dial-404/kspone/HTML/home.html create mode 100755 Dial-404/kspone/HTML/loginhelp.html create mode 100755 Dial-404/kspone/HTML/loginpage.html create mode 100755 Dial-404/kspone/HTML/navbar.html create mode 100644 Dial-404/kspone/HTML/pdf.html create mode 100755 Dial-404/kspone/HTML/search.html create mode 100755 Dial-404/kspone/HTML/userguide.html create mode 100755 Dial-404/kspone/base/__init__.py create mode 100644 Dial-404/kspone/base/__pycache__/__init__.cpython-310.pyc create mode 100644 Dial-404/kspone/base/__pycache__/admin.cpython-310.pyc create mode 100644 Dial-404/kspone/base/__pycache__/apps.cpython-310.pyc create mode 100644 Dial-404/kspone/base/__pycache__/models.cpython-310.pyc create mode 100644 Dial-404/kspone/base/__pycache__/pdf.cpython-310.pyc create mode 100644 Dial-404/kspone/base/__pycache__/urls.cpython-310.pyc create mode 100644 Dial-404/kspone/base/__pycache__/views.cpython-310.pyc create mode 100755 Dial-404/kspone/base/admin.py create mode 100755 Dial-404/kspone/base/apps.py create mode 100644 Dial-404/kspone/base/migrations/0001_initial.py create mode 100755 Dial-404/kspone/base/migrations/__init__.py create mode 100644 Dial-404/kspone/base/migrations/__pycache__/0001_initial.cpython-310.pyc create mode 100644 Dial-404/kspone/base/migrations/__pycache__/__init__.cpython-310.pyc create mode 100755 Dial-404/kspone/base/models.py create mode 100644 Dial-404/kspone/base/pdf.py create mode 100755 Dial-404/kspone/base/tests.py create mode 100755 Dial-404/kspone/base/urls.py create mode 100755 Dial-404/kspone/base/views.py create mode 100755 Dial-404/kspone/db.sqlite3 create mode 100755 Dial-404/kspone/kspone/__init__.py create mode 100644 Dial-404/kspone/kspone/__pycache__/__init__.cpython-310.pyc create mode 100644 Dial-404/kspone/kspone/__pycache__/settings.cpython-310.pyc create mode 100644 Dial-404/kspone/kspone/__pycache__/urls.cpython-310.pyc create mode 100644 Dial-404/kspone/kspone/__pycache__/wsgi.cpython-310.pyc create mode 100755 Dial-404/kspone/kspone/asgi.py create mode 100755 Dial-404/kspone/kspone/settings.py create mode 100755 Dial-404/kspone/kspone/urls.py create mode 100755 Dial-404/kspone/kspone/wsgi.py create mode 100755 Dial-404/kspone/manage.py create mode 100755 Dial-404/kspone/requirements.txt create mode 100755 Dial-404/kspone/static/images/rectangle-5@2x.png create mode 100755 Dial-404/kspone/static/rectangle-5@2x.jpg create mode 100755 Dial-404/kspone/static/rectangle-5@2x.png create mode 100755 Dial-404/kspone/static/styles/global.css create mode 100755 Dial-404/kspone/static/styles/index.css create mode 100755 Dial-404/kspone/templates/README.md create mode 100755 Dial-404/kspone/templates/index.html create mode 100755 Dial-404/kspone/templates/package.json diff --git a/Dial-404/LICENSE b/Dial-404/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/Dial-404/LICENSE @@ -0,0 +1,201 @@ + 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. diff --git a/Dial-404/Models/fingermatchFinal.py b/Dial-404/Models/fingermatchFinal.py new file mode 100644 index 00000000..b7c435b7 --- /dev/null +++ b/Dial-404/Models/fingermatchFinal.py @@ -0,0 +1,87 @@ +import os +import cv2 +import tkinter as tk +from tkinter import filedialog + +def matcher(img1,img2): + #img1 = cv2.imread('ArrestpersonsRename/scan0040#_1f2e6adc-f0f1-4780-a950-d2efb44622e3259.jpg') + #cv2.imshow('Face1', img1) + #cv2.waitKey(0) + #cv2.destroyAllWindows() + #img2 = cv2.imread('ArrestpersonsRename/scan0040#_1f2e6adc-f0f1-4780-a950-d2efb44622e3259.jpg') + #cv2.imshow('Face2', img2) + #cv2.waitKey(0) + #cv2.destroyAllWindows() + +# Convert the images to grayscale + gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) + gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) + +# Create a SIFT object + sift = cv2.SIFT_create() + +# Detect the keypoints and descriptors in both images + keypoints1, descriptors1 = sift.detectAndCompute(gray1, None) + keypoints2, descriptors2 = sift.detectAndCompute(gray2, None) + +# Create a brute-force matcher + bf = cv2.BFMatcher() + +# Match the descriptors using knn matching + matches = bf.knnMatch(descriptors1, descriptors2, k=2) + +# Filter the matches using the Lowe's ratio test + good_matches = [] + for m, n in matches: + if m.distance < 0.75 * n.distance: + good_matches.append([m]) + + # Draw the matches on the images + result = cv2.drawMatchesKnn(img1, keypoints1, img2, keypoints2, good_matches, None, flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS) + + # Display the result + #cv2.imshow('Matched Faces', result) + #cv2.waitKey(0) + #cv2.destroyAllWindows() + + score = len(good_matches)/len(keypoints1) + + + #print("SCORE: ",score) + + return result,score + +def select_image(): + root = tk.Tk() + root.withdraw() + file_path = filedialog.askopenfilename() + return file_path + + + +def main(): + imgpath = select_image() + image1 = cv2.imread(imgpath) + cv2.imshow('Selected Image', image1) + cv2.waitKey(0) + cv2.destroyAllWindows() + photoPath = "/home/krishnatejaswis/VSCode/socofing/SOCOFing/Real" + for filename in os.listdir(photoPath): + if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png') or filename.endswith('.BMP'): + #print(filename) + image2 = cv2.imread(os.path.join(photoPath,filename)) + imgmatch,score = matcher(image1,image2) + if score>0.9: + # Display the result + cv2.imshow('Matched fingerprint', imgmatch) + cv2.waitKey(0) + cv2.destroyAllWindows() + score = round(score,4) + print("Match percentage is: ",score*100) + break + + + #print(imgpath,filename) + + +main() \ No newline at end of file diff --git a/Dial-404/Models/fuzzysearchTest.py b/Dial-404/Models/fuzzysearchTest.py new file mode 100644 index 00000000..8b6637b6 --- /dev/null +++ b/Dial-404/Models/fuzzysearchTest.py @@ -0,0 +1,39 @@ +import asyncio +import fuzzywuzzy +from fuzzywuzzy import fuzz +import psycopg2 + +async def fuzzy_name_search(names, query): + async def check_name(name): + return fuzz.token_sort_ratio(name, query) + + checks = [asyncio.ensure_future(check_name(name)) for name in names] + results = await asyncio.gather(*checks) + + return [names[i] for i, score in enumerate(results) if score >=70] + +async def main(): + names = [] + query = 'mohammad' + + + + conn = psycopg2.connect( + host="kspone.postgres.database.azure.com", + database="police", + user="mykspadmin", + password="PoliceHackathon123", + port='5432') + curr = conn.cursor() + curr.execute("SELECT person_name from icjs union select person_name from ksp where person_name is not null;") + names=curr.fetchall() + + names=[i[0] for i in names] + print(names) + result = await fuzzy_name_search(names, query) + print(result) + + + + +asyncio.run(main()) \ No newline at end of file diff --git a/Dial-404/Models/main.py b/Dial-404/Models/main.py new file mode 100644 index 00000000..01943b61 --- /dev/null +++ b/Dial-404/Models/main.py @@ -0,0 +1,24 @@ +from fastapi import FastAPI, HTTPException +import psycopg2 +import photomatchFinal, fuzzysearchTest, fingermatchFinal +app = FastAPI() + +def DNS(): + conn = psycopg2.connect( + host="kspone.postgres.database.azure.com", + database="police", + user="mykspadmin", + password="PoliceHackathon123", + port="5432") + return conn + +def query(stat:str): + conn = DNS() + cur = conn.cursor() + cur.execute(f"select person_name from icjs where state='{stat}';") + result = cur.fetchall() + cur.close() + conn.close() + return {'result': result} + +print(query('Karnataka')) \ No newline at end of file diff --git a/Dial-404/Models/photomatchFinal.py b/Dial-404/Models/photomatchFinal.py new file mode 100644 index 00000000..bf451742 --- /dev/null +++ b/Dial-404/Models/photomatchFinal.py @@ -0,0 +1,86 @@ +import os +import cv2 +import tkinter as tk +from tkinter import filedialog + +def matcher(img1,img2): + #img1 = cv2.imread('ArrestpersonsRename/scan0040#_1f2e6adc-f0f1-4780-a950-d2efb44622e3259.jpg') + #cv2.imshow('Face1', img1) + #cv2.waitKey(0) + #cv2.destroyAllWindows() + #img2 = cv2.imread('ArrestpersonsRename/scan0040#_1f2e6adc-f0f1-4780-a950-d2efb44622e3259.jpg') + #cv2.imshow('Face2', img2) + #cv2.waitKey(0) + #cv2.destroyAllWindows() + +# Convert the images to grayscale + gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) + gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) + +# Create a SIFT object + sift = cv2.SIFT_create() + +# Detect the keypoints and descriptors in both images + keypoints1, descriptors1 = sift.detectAndCompute(gray1, None) + keypoints2, descriptors2 = sift.detectAndCompute(gray2, None) + +# Create a brute-force matcher + bf = cv2.BFMatcher() + +# Match the descriptors using knn matching + matches = bf.knnMatch(descriptors1, descriptors2, k=2) + +# Filter the matches using the Lowe's ratio test + good_matches = [] + for m, n in matches: + if m.distance < 0.75 * n.distance: + good_matches.append([m]) + + # Draw the matches on the images + result = cv2.drawMatchesKnn(img1, keypoints1, img2, keypoints2, good_matches, None, flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS) + + # Display the result + #cv2.imshow('Matched Faces', result) + #cv2.waitKey(0) + #cv2.destroyAllWindows() + + score = len(good_matches)/len(keypoints1) + + + #print("SCORE: ",score) + + return result,score + +def select_image(): + root = tk.Tk() + root.withdraw() + file_path = filedialog.askopenfilename() + return file_path + + + +def main(): + imgpath = select_image() + image1 = cv2.imread(imgpath) + cv2.imshow('Selected Image', image1) + cv2.waitKey(0) + cv2.destroyAllWindows() + photoPath = "/home/krishnatejaswis/VSCode/ArrestpersonsRename" + for filename in os.listdir(photoPath): + if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'): + #print(filename) + image2 = cv2.imread(os.path.join(photoPath,filename)) + imgmatch,score = matcher(image1,image2) + if score>0.9: + # Display the result + cv2.imshow('Matched Faces', imgmatch) + cv2.waitKey(0) + cv2.destroyAllWindows() + score = round(score,4) + print("Match percentage is: ",score*100) + break + + + #print(imgpath,filename) +main() + diff --git a/Dial-404/kspone/Basic_front/README.md b/Dial-404/kspone/Basic_front/README.md new file mode 100755 index 00000000..3bd2151c --- /dev/null +++ b/Dial-404/kspone/Basic_front/README.md @@ -0,0 +1,10 @@ + + # login + + Note: Please ensure you have installed node js + + To preview and run the project on your device: + 1) Open project folder in Visual Studio Code + 2) In the terminal, run `npm install` + 3) Run `npm start` to view project in browser + \ No newline at end of file diff --git a/Dial-404/kspone/Basic_front/global.css b/Dial-404/kspone/Basic_front/global.css new file mode 100755 index 00000000..21ed7445 --- /dev/null +++ b/Dial-404/kspone/Basic_front/global.css @@ -0,0 +1,12 @@ +:root { + /* fonts */ + --font-inter: Inter; + + /* font sizes */ + --font-size-base: 16px; + + /* Colors */ + --color-white: #fff; + --color-black: #000; + --color-gainsboro: #e9e7e7; +} diff --git a/Dial-404/kspone/Basic_front/index.css b/Dial-404/kspone/Basic_front/index.css new file mode 100755 index 00000000..6143cb97 --- /dev/null +++ b/Dial-404/kspone/Basic_front/index.css @@ -0,0 +1,127 @@ +body { + margin: 0; + line-height: normal; + align-items: center; + +} +.desktop-1-child { + position: absolute; + top: 200px; + left: 400px; + background-color: #f7f3f3; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25); + width: 650px; + height: 600px; + display: block; +} +.desktop-1-inner, +.desktop-1-item { + border: 0; + background-color: var(--color-gainsboro); + position: absolute; + top: 401px; + left: 484px; + border-radius: 7px; + width: 498px; + height: 51px; + opacity: 0.8; + text-indent: 20px; +} +.desktop-1-inner { + top: 541px; + left: 480px; + border-radius: 6px; + width: 502px; + height: 53px; +} +.password, +.user { + cursor: pointer; + position: absolute; + top: 361px; + left: 480px; + font-weight: 600; + display: inline-block; + width: 51px; + height: 26px; +} +.password { + top: 500px; + width: 103px; +} +.rectangle-button { + cursor: auto; + border: 0; + padding: 0; + background-color: #938dbb; + position: absolute; + top: 637px; + left: 480px; + border-radius: 4px; + width: 502px; + height: 61px; + font-size: larger; + font-weight: bolder; + color: white; +} +.rectangle-button:hover { + background-color: rgba(134, 118, 184, 0.69); +} +.rectangle-button:active { + background-color: var(--color-white); +} +.group-child, +.kspone { + position: absolute; + display: inline-block; +} +.group-child { + top: 0; + left: 0; + width: 90px; + height: 85px; + object-fit: cover; +} +.kspone { + margin: 0; + top: 25px; + left: calc(50% - 9px); + font-size: inherit; + font-weight: 700; + font-family: inherit; + width: 138px; + height: 40px; +} +.help, +.rectangle-parent { + position: absolute; + top: 245px; + left: 562px; + width: 258px; + height: 85px; + font-size: 32px; +} +.help { + text-decoration: none; + top: 747px; + left: 952px; + font-size: 12px; + color: #2c63ef; + display: inline-block; + width: 60px; + height: 26px; +} +.help:hover { + color: rgba(43, 99, 240, 0.67); +} +.desktop-1 { + position: relative; + background-color: var(--color-white); + width: 100%; + height: 1024px; + overflow: hidden; + text-align: left; + font-size: var(--font-size-base); + color: var(--color-black); + font-family: var(--font-inter); +} diff --git a/Dial-404/kspone/Basic_front/index.html b/Dial-404/kspone/Basic_front/index.html new file mode 100755 index 00000000..b3a69f11 --- /dev/null +++ b/Dial-404/kspone/Basic_front/index.html @@ -0,0 +1,44 @@ + + + + + + + + + + + + +
+
+ +
+ +

KSPONE

+
+ Help? +
+ + diff --git a/Dial-404/kspone/Basic_front/package.json b/Dial-404/kspone/Basic_front/package.json new file mode 100755 index 00000000..6b40f9bf --- /dev/null +++ b/Dial-404/kspone/Basic_front/package.json @@ -0,0 +1,15 @@ +{ + "name": "login", + "version": "1.0.0", + "description": "", + "scripts": { + "start": "parcel ./*.html", + "build": "parcel build ./*.html --dist-dir ./build" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "parcel": "^2.7.0" + } + } + \ No newline at end of file diff --git a/Dial-404/kspone/Basic_front/rectangle-5@2x.png b/Dial-404/kspone/Basic_front/rectangle-5@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..a79f880fe5213089cf411f39bad68dc249aee670 GIT binary patch literal 42470 zcmV)CK*GO?P)w{^-}+X)dH`qTtelmza#sE~g@Lp3-x4vt^xhYTFB!gSb=cj&9+K4^qm9iS15oh&MMvO>WGNF=WP27^e!vdpt( zWe=J;?iDyIf2f>Q=s!>*WwN!0Mva!N$yPce&=&GFGS`-3(*Kh#@0E0*qibIM|zOfU3hL z;18(bhKPs>kC&FF;19>)to&iZ!dV%pBw(XGo}y4}#`m}Qeb3@|<94>UL-eI42uqT~ zmJ?!l?fW+2$6t1u;c%%6ToDdXPBnv)6`DTE|G-+Yc;4)QfES0TR9EB2KsYM{ma`Um z0HPC%AG|g^{Fxbgz4V;mV7RBSa8i;&amUuy*6h7TW8Mo%Ns|KuSg;0|K`j~y6O#0B z-_zg0{g>*YvcV0bCr*G+^a_jiZh(maIvB22zglK8?R86~;Wn4+-tPtvzG;47Amp0O zaDQ>}f!~^&XW?nv;jHvqL~vI6C24W;gz*9Dk3UJw&_&2(pcIKf%ChWejV2U756x1m zr`I8NuF;xc&IKZyANqkO;y9#i-Cu*u6g&lw28%A1;Lr8=O#Uc7~>_)z^GE zXwbuWoRJrWgb3%7q4iFb%OgLpt8?MUEpS%)EoT+_)S?_5Cw}PREA=0re~v8V)0{?V zsOLb8z_`L@1GLbPh_5`01!ClKC`H9xS>FQfW)4OVl0j{=8{S`GfMC5C7K~Lw8-D-t zw{4Kz79c3@qL2_xvDGR(2pjbFjEPskoQ7y9K}8;GDsn>t)^f3Un|_@G!G2E~dXDOv*G z|7PK4>jIf7gczjMQvw2j=XuzU4&f-R7Tl3`_+n=}OwN?U`ki*zy@C-ecLKVT*{I~h zRT>Dd(Lz32b+Yv61j3fKHZUTcNAI^9+Mro(V=C%hz{#Q^DK3N&aqacnvTYmStn?{o z6}k^uJXLl74f8bjw_7+yF5%%|fgJ|NNx*hY!9=;*s|Mbgc!u< zG7T^{-!6l+7zujqCMYavfCb|e6StqR9jk3}=fYX(Rn97OA2KLT_B=v|__2fJu=;%l z(o#ea8^^-R?>K0%I|aD0*I*#F0&3A(BP)UIh6py~m|weF;L2FY4;xA8~Q86)p7YClI>>|g{a8`PivkKjZ0f>RePm4XxD z#vr8<)}zIyzt@C^Lw=JTzRGTa!fGe%EVRJpYzw^gqXE+GI`|+h4fY~DNx^N8m`t!B zCP9#-E88(Si?el z6N3;#17l=*xDu6pC0g=-mX*N_R9-8F$O(Ht9v=_Yc)V2zLkblJ2$jen%q@q>wlH{p zL&MH*_qWeSWv+p<(x;qN=u=CZ30$V=Iks7|W=q6ZJkwasn^_H3d zK;@>+aH7)Da>!;VyY*g4$cxKb+Ll$dU*K@N%i*k?QqC%LKcviJKhS7$^PjIZ%8!;f z*8DpqWkLfgDZzv*!opw=T4f5V1R$oCAZu}ZR1~a6D;$KMzd(nPpu{nJtw4HjH*R|; zDmTFtk_1v<{B10n!Hw>LRqT5JuNvY{Of*sXpdEY~vydL4hEvVeLz?8v3&|vZ)9D}*_Xp4Pt+O%!IjhhE5QG^OMAMNKHX}_( zVQUJG(1bz6)k3t77!Oj?F{sQxdo8XR75?#(5*Ue0hz0j6N9!yoHCpv7+@F-4;L32c z=F}-RqEeHi2xsy0faNU9F#tixFcayvQN$xtP=yqkLkLle3Q8E5!q&uIkYh)VAvufN z(4xEWyEs&KQgmWNC`zcu-$;3h^%#wxmm}tm!p^b)x#>-~4<4fdG5URQRt6-0d4+xw zMxM5Vs@VnW#M4uL_|Cg}Vu+kaI~8?mm@;cLx130V%nTniyVq%g>361C!l0uRqx8eH? z3}sV-5;=neHHfDsT8{8EIf3Ljl0!-K9OZt*qD9YCdy_A`DQLWCe~Nn&G^PI<7Ye2}UCWx%pyfX=S0Y$@8d5 zxhGGskG}XaZY5cC_>0M3%0kZ%4Ah=?fo*L{vMbzTWdKKb;Q=a@yr9%k;T+V|iP1W9 zP+2Votp@pGEgw;`FW|>wleKXGr>evd^#%L5wvfxOkTcg^paKTZ1jOv zN*JIlna4btHOx7JLuD?n6hnaCbB`Ll$F?>WVxrx`DCKlA;BqmLlH`iCwDE15avZzh zFC>2{g}!FK`09DHY}b+!x3r3&1s`NyfrONnhFif>(Zi(yStjG5xI_%`ac*!p+2Xa? z&fNnzm8%{cwa?wAzx3(_YGHUUsd0kA%)#VL1!N{kL8Rm0?rSt~$Je#cU~xlG81R9E zT+E|4X@w+znseCH&cW5^s0Ay(r^W<14K^!A3eU&GIbncu?al;~qNHanay3=ZzWZ9=(Z+b>EABULU}zz-VbKN)JOP{K)6P0Pyyf{AEJ^P{yEq6vo zx*4;X0fhfTM@FlymdRPF4bldG5&26gH1Zfm`ip)VJ}?&?Jt2YGdXa0zFXGIVwZ2qd=Bl_<%wU58L(eO-v&n1_L+ARnh+C+??piUPLb|(*IbuJi{ zCWAG5EpXj@4Wv(=!jHb-Vy1q137nr%Ni$D`{S|Ts)C!O9M*9b7M359I8SscnIQYs- z8{Z;jCK;6Gf}A|bJD(hGf4^g+LRjhIwJo!z*`8FPbBJ(5z}Z$CT5=IP;L+fJS^iQ^ zq1DP1)8Fz+5fm1Q1RTk`nLK}GCQ&3Oi^LL6<@+p0Ww_=F^OJW>(OnAt6h`dcvTBbN zJC8?^YMR|(b8t{l;SjzkMaABi>j1aICTMMAn~QI1CwN2Ky5M-J1ENDZ?MbkX9tA(( zG6h%9ZCO5Mq$91{)twYFFDezU3k=`{9KHXLR2adUk;(&u{V&B$|D_bVt%a$gzX>>; zrl-0fB$xxWhC3;jn6tIVpfwNi{|+BEJ9(UK8uU|;O0L{-%vK|nc$(0R);c3W4!cfx z6gUE{Zf%PT9Wal=SGLKSJvnwzqh&sj=MXvq6`=8nM2w7yjVpu!$hi>_%E1}VIo-ck ztGKw6uUA|m!qdgax*;va3E^RGu-cinjYeY&{DtH%rOUo={76gtQdhA>R4^*E+BD{F?o znEbUOg;HKi!4i_1S`mnF1eVFTu$iH%u0wJ*nayBiEa(iw=B-lU9+oZz_tM73lRDv0Bw!vAhL z{Ke!irO+|4&X|xOk3!q+o}n0{XXqq}C-=4Af&G%_vyV#-|F%Z_8T4O5QJF=h7*Hvx zMQ9No1}c33L~(^&PK6V89=E|~zZn^)&65LUX>Ws~N;@H0fMwjq= zyNLs_h#?1WKnY`e4@h6$yj}Lg%Idc4zP5{sa*s%e^Ejy#bRls#nMv>$lRqU=I43Mj zm7tYIB&)=-Vzc898}=@rD!z3{hI1ml4?wJFG_n*01i1`~e>>vb*xP;wYwfMyY<7Q; zZ?K=zEQi;BLB?XlbS|dsLnc{W%f=ub7lsT5QFFTS zmw`;Jg+r@Wz;I?8DlH4uNbv=^E1>ky0gmAu3^5!M1b_9doKmf1COxwx@RDD4nfJQg z(0Z!t*;e4#`s)GLDKiGIm?nNjsQ`6o2q(~)B#4Sst$9J;yY^rNn(ou9}RzQGm;v~oQ81}x^e_!HU19Wa+SV<&( z9(mJ9Nunij+S0F)jzvlgd%Gb-&mzutve~sku;Q2uUcJ%=8YSX?y=W#u zm=Q^G_3j+oVm#+*DcgA$pO+wJm6B!Oe_t>^Tpc2pIm7kX7A7MDN`;5mh>mc>;zfq# z@{QW-zCL2;a7d@2UMQn9iDO2(Cq+hZlhG*X8k(4&o?c=8y8C&a#8JL{w0`oW(e~S7 zV=5*q6nrRBlCH;DN%7I6lAT}uD1KFIZ*oVbD_ z@tV>ycJ-kn^1~vD+m;ybo`239`;95du6W;e6yYi<6H`vYah_+YBoa>Qb~BTP401}l zr--8G4=wG;dYGA?R~WCmdHmQ(tE#JNKYr}Ke|!k1Au~tGZ@6f(`ai^IpyEMswG+PG z;(%I37F;;Enu`tQ+0s@OUyYAXiugSv(g~Z}Mln&NXMxM<0L!nB0xMSw9iavBtO6ak zW`_#4mW8|T9-E6)ql*m<5HT_-BZScp7um0VZ@J+sI1QP0-8A_%3zqy=Sy{Pt@2jtT zde`mdGKGS8XczhxUAJv*V=1CqLJ)zHah7gLuUz!R&+7K}cJ76jo=#cy z&8k*74M|B*J#f(t7rk6z(jbG<2BC3DAVEAMQ>j2AlY>|$1DnYNR)Ya}&JDqF@xVEq z;Kred6k4It3Cu@hMVWxN>AhT|29ZRH?^$RlE8(qet)O;PLr7Qv|IJ4$o@**Ee*#WZ z9)I!4Yi_&q&d;~5S+l=+_1{J>TwoOvmWZQ|iadS&LMU`nryx0UOw!!i%KjJ}$ju!( z#2HWD5rz8pN2-NyZ#Di3XF$#vhQ9wYcq>59)8dn`b%)~fCGS`-T)x-!qui|8URfy_ zgAPgvH54mc5d*}pQr4KF2S2=_k%jsu5e5i&kn~cyLZt)@tccM$WFdCs5?$=@*@~Zj z`uQIpzVhxiI1SMRg*>cJ8uol;i-^g(@EUMgZD49?0fklv3Y`vO2WLV6a?Tc1$bd-V zo_UZeln^&83xZ_eal4hFeO1HrNJ&|F!89l!`B2lj#6>0oN|^O$Wv zuVSj}Elg-a;`sWa!c};%IyeoHM@Wl810om9o>z8)@os`pt&Nj<3LK>>k#0t-1-vJry*du#;*~*Z`FRg9<(Rd>0yJ1=O+q7C< zLeHnAMPy!e$azK-`ix;{iK?6y6qP+K#U(U+ZR8BtvvcRi+jg%1^2sNk zWbwtpz(jV=J%7KgxvG*KwQ!MOjVE4yH5~YLIRwSTfG#u)BekArm))D+S72d!r-f~KfWj_Iq_)hh;x-u@L8W*V^9WKl>dZq99h0x{w>TN zxdxJxTphm?tjH@ALn9g!iZ3da9EQ+2!sOMD{%E=jLp8#72Hwn|f$G=~4OJPOAvt3f zI#ny@5ev_yUa!;fBlIq9{fu=%A_7(VDh{ zR4xZI(r|8<6N01TP?6=r;>Ru3RbXvvM>wH}n88D#sk{t~%}ro#ZNc9v(K%%WSQ46$ z1XVf5g;#h=8tMiQwW!R&F>wMEA&YKoY67WJ2|-cO(!!&MzqPiv4>+oqIy5RQC2`R6 zTQ+QZly!&~rUf68^|gIis2h&%Jpd)yTOm?^0^G>NS5lmc=FDfmEHV&~4Y!mLTP5ZMnL*w_RIipt6g zF1_ONmAZhS(<&CO2nx~@ydWz|3QCYdDpx=VLWai5QZV6nC$?+^V`BrT0s;ig+)z@4 zkfhlQF+#v*G=kM=fX0$y#Mwp=p_Z_y;FZU-A#cZ4$eg@lDEw?n}sL8JTH@b7s{+=3p1Jw=*=c z_Ee`qfXGMs-iL-L;?!zRe(;E-ecMjiw_kjzn6|pM?Tl4UJ)^YU3u}xY!y5Rw^BWsX z3kgw&hdM4el>Q|n4 zW-FYAj5+uGM}yE3i&41(A|j!&tPHX7aD)(Uw6LkdHiU!8(wfk+>cS&H8x}5L=u%W@ zr_}-us}*Dl72@njPzD4F_?z}M)Ym}-{w1ey@bnoFnUW3&GX&+AtJH#)nVVa~;522! z%GHnF^YDX59)9!9C-T;CFvztUWMWsZ+Y_9q#waU6hPkussGz4d8Y(p(H76`+?ArR~ zeN0}Frl8C_Y+nS~D}svkx~Qk9;-aTZWWv(3ELVvVSk) z=UCvVlmSZ&MJa^DCm>$LXh=;pL?H%lC@ldQT5^ZY21;}u1EZoriuhZO*xArn5Bi7* zRNey6M@EA-C>Tl(?nmsL0qUS2Xu$JG5R=#Boq+A1{bvy#_q4d&!v_vGqz@g$j~O>^ zdi?N<;Y4FHINOebM%**e6B*$ad=F}4m8yS`OpmKP@R@%#edK^QDuw)gL)pc$Grwwv+e;M;?dfg8pqdP ze|hESZ~SL3oW7XQ+TMZ|R7Qh#O+hZyqQV&(>LGXg76BiJB_>1ViDT$6$^@8TMTkKP ztPhJoOYRU9RTUU0IF1K@U5499A$9yDWHy`v_Ld)u_Nk{ZU7;TP(2g!}qFN z>+2qe-yv&8tllwAIx{9BG9oKBDHGVJ%b>V93>hFhI4zB!kh*@);f2wY9LA7fPK(%i zmM+MBeu7H1epiY8jOSXPafNeX7y31IEsd#Q@=P&EZ??0-+4xt(Kw?RdSP&|CO*!1y++fi zv|F~z1ok2*$PHIqaxyd3+9u>V1Jb_W!ax!MClQH0Dew@dFXcy%Jbh^8FTZg-2N_dl3JOTSWVo;3P~veKD=M5- z$FskI(<}$pUEGHb>1q_)tC#J{+@CS;>d}M8T>t^-lRHG6@SNzXZ0U<#E-A7Z39en%+28VF_8?QHkM(qu&N4lfJg1CA3_5hqgIpd|k9zREW*#+mB zzYGiI#3nOxnToCvL7H>dj008nW(Fd1P?5?Q$guE$aS~xTIfj=!94QaVYj45EEuYT7 zlxsOu7!e$>-3a0GG6-<)2EE)M9FKxCM~_MVed#OqJK*=ryg`$uq@hKQs4FY^yILP8 zqDY^KmY+a8O_p1UK^D1MgNo^fCX5J@#il?Can}q6BwRSmH&;~&L6#Q8+A74>#+D{@ z9Ie<{MF>0UtTwadey7Q@x9H%WL+}U4{Fu$v^Q&z|1dz^8nJcKg7JjbSilOqwe2)>syaI9i2VW>>|MbUNiduvQ zk6K!dcR1am2p1;;30h)@-Hq4K49zv3=O|aHz|`1+v>R1dK!WCL^ zg?Boj8OM34QjPCjrMTgR@CPb0iR}mDtE-es^|UFr#{={ycl@ec2GUWP_hWme`n9jf zZ@M8V3XOR*>5}>dDYp(GV2y(pV!1Ki?f&t!MgPJwfL%GJPky|5;df6PX10B0=@5P?tLlavEDMY4)w@iDzX;O<~5mMt&xB`VggvqAz(5Df=x9TnvS%CrI-a%l~j0H ztfAnJngDiDBG}sWz(kA%r#T4Z_?uv)-<)3(&i# z1_g3mB8JD7GLVF!k6?Vi2iw>;Wt=u@VLVDqSmh8I5d2HF&oWb6_p zxfAg@71He<_|LB?TYU_1{YgJ`rYKxIX^EMfT5v1G!NxZS1NwKd5h5 z+SnMJ1m~2Bpery%WkjWD6RuVXq|9AIpccee9Bw5?brHkKsf4AlZiy4jpFVc3YRo2Md~M}O|d+Z80Qj{x3-yPXj7HW z&TWin%JS-5gAq2I;{YSxj|~-4<+a9LT@td?9O|1KyC{cSnxP&WT!GiC?Ra^%YsHH; z2rYmLJ{BKJ1xPp*-KH-Jmz?O**XdlNqCNd#_BnHGca7U6FW#qb zfC=$8D5T6`er;^TYe@2bq%0%G@3-SXzj;2>9RzxRLLg;Q*zIQ|!_HsMxI!Z(H_F$$ zEq*=Sj_*mqeY(@s`IBIg34-_(+U@rn3E9R`96xOy%ifa1asPq=%EGkZw5!fHeL8N8 zdAyGkU%gWbFTOPvBbg!$CU6)yKyRLBF(fS^rCXE)vPDb}h>b_ZwIk|xqg^IgA@aJk zgqum3op{$~9K^-g1*jvixP@Fms~(Aiu$$fBxcROputgXbvL{4%Fc|a@3u_!+efdGS z4sA!oZ9Kr_Dyd{uk=tG0&&z^)XXxf! zzSz8GQ@he{=^u8xGGz4j(D36CW`_1SkID z7RD7fK47Jw#AJ1S(1SomCJxF^VSIBQ4%W@6z9qPguTzkMdK6!T$1({WgPcY>2U=<2 zoMh4IHwXTe3Km@qCr(6xk*kNXLp@4O;pmtsce+~3UMOx;t;lIUHEz9@Wp6^`LbR!% zz=V<4Vtblt6)&3Wh@ZFNUn{jSzKC_I^>$-Y@SpJc$-vY8Rg5PHQ-d$!q-oo7mT9g8 zc)6NoD~dU;7S52IahBr?R`mH)p1+3PAH-KCczV@V#uL&eyjBmMVT=abz4&>$-#~g0 zw;Sn);r8I~WB9I);*Tuz&HZlomAzfVq*z_RHS?V>O`B}{n|})Gvds!q=1CytJ1Xs> zD%E%yiT*7|;_(AoaYQMD%b^-Zbo1GA@k+lyPUbKq;JYB`uaL6akyB6#E*T?qq>C=u z33py*=(1f^4O_W-t^6NP|7!lWw`0x5!SE4=-IwUMQmt=D^JRAAU^^2O@xco!i%Pv- zj!B;NV8aRV;MguE%ibRX&^ZfIq8b=t9 zWhHz@y{f@W)KjAo!;t`zfN}@qXuPXxe`@Za>)XJTW{B%@(oyD|!B;^0YUP z)uvoD&#__l4BK4)3ARf&DB#V1PZBIF2_@@W(WdrBula-*?6V!WX+>JA7#5*5z8?zU z0(1x?dIAbtj7*43%iZ%|OMg-FO7H50}Pc(WOEM^T8Ri)a|YY7?;_}NoX~^ zE+xsmC|a!4*Mf6%W8=x?1MX%;Z(|t87o!r+zYN=Os^2!1&>8(BDf9Br)MO&>i)cK0 z4&<;?*Cb_cU_5`Zr-<>liMx6JBNO~SCT1XVMxDYCo}ce?eHVF!(gWV484`jf6usK-wGxEms6lV#`Dr^**L}x)5)aojL4WNvSD4<8 zjC6OHV4BJN@iGAuT7-&viSGkBazsVU?#3LM{hUG$ zx_X*f3!kQAYu@k9$r;(3pP zj^#ZT!HLaDUIm55$(q;UXNqX~?4}ftMKwMN!VL9(Z|HQ|Veue+T+$rd7gvunOp*D` zT`VdQ3&-1cB;HS%iJxdeMGfi_6bV4E@D^Ua2PFKlRj%kEWC|}brd^q?8EEYv0SdYK zlv<2RjgBFzzY4oMIhlDU#xmco+Xoj|+aM{y1(cpkB_76&c8rLQY}+?}t>&d?R~lcS z{o{pfP+oZM$5Cm6cn`DWe@EGrhT!*n2p^B)JB?2j#_dzRo6~W8yW;b< zi5-q6ID>LVi#2K)rX%~x;D_GH*^3A0@b}4lwqT?A&>=zy_@3?Dff$e+zx^qdlx_t1 zK==~3BRp8@r7Rwpqr3H#_XAWSjAW^#BBK~X|Vgz-T2#)yS{^h1KD}LR_`^F zc>Vk{nx%9`723*E*)*SYHUjYk>0al8gc>yozsvV3C2`Uryr)73k(z}9;mUMa6`9`= zb>1N_O~izKc8BtpTdp_0n;6##F-VRal|V#<8v?yW3ulctctH+8cW#-K`Cq8aQP8)L z8^2Mnhk=x2%F}6KCsGurngB%#@@6-sCJ}N%z*l9pTKGFM%K7=qQo2?Nn>sWr@X8X7TViK6uq$f%D|O z8FLI^*i{&IDYJ{LASom%IMH&XW}Fx2QR5N|LUa)𕬬uj|Hcb$e$8om!|nDhx( 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

FingerPrint

+ +{% endblock %} \ No newline at end of file diff --git a/Dial-404/kspone/HTML/home.html b/Dial-404/kspone/HTML/home.html new file mode 100755 index 00000000..4e903715 --- /dev/null +++ b/Dial-404/kspone/HTML/home.html @@ -0,0 +1,86 @@ + + + + + + + + + + + +
+ +
+
+

Search

+

To Search criminals in database

+
+ +
+

FingerPrint

+

To match the criminal with fingerprint analysis

+
+
+

Userguide

+

How to use the website

+
+
+ Logout +
+ +   + + \ No newline at end of file diff --git a/Dial-404/kspone/HTML/loginhelp.html b/Dial-404/kspone/HTML/loginhelp.html new file mode 100755 index 00000000..4761fcf1 --- /dev/null +++ b/Dial-404/kspone/HTML/loginhelp.html @@ -0,0 +1,19 @@ + + + + + + + Help + + + +

Contact your administrator for valid login details

+ Back + + + \ No newline at end of file diff --git a/Dial-404/kspone/HTML/loginpage.html b/Dial-404/kspone/HTML/loginpage.html new file mode 100755 index 00000000..20414b67 --- /dev/null +++ b/Dial-404/kspone/HTML/loginpage.html @@ -0,0 +1,68 @@ + + + + {% csrf_token %} + {% load static %} + + + + Login + + +
+
+
+
+
+
+ + KSPONE +
+
+
+ {% csrf_token %} +
+ + +
+
+ + +
+ + +
+ {%if messages%} + {% for message in messages %} + +{% endfor %} +{%endif%} +
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/Dial-404/kspone/HTML/navbar.html b/Dial-404/kspone/HTML/navbar.html new file mode 100755 index 00000000..f9d46935 --- /dev/null +++ b/Dial-404/kspone/HTML/navbar.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + {% block content%} + + {% endblock %} + + \ No newline at end of file diff --git a/Dial-404/kspone/HTML/pdf.html b/Dial-404/kspone/HTML/pdf.html new file mode 100644 index 00000000..a49112fb --- /dev/null +++ b/Dial-404/kspone/HTML/pdf.html @@ -0,0 +1,51 @@ + + + + + + Search report + + +
+ + + +
+
+

Search results

+
+ + + + + + + + + + + {% if result %} + {%for name in result%} + + + + + + {%endfor%} + {%endif%} + + +
IDNameEmail
{{ name }}
+
+
+
+ + +
+ + + \ No newline at end of file diff --git a/Dial-404/kspone/HTML/search.html b/Dial-404/kspone/HTML/search.html new file mode 100755 index 00000000..3632d70c --- /dev/null +++ b/Dial-404/kspone/HTML/search.html @@ -0,0 +1,116 @@ + + + + + + + + Filter Search + + + +
+

Filter Search

+
+ {% csrf_token %} +
+ + +
+
+
+ +
+ + + + +
+
+ + + +
+ +
+ + + +
+
+ + + +
+
+
+{# #} + + +
+
+

Scrollable Table

+
+ + + + + + + + + {% if result %} + {%for name in result%} + + + + + + {%endfor%} + {%endif%} + + + + +
Name
{{ name }}
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/Dial-404/kspone/HTML/userguide.html b/Dial-404/kspone/HTML/userguide.html new file mode 100755 index 00000000..17288625 --- /dev/null +++ b/Dial-404/kspone/HTML/userguide.html @@ -0,0 +1,5 @@ +{% extends 'navbar.html' %} +{% block content%} +

USER MANUAL

+
+{% endblock %} \ No newline at end of file diff --git a/Dial-404/kspone/base/__init__.py b/Dial-404/kspone/base/__init__.py new file mode 100755 index 00000000..e69de29b diff --git a/Dial-404/kspone/base/__pycache__/__init__.cpython-310.pyc b/Dial-404/kspone/base/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..10ae91a1f9a615a5b6902d6cb8b11d080e64d7a1 GIT binary patch literal 144 zcmd1j<>g`k0`sDK$sqbMh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6vQKO;XkRlmTn zv?RYORo^8uF-Og`k0`sDK$xcA}F^Gc(44TX@fuanW zjJH@5Q*tx&{4|+v@ug%X=B4NBCFkdr6lEqAfecv5P{abHz{D>D{fzwFRQ&?O(vtkD zRDGAs#2j4{0~5#e#LPVX?Bas_yj1<9#Nt$au#tKNmA5!-a`RJ4b5iXXfrb==3>07h E01sFy+5i9m literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/base/__pycache__/apps.cpython-310.pyc b/Dial-404/kspone/base/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d02fee95e4708e41b387fedd348147cd6cdc6ee GIT binary patch literal 419 zcmYjNy-ve05VqqKh5jsv6^S(iF-VnI5NZp8tqWTg%k8-#;KU|w2D-u%@D{w12Not? zfr)cdiJo+y@8|pOtTUrgpP*efU&{}CzeBQbF(wmqcZvW6s3sN7DJAy=B4F^Y3~PFB&GgvYVD1wS7osbm3^a_Owipif+9Huf@+#Gi1HX1PKkYgCY|c^n-h4F zbzw4CWR(G>T{bI=X}dOerPAQz1ybi}&nH6EvQk3$z7WW4b%=*TytGp9I!B;Zvej!L zQ7=~AfYAFSO}N7remQ?MmE!gSNgKs)OR3Ms=i_N1%bGtsYih;ARxYh|nSE^-O2eVt r0YXAzn$T@+o-#k!eLrxUDC`LA|7~3~z?x64x^G{H6S**ONRHVbcSK|T literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/base/__pycache__/models.cpython-310.pyc b/Dial-404/kspone/base/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b75f4b903c4624b3bb265f16ad19d61d2743f6e9 GIT binary patch literal 555 zcmZuuu};G<5VhkZO-m!HPW(a!npWzFP!R~GR!D4FEVpO1DNa)2R0395`4A+&$O{8g ze}Rc}0-_R}?I-))6zPD%$WP5XQ$ z%F9$LFs|iaNqK;L4WFZURb(>WjJ8$rDC3J%sN?Z)e6|#69^dLsk;`~4w2T`sgUv%} z$G116Ed-=TYvzwjil-AR>mmHO1e!2#&>b`GR8|5#7AjrHS>%>J>dKad0Ko)v;FXvw z`8#d1>sm>OU<YXATM literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/base/__pycache__/pdf.cpython-310.pyc b/Dial-404/kspone/base/__pycache__/pdf.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed0f6a06001002b901e9b55e6753bf482b24b65f GIT binary patch literal 748 zcmYjOy>b&V5SH%W&Y8Gi9BR5Nu#-&a7>1t|p)oUrp}59#oMiigbkaz=5NFPnX?X{` z>tPY#WYIe0Nt#%0-2uvEKfXye!1YG_z=7T)gQqSL@+}f=NLQR zV;=W&zw><-@GuWMKVT7$^SJXvmhfKQ5WfMh7rD$nvdS#6KK(!RLrX?Wx zFA;c7--7BZFb1_~gV$c`ZE=ftcI9%t!?+B!_Do zEDdLlC*3e(Jvsk@)Cj8m8Bdmi(}_H5jJT(h%c@|{E>16AFN&(3d~y8I$>%~t2APlL z$|kPRIRr7h){np>xQ`<|0v+N2t0!l}%o7K^jJ1Vu*AKCPgWB>oFdB Fe*w*y!Z`o{ literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/base/__pycache__/urls.cpython-310.pyc b/Dial-404/kspone/base/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6acba1231120613cdd9f5086232dabace8aba5f6 GIT binary patch literal 568 zcmYk3y-ve05XbE%X+B%NO5dRaHArkA1QIg~Ter}2)0BM4PC(=xka!Ii9>@a=Q)dPw zChpn@)lvR;Kl^0=eJ%%sfZ@3K_?&-p#=Z!4M}%;VzkWjj20UXqpK;Eh2Ugb0t(nD{ zEox!H9cqI{OO-S!NMZc{ymj%Ivccm1Hfik&7Q$Glcawn$VHFoi zIc-#?RS(@NkHkhX{>EVyC$dY)oAPO$o=Alx^c*JG?oFqvAx(t1A2y(ts?hIDji{33 zR|vY8sLqR<)MJ#0MSN%v J`R?ca`~kgYo8$lh literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/base/__pycache__/views.cpython-310.pyc b/Dial-404/kspone/base/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3e50613b9c11cb8194acee267374e5330e41a23 GIT binary patch literal 3441 zcma)9-ESMm5x?C#9*-ZQs4suWUrd^`C0a{%>^`({jWmu62MClPN)d#pLD1Y4b=G~* zyL(ndP(TU^u>0T^MPK_sJ^Ej|mp=5#&w0y3(BJG)mZ-FGc-Y<9-PxJhnc10PIyYB! z@cZV&fA{az9p^tZIsJ1n`2bCyV~!&n!6GMS9TxKrkKK;TXpKi+ThWA>&cfxW5zlw#Elvc{it(zrHr;QDw=l1Z%BItP`xR-d?dHCc ziI6G}loX+oeUsN87&H7_>S3B_35|?${Mh#?*CF#;SY3nR86Z1e40x5&jX@LTBGIRm{p`@4$s3gN@wV zPGgySpMARdMIK~Ys-%Z`Fzji)n<~-fY6rscIc#w4_q08Wq|bLYHf# zuy!r?h+5tZb@#Llgdz{m{aBjqRH#LoxC3bv=|lO{1+-SOWD8A}@-kUPYI7otS|O}5 z%wXi#=B1-9WB%QZb-K>_@MdPxkzD^M>_yja-?;sUK`%_!cgQQ``lFtf>rX?utJj8m zdBs|t5t8))CbrqX4b|jmUt*srK01Pa5z@U9r*s;ww?46*- zGPdpA;Sj3?lfXrH1yEisoRXCG7UtSRN0O*(0A{!nN7^N>-x62Yl@Vvb#?0E4Z%pm6 zEu*2ehnff8OI~ok1o$lbLJx%h4v{7L9><;E1~95wC9T^Y&!E8VW-9u>a;X;1;r62n z8RSF+d$%*Z)dJz7sh?3tvp3THuBK&A^|ybVa_$#c*Fmzl5}EPmKZU`lxfLb@sfH>{ z%p17WPNCkQEBu1GU;ZRE4Kny33&k6hlviFO-g?b~l-4JAIR25@=zSfa=|7_T3wy@5 z;EaMF27h&)Ie=Z^9R|rd1l@;>5fdgI#s5tdI*ri4OM!IHZgi)1zZ0eXUZn4?ot&8wk+ee5grb+G_cp)-d03%`GGWgV zIuFE)i@OZs7&&&fn*N_Mw0g8@5y?S}dlXyECRE1eekP84d>Pvha; z-xDWdyXyR?z$YhW1SYf5g{{CX09N4opZPw_ggEc)loThyFFJ+TZT9K`&B<%N7(xk9_-;eaG8??Hy!=XE_Uhr3Qc&Tbm)xv z)a(688D~7>Pl7ShDX4gp3Q{A7UvQ+?lBrSBM4~K(Hl!Bw19I+Q!)7h3ozcV1`=8vu z_eE=H3j^z+tu2+tt+4-Cx3UEFK}*XBmBJ5EkdIos(7c@43Uw<lEtN@xmEj_?!q4)n%miv(M_pOVztTp;C*?->$3k zM2?cBt!r|>pP?pFd0Bof`x%O?U`v|*b}xzw_i7|^w=18b2J1#?I?NkXE1jAzsx0Yd zsL-M=J)=k(X+5M!{eF?L$P=wk<{sFo+#^!zeOjGOqc*sIh;{qstH|CSuLd+;{=VS_ zyvmxq$*TN+YS#K6Y1Y8|5FMEz-E!f+AiH}TRuiN7-f$REJqg>c7j}c!)O5^hiv!(!Q2A#p7NwNZ0f>q9#p9$XU=0i$P9rBwwdtrYeKDAH0PBdzd1#mOtvv*MAp zyP~jM%QYayE)mCgAS4Nj@Xn$rf8;11Yl ok-SR|t#6}Sc9v~fMx|Mk$}+T~rr$CRx&_86@p~ZmhDLbf&Yo62Rq7Tsc>@> z4lEbIbFW~zj|a=3gTTQu1WwC`0|>VMT)=>05rhzJ`CJqN;;krn9>b6bBrdx8kNnvM zAJN#Rc0$9%i4T{l?-I3MHF9Q9tq|O>HM&w}BX4lyB8x_=Qs1FVZqZB|i?UV~I=|C9 zAeJeo&eT^~VqL5jsW1rzT`<>Jg1t_ME|mQhDP1fj^}Q~U>_o~hYgKk-$Q$TduL#H` zfGyU5^-QBRqANAL=$T!06Ej{HNzQd~Mw}-dhKnv1%IwX!Y4KsiKbUz*xxM;xo-LXR zv-X%S-C=e~NN-NYCufDyb#`Ohrp9clEM|{Sl#R#ZWBEX9)NV}o_5p2sL@H#ypydmG zB%X0`@85@i`;2RvX9P=C7tIK!eFHt`{_v5}-g-rqT=;fBlXvvtnC(!Wix=KMlcuj9 literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/base/migrations/__pycache__/__init__.cpython-310.pyc b/Dial-404/kspone/base/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4773a2892bedb279d19b14999741acf6f2f25b46 GIT binary patch literal 155 zcmd1j<>g`k0`sDK$sqbMh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6vGKO;XkRlmTn zv?RYORo^8uF-OTZlX-=vg$lPKkAi=@_0Jyayb^rhX literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/base/models.py b/Dial-404/kspone/base/models.py new file mode 100755 index 00000000..fcca48c7 --- /dev/null +++ b/Dial-404/kspone/base/models.py @@ -0,0 +1,7 @@ +from django.db import models + +# Create your models here. +class Person(models.Model): + name = models.CharField(max_length=100) +class Meta: + bd_table='Police' \ No newline at end of file diff --git a/Dial-404/kspone/base/pdf.py b/Dial-404/kspone/base/pdf.py new file mode 100644 index 00000000..78233edc --- /dev/null +++ b/Dial-404/kspone/base/pdf.py @@ -0,0 +1,14 @@ +from io import BytesIO +from xhtml2pdf import pisa +from django.views import View +from django.template.loader import get_template +from django.shortcuts import render, redirect, HttpResponse + +def html2pdf(template_source, context_dict={}): + template = get_template(template_source) + html = template.render(context_dict) + result = BytesIO() + pf = pisa.pisaDocument(BytesIO(html.encode("cp1252")), result) + if not pdf.err: + return HttpResponse(result.getvalue(), content_type="application/pdf") + return None \ No newline at end of file diff --git a/Dial-404/kspone/base/tests.py b/Dial-404/kspone/base/tests.py new file mode 100755 index 00000000..de8bdc00 --- /dev/null +++ b/Dial-404/kspone/base/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Dial-404/kspone/base/urls.py b/Dial-404/kspone/base/urls.py new file mode 100755 index 00000000..d6be8a56 --- /dev/null +++ b/Dial-404/kspone/base/urls.py @@ -0,0 +1,14 @@ +from django.urls import path +from . import views + +urlpatterns =[ + + path('login/login', views.loginpage, name="login"), + path('help/', views.loginhelp, name="help"), + path('', views.home, name="home"), + path('search/', views.search, name="search"), + path('fingerprint/', views.fingerprint, name="fingerprint"), + path('userguide/', views.userguide, name="userguide"), + path("logout/", views.logoutuser, name = "logout"), + path('pdf/', views.pdf, name="pdf"), +] \ No newline at end of file diff --git a/Dial-404/kspone/base/views.py b/Dial-404/kspone/base/views.py new file mode 100755 index 00000000..b0682fde --- /dev/null +++ b/Dial-404/kspone/base/views.py @@ -0,0 +1,95 @@ +from django.shortcuts import render, redirect, HttpResponse +from django.contrib.auth import authenticate, login, logout +from django.contrib import messages +from django.contrib.auth.decorators import login_required +from .pdf import html2pdf +from .models import Person +from django.db import connection, reset_queries +import psycopg2 +from django.shortcuts import render +import asyncio +import fuzzywuzzy +from fuzzywuzzy import fuzz +import psycopg2 +from .models import Person +from django.db import connection + +# Create your views here. +def loginpage(request): + if request.user.is_authenticated: + return redirect('home') + if(request.method == 'POST'): + username = request.POST.get('username') + password = request.POST.get('password') + + user = authenticate(request, username=username, password=password) + if user is not None: + login(request, user) + return redirect("home") + else: + messages.error(request, "Username or password error") + context = {} + return render(request, 'loginpage.html', context) +def logoutuser(request): + logout(request) + return redirect("login") +def loginhelp(request): + + context = {} + return render(request, 'loginhelp.html', context) + +@login_required(login_url='login/login') +def home(request): + context = {} + return render(request, 'home.html', context) +def search(request): + context = {} + return render(request, 'search.html', context) +def fingerprint(request): + context = {} + return render(request, 'fingerprint.html', context) +def userguide(request): + context = {} + return render(request, 'userguide.html', context) + + + +async def fuzzy_name_search(names, query): + async def check_name(name): + return fuzz.token_sort_ratio(name, query) + + checks = [asyncio.ensure_future(check_name(name)) for name in names] + results = await asyncio.gather(*checks) + + return [names[i] for i, score in enumerate(results) if score >= 72] + +def search(request): + if request.method == 'POST': + query = request.POST['query'] + + names = [] + + # conn = psycopg2.connect( + # host="kspone.postgres.database.azure.com", + # database="police", + # user="mykspadmin", + # password="PoliceHackathon123", + # port='5432') + with connection.cursor() as curr: + curr.execute("SELECT person_name from icjs union select person_name from ksp where person_name is not null;") + names=curr.fetchall() + + names=[i[0] for i in names] + + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + + result = loop.run_until_complete(fuzzy_name_search(names, query)) + return render(request, 'search.html', {'result': result}) + + return render(request, 'search.html') + + +def pdf(request): + pdf = html2pdf("search.html") + return HttpResponse(pdf, content_type="application/pdf") \ No newline at end of file diff --git a/Dial-404/kspone/db.sqlite3 b/Dial-404/kspone/db.sqlite3 new file mode 100755 index 0000000000000000000000000000000000000000..9de235456ce98e5b799cb9533034021af0d0ad5a GIT binary patch literal 139264 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 DRX$B6 literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/kspone/__init__.py b/Dial-404/kspone/kspone/__init__.py new file mode 100755 index 00000000..e69de29b diff --git a/Dial-404/kspone/kspone/__pycache__/__init__.cpython-310.pyc b/Dial-404/kspone/kspone/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f3aa60a1bd35be5b99ad1f4be19cb06af411f86 GIT binary patch literal 146 zcmd1j<>g`kg3Q-!VrHIxc5y*|UMh@=kI&4@EQycTE2zB1VUwGmQks)$2Qsdh J2}rOo006(NAfNyM literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/kspone/__pycache__/settings.cpython-310.pyc b/Dial-404/kspone/kspone/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0804c78c7f91948b39dbff8d854f96372e6275c1 GIT binary patch literal 2458 zcmb7GOIO=Q6qb#!jlqNf327d!+9XX(iW~xYoSr6)um$+UuVcv})uKAGW)K5L2JLoAgSygOABMrM5L1&3$}#zI*S;L7|Wr;PcD%Kke)D zg78=TF#gHG!*jUkA21-n5Ks!G-ISL$(kTI_@zl?$U&Y^q!|B6mBZH=lEE0{JBN#J| zfTrK2j6B>kaGyn4V-DqT2F+X(oD>pKESY_mA}KWYR&-KE0TqmSG>V?4}wwavI?_eK?7Q;yDo=A64VzOo- zkN6U0R>+2$cceZAC(_X8ro1jc1nX^Z=>;K{h!5U9i;=*W;KvRK;1L&p1MoP1z*vud zTPmTzrt$z|6oDOhCG3~LVTlDjV$;$n-qOH5JHXO@-*qLIP$mWYr~9#d1VEUC(i_X| zWBPxvLcBi)^f%;ND5kjBve-eiHDrPK6x;m}uSH)U^@(@;F57te#J;sjZr(mvMNfY` zx%t#)caNfVgrcq!SdXMj~u7x;p zFVHc&*+K8g{m`XRY3PJuujfMh$z8CbJv*4s^bnCDD0KHuVXNPFPE!H{@3#C*ncTZ*Q}RmJm~T5hYl`9l4H zPgm5f&JHgqwOVset(bAnG(KN#XgVyx0+gc0^Yv<_Qd9Sow#w()&8BX4+O=}CvCU_6 zwce^Jx~lPoJ#D8N>({DfC9YaNQ&Ds!hSm5LrK9hfquMZEDzz#In^5e9n$pFJHNL!gJq24*D*B z27e|5`U(b7m@6zyiCJ+8Tuy;(PIfxR}nSQ>Wi#?IOs;vFjgk PNlYi-OlC^_kjwrHzjsRV literal 0 HcmV?d00001 diff --git a/Dial-404/kspone/kspone/__pycache__/urls.cpython-310.pyc b/Dial-404/kspone/kspone/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e618eee4d7dce555154c8fe2a809b698dfb32429 GIT binary patch literal 967 zcma)5%Z}496m`<1?PNN@CwP}e>ckW(AyornG%#W$#Dd4Bn~WQ~txIf2wgXJJ{ThBL z3pT9y1r`W9O{EA4X)MLDuddHM=UiK!okhToXX;1(v?R%~4w*#>l)!b?IR7Lf5$Dl><0r6h;^F2iNn20Qsr+Wbbc70^*=k6N*t zaU4%tT^q^i1PaXQ^VqH9B)TfF*5^wrjC4@{$3mJ7RgOs77@5#pHr&wnW zWSsoN=tks4MVMGy6PkKXT5g+p^yj8A23jh%Jua7y6S!)voFD8uv?FzfA4#^klg5;L zvt1T)jjVykO0f$xxN(w1zwFHgiC2f1a3&JJ4xHolpv~U(n>eb$?!;N#oO_p?)PpRu zw w(JO|F^V#Fs=X{{AYyCWQQMl6~vOWjalalnH@?xCH=$g&-BA|G-d^wg(}$sYxc=mG{9_) zD=2)Hren|GvqcAv`6aNnUuZ2pYGA@K!77w%4W}A5pxH*$YF9F%0?FocVXan$@Cwa* z9`UXsNrg2qWg=g-D=;(>TsgK-8lE!;kS@Kq?gi%(3zx~2FeTn=DzM^U_#ivyOT6{S zC0LDj6&TNNU8#8bCr*P*`bjt`!RO6hz9%C*8@{=ijIQ(P<;~4_GMeV^u7~g6UT&YX zm(Lt{uT1Isz0k|^s36Y+MHim7Iw{^-}+X)dH`qTtelmza#sE~g@Lp3-x4vt^xhYTFB!gSb=cj&9+K4^qm9iS15oh&MMvO>WGNF=WP27^e!vdpt( zWe=J;?iDyIf2f>Q=s!>*WwN!0Mva!N$yPce&=&GFGS`-3(*Kh#@0E0*qibIM|zOfU3hL z;18(bhKPs>kC&FF;19>)to&iZ!dV%pBw(XGo}y4}#`m}Qeb3@|<94>UL-eI42uqT~ zmJ?!l?fW+2$6t1u;c%%6ToDdXPBnv)6`DTE|G-+Yc;4)QfES0TR9EB2KsYM{ma`Um z0HPC%AG|g^{Fxbgz4V;mV7RBSa8i;&amUuy*6h7TW8Mo%Ns|KuSg;0|K`j~y6O#0B z-_zg0{g>*YvcV0bCr*G+^a_jiZh(maIvB22zglK8?R86~;Wn4+-tPtvzG;47Amp0O zaDQ>}f!~^&XW?nv;jHvqL~vI6C24W;gz*9Dk3UJw&_&2(pcIKf%ChWejV2U756x1m zr`I8NuF;xc&IKZyANqkO;y9#i-Cu*u6g&lw28%A1;Lr8=O#Uc7~>_)z^GE zXwbuWoRJrWgb3%7q4iFb%OgLpt8?MUEpS%)EoT+_)S?_5Cw}PREA=0re~v8V)0{?V zsOLb8z_`L@1GLbPh_5`01!ClKC`H9xS>FQfW)4OVl0j{=8{S`GfMC5C7K~Lw8-D-t zw{4Kz79c3@qL2_xvDGR(2pjbFjEPskoQ7y9K}8;GDsn>t)^f3Un|_@G!G2E~dXDOv*G z|7PK4>jIf7gczjMQvw2j=XuzU4&f-R7Tl3`_+n=}OwN?U`ki*zy@C-ecLKVT*{I~h zRT>Dd(Lz32b+Yv61j3fKHZUTcNAI^9+Mro(V=C%hz{#Q^DK3N&aqacnvTYmStn?{o z6}k^uJXLl74f8bjw_7+yF5%%|fgJ|NNx*hY!9=;*s|Mbgc!u< zG7T^{-!6l+7zujqCMYavfCb|e6StqR9jk3}=fYX(Rn97OA2KLT_B=v|__2fJu=;%l z(o#ea8^^-R?>K0%I|aD0*I*#F0&3A(BP)UIh6py~m|weF;L2FY4;xA8~Q86)p7YClI>>|g{a8`PivkKjZ0f>RePm4XxD z#vr8<)}zIyzt@C^Lw=JTzRGTa!fGe%EVRJpYzw^gqXE+GI`|+h4fY~DNx^N8m`t!B zCP9#-E88(Si?el z6N3;#17l=*xDu6pC0g=-mX*N_R9-8F$O(Ht9v=_Yc)V2zLkblJ2$jen%q@q>wlH{p zL&MH*_qWeSWv+p<(x;qN=u=CZ30$V=Iks7|W=q6ZJkwasn^_H3d zK;@>+aH7)Da>!;VyY*g4$cxKb+Ll$dU*K@N%i*k?QqC%LKcviJKhS7$^PjIZ%8!;f z*8DpqWkLfgDZzv*!opw=T4f5V1R$oCAZu}ZR1~a6D;$KMzd(nPpu{nJtw4HjH*R|; zDmTFtk_1v<{B10n!Hw>LRqT5JuNvY{Of*sXpdEY~vydL4hEvVeLz?8v3&|vZ)9D}*_Xp4Pt+O%!IjhhE5QG^OMAMNKHX}_( zVQUJG(1bz6)k3t77!Oj?F{sQxdo8XR75?#(5*Ue0hz0j6N9!yoHCpv7+@F-4;L32c z=F}-RqEeHi2xsy0faNU9F#tixFcayvQN$xtP=yqkLkLle3Q8E5!q&uIkYh)VAvufN z(4xEWyEs&KQgmWNC`zcu-$;3h^%#wxmm}tm!p^b)x#>-~4<4fdG5URQRt6-0d4+xw zMxM5Vs@VnW#M4uL_|Cg}Vu+kaI~8?mm@;cLx130V%nTniyVq%g>361C!l0uRqx8eH? z3}sV-5;=neHHfDsT8{8EIf3Ljl0!-K9OZt*qD9YCdy_A`DQLWCe~Nn&G^PI<7Ye2}UCWx%pyfX=S0Y$@8d5 zxhGGskG}XaZY5cC_>0M3%0kZ%4Ah=?fo*L{vMbzTWdKKb;Q=a@yr9%k;T+V|iP1W9 zP+2Votp@pGEgw;`FW|>wleKXGr>evd^#%L5wvfxOkTcg^paKTZ1jOv zN*JIlna4btHOx7JLuD?n6hnaCbB`Ll$F?>WVxrx`DCKlA;BqmLlH`iCwDE15avZzh zFC>2{g}!FK`09DHY}b+!x3r3&1s`NyfrONnhFif>(Zi(yStjG5xI_%`ac*!p+2Xa? z&fNnzm8%{cwa?wAzx3(_YGHUUsd0kA%)#VL1!N{kL8Rm0?rSt~$Je#cU~xlG81R9E zT+E|4X@w+znseCH&cW5^s0Ay(r^W<14K^!A3eU&GIbncu?al;~qNHanay3=ZzWZ9=(Z+b>EABULU}zz-VbKN)JOP{K)6P0Pyyf{AEJ^P{yEq6vo zx*4;X0fhfTM@FlymdRPF4bldG5&26gH1Zfm`ip)VJ}?&?Jt2YGdXa0zFXGIVwZ2qd=Bl_<%wU58L(eO-v&n1_L+ARnh+C+??piUPLb|(*IbuJi{ zCWAG5EpXj@4Wv(=!jHb-Vy1q137nr%Ni$D`{S|Ts)C!O9M*9b7M359I8SscnIQYs- z8{Z;jCK;6Gf}A|bJD(hGf4^g+LRjhIwJo!z*`8FPbBJ(5z}Z$CT5=IP;L+fJS^iQ^ zq1DP1)8Fz+5fm1Q1RTk`nLK}GCQ&3Oi^LL6<@+p0Ww_=F^OJW>(OnAt6h`dcvTBbN zJC8?^YMR|(b8t{l;SjzkMaABi>j1aICTMMAn~QI1CwN2Ky5M-J1ENDZ?MbkX9tA(( zG6h%9ZCO5Mq$91{)twYFFDezU3k=`{9KHXLR2adUk;(&u{V&B$|D_bVt%a$gzX>>; zrl-0fB$xxWhC3;jn6tIVpfwNi{|+BEJ9(UK8uU|;O0L{-%vK|nc$(0R);c3W4!cfx z6gUE{Zf%PT9Wal=SGLKSJvnwzqh&sj=MXvq6`=8nM2w7yjVpu!$hi>_%E1}VIo-ck ztGKw6uUA|m!qdgax*;va3E^RGu-cinjYeY&{DtH%rOUo={76gtQdhA>R4^*E+BD{F?o znEbUOg;HKi!4i_1S`mnF1eVFTu$iH%u0wJ*nayBiEa(iw=B-lU9+oZz_tM73lRDv0Bw!vAhL z{Ke!irO+|4&X|xOk3!q+o}n0{XXqq}C-=4Af&G%_vyV#-|F%Z_8T4O5QJF=h7*Hvx zMQ9No1}c33L~(^&PK6V89=E|~zZn^)&65LUX>Ws~N;@H0fMwjq= zyNLs_h#?1WKnY`e4@h6$yj}Lg%Idc4zP5{sa*s%e^Ejy#bRls#nMv>$lRqU=I43Mj zm7tYIB&)=-Vzc898}=@rD!z3{hI1ml4?wJFG_n*01i1`~e>>vb*xP;wYwfMyY<7Q; zZ?K=zEQi;BLB?XlbS|dsLnc{W%f=ub7lsT5QFFTS zmw`;Jg+r@Wz;I?8DlH4uNbv=^E1>ky0gmAu3^5!M1b_9doKmf1COxwx@RDD4nfJQg z(0Z!t*;e4#`s)GLDKiGIm?nNjsQ`6o2q(~)B#4Sst$9J;yY^rNn(ou9}RzQGm;v~oQ81}x^e_!HU19Wa+SV<&( z9(mJ9Nunij+S0F)jzvlgd%Gb-&mzutve~sku;Q2uUcJ%=8YSX?y=W#u zm=Q^G_3j+oVm#+*DcgA$pO+wJm6B!Oe_t>^Tpc2pIm7kX7A7MDN`;5mh>mc>;zfq# z@{QW-zCL2;a7d@2UMQn9iDO2(Cq+hZlhG*X8k(4&o?c=8y8C&a#8JL{w0`oW(e~S7 zV=5*q6nrRBlCH;DN%7I6lAT}uD1KFIZ*oVbD_ z@tV>ycJ-kn^1~vD+m;ybo`239`;95du6W;e6yYi<6H`vYah_+YBoa>Qb~BTP401}l zr--8G4=wG;dYGA?R~WCmdHmQ(tE#JNKYr}Ke|!k1Au~tGZ@6f(`ai^IpyEMswG+PG z;(%I37F;;Enu`tQ+0s@OUyYAXiugSv(g~Z}Mln&NXMxM<0L!nB0xMSw9iavBtO6ak zW`_#4mW8|T9-E6)ql*m<5HT_-BZScp7um0VZ@J+sI1QP0-8A_%3zqy=Sy{Pt@2jtT zde`mdGKGS8XczhxUAJv*V=1CqLJ)zHah7gLuUz!R&+7K}cJ76jo=#cy z&8k*74M|B*J#f(t7rk6z(jbG<2BC3DAVEAMQ>j2AlY>|$1DnYNR)Ya}&JDqF@xVEq z;Kred6k4It3Cu@hMVWxN>AhT|29ZRH?^$RlE8(qet)O;PLr7Qv|IJ4$o@**Ee*#WZ z9)I!4Yi_&q&d;~5S+l=+_1{J>TwoOvmWZQ|iadS&LMU`nryx0UOw!!i%KjJ}$ju!( z#2HWD5rz8pN2-NyZ#Di3XF$#vhQ9wYcq>59)8dn`b%)~fCGS`-T)x-!qui|8URfy_ zgAPgvH54mc5d*}pQr4KF2S2=_k%jsu5e5i&kn~cyLZt)@tccM$WFdCs5?$=@*@~Zj z`uQIpzVhxiI1SMRg*>cJ8uol;i-^g(@EUMgZD49?0fklv3Y`vO2WLV6a?Tc1$bd-V zo_UZeln^&83xZ_eal4hFeO1HrNJ&|F!89l!`B2lj#6>0oN|^O$Wv zuVSj}Elg-a;`sWa!c};%IyeoHM@Wl810om9o>z8)@os`pt&Nj<3LK>>k#0t-1-vJry*du#;*~*Z`FRg9<(Rd>0yJ1=O+q7C< zLeHnAMPy!e$azK-`ix;{iK?6y6qP+K#U(U+ZR8BtvvcRi+jg%1^2sNk zWbwtpz(jV=J%7KgxvG*KwQ!MOjVE4yH5~YLIRwSTfG#u)BekArm))D+S72d!r-f~KfWj_Iq_)hh;x-u@L8W*V^9WKl>dZq99h0x{w>TN zxdxJxTphm?tjH@ALn9g!iZ3da9EQ+2!sOMD{%E=jLp8#72Hwn|f$G=~4OJPOAvt3f zI#ny@5ev_yUa!;fBlIq9{fu=%A_7(VDh{ zR4xZI(r|8<6N01TP?6=r;>Ru3RbXvvM>wH}n88D#sk{t~%}ro#ZNc9v(K%%WSQ46$ z1XVf5g;#h=8tMiQwW!R&F>wMEA&YKoY67WJ2|-cO(!!&MzqPiv4>+oqIy5RQC2`R6 zTQ+QZly!&~rUf68^|gIis2h&%Jpd)yTOm?^0^G>NS5lmc=FDfmEHV&~4Y!mLTP5ZMnL*w_RIipt6g zF1_ONmAZhS(<&CO2nx~@ydWz|3QCYdDpx=VLWai5QZV6nC$?+^V`BrT0s;ig+)z@4 zkfhlQF+#v*G=kM=fX0$y#Mwp=p_Z_y;FZU-A#cZ4$eg@lDEw?n}sL8JTH@b7s{+=3p1Jw=*=c z_Ee`qfXGMs-iL-L;?!zRe(;E-ecMjiw_kjzn6|pM?Tl4UJ)^YU3u}xY!y5Rw^BWsX z3kgw&hdM4el>Q|n4 zW-FYAj5+uGM}yE3i&41(A|j!&tPHX7aD)(Uw6LkdHiU!8(wfk+>cS&H8x}5L=u%W@ zr_}-us}*Dl72@njPzD4F_?z}M)Ym}-{w1ey@bnoFnUW3&GX&+AtJH#)nVVa~;522! z%GHnF^YDX59)9!9C-T;CFvztUWMWsZ+Y_9q#waU6hPkussGz4d8Y(p(H76`+?ArR~ zeN0}Frl8C_Y+nS~D}svkx~Qk9;-aTZWWv(3ELVvVSk) z=UCvVlmSZ&MJa^DCm>$LXh=;pL?H%lC@ldQT5^ZY21;}u1EZoriuhZO*xArn5Bi7* zRNey6M@EA-C>Tl(?nmsL0qUS2Xu$JG5R=#Boq+A1{bvy#_q4d&!v_vGqz@g$j~O>^ zdi?N<;Y4FHINOebM%**e6B*$ad=F}4m8yS`OpmKP@R@%#edK^QDuw)gL)pc$Grwwv+e;M;?dfg8pqdP ze|hESZ~SL3oW7XQ+TMZ|R7Qh#O+hZyqQV&(>LGXg76BiJB_>1ViDT$6$^@8TMTkKP ztPhJoOYRU9RTUU0IF1K@U5499A$9yDWHy`v_Ld)u_Nk{ZU7;TP(2g!}qFN z>+2qe-yv&8tllwAIx{9BG9oKBDHGVJ%b>V93>hFhI4zB!kh*@);f2wY9LA7fPK(%i zmM+MBeu7H1epiY8jOSXPafNeX7y31IEsd#Q@=P&EZ??0-+4xt(Kw?RdSP&|CO*!1y++fi zv|F~z1ok2*$PHIqaxyd3+9u>V1Jb_W!ax!MClQH0Dew@dFXcy%Jbh^8FTZg-2N_dl3JOTSWVo;3P~veKD=M5- z$FskI(<}$pUEGHb>1q_)tC#J{+@CS;>d}M8T>t^-lRHG6@SNzXZ0U<#E-A7Z39en%+28VF_8?QHkM(qu&N4lfJg1CA3_5hqgIpd|k9zREW*#+mB zzYGiI#3nOxnToCvL7H>dj008nW(Fd1P?5?Q$guE$aS~xTIfj=!94QaVYj45EEuYT7 zlxsOu7!e$>-3a0GG6-<)2EE)M9FKxCM~_MVed#OqJK*=ryg`$uq@hKQs4FY^yILP8 zqDY^KmY+a8O_p1UK^D1MgNo^fCX5J@#il?Can}q6BwRSmH&;~&L6#Q8+A74>#+D{@ z9Ie<{MF>0UtTwadey7Q@x9H%WL+}U4{Fu$v^Q&z|1dz^8nJcKg7JjbSilOqwe2)>syaI9i2VW>>|MbUNiduvQ zk6K!dcR1am2p1;;30h)@-Hq4K49zv3=O|aHz|`1+v>R1dK!WCL^ zg?Boj8OM34QjPCjrMTgR@CPb0iR}mDtE-es^|UFr#{={ycl@ec2GUWP_hWme`n9jf zZ@M8V3XOR*>5}>dDYp(GV2y(pV!1Ki?f&t!MgPJwfL%GJPky|5;df6PX10B0=@5P?tLlavEDMY4)w@iDzX;O<~5mMt&xB`VggvqAz(5Df=x9TnvS%CrI-a%l~j0H ztfAnJngDiDBG}sWz(kA%r#T4Z_?uv)-<)3(&i# z1_g3mB8JD7GLVF!k6?Vi2iw>;Wt=u@VLVDqSmh8I5d2HF&oWb6_p zxfAg@71He<_|LB?TYU_1{YgJ`rYKxIX^EMfT5v1G!NxZS1NwKd5h5 z+SnMJ1m~2Bpery%WkjWD6RuVXq|9AIpccee9Bw5?brHkKsf4AlZiy4jpFVc3YRo2Md~M}O|d+Z80Qj{x3-yPXj7HW z&TWin%JS-5gAq2I;{YSxj|~-4<+a9LT@td?9O|1KyC{cSnxP&WT!GiC?Ra^%YsHH; z2rYmLJ{BKJ1xPp*-KH-Jmz?O**XdlNqCNd#_BnHGca7U6FW#qb zfC=$8D5T6`er;^TYe@2bq%0%G@3-SXzj;2>9RzxRLLg;Q*zIQ|!_HsMxI!Z(H_F$$ zEq*=Sj_*mqeY(@s`IBIg34-_(+U@rn3E9R`96xOy%ifa1asPq=%EGkZw5!fHeL8N8 zdAyGkU%gWbFTOPvBbg!$CU6)yKyRLBF(fS^rCXE)vPDb}h>b_ZwIk|xqg^IgA@aJk zgqum3op{$~9K^-g1*jvixP@Fms~(Aiu$$fBxcROputgXbvL{4%Fc|a@3u_!+efdGS z4sA!oZ9Kr_Dyd{uk=tG0&&z^)XXxf! zzSz8GQ@he{=^u8xGGz4j(D36CW`_1SkID z7RD7fK47Jw#AJ1S(1SomCJxF^VSIBQ4%W@6z9qPguTzkMdK6!T$1({WgPcY>2U=<2 zoMh4IHwXTe3Km@qCr(6xk*kNXLp@4O;pmtsce+~3UMOx;t;lIUHEz9@Wp6^`LbR!% zz=V<4Vtblt6)&3Wh@ZFNUn{jSzKC_I^>$-Y@SpJc$-vY8Rg5PHQ-d$!q-oo7mT9g8 zc)6NoD~dU;7S52IahBr?R`mH)p1+3PAH-KCczV@V#uL&eyjBmMVT=abz4&>$-#~g0 zw;Sn);r8I~WB9I);*Tuz&HZlomAzfVq*z_RHS?V>O`B}{n|})Gvds!q=1CytJ1Xs> zD%E%yiT*7|;_(AoaYQMD%b^-Zbo1GA@k+lyPUbKq;JYB`uaL6akyB6#E*T?qq>C=u z33py*=(1f^4O_W-t^6NP|7!lWw`0x5!SE4=-IwUMQmt=D^JRAAU^^2O@xco!i%Pv- zj!B;NV8aRV;MguE%ibRX&^ZfIq8b=t9 zWhHz@y{f@W)KjAo!;t`zfN}@qXuPXxe`@Za>)XJTW{B%@(oyD|!B;^0YUP z)uvoD&#__l4BK4)3ARf&DB#V1PZBIF2_@@W(WdrBula-*?6V!WX+>JA7#5*5z8?zU z0(1x?dIAbtj7*43%iZ%|OMg-FO7H50}Pc(WOEM^T8Ri)a|YY7?;_}NoX~^ zE+xsmC|a!4*Mf6%W8=x?1MX%;Z(|t87o!r+zYN=Os^2!1&>8(BDf9Br)MO&>i)cK0 z4&<;?*Cb_cU_5`Zr-<>liMx6JBNO~SCT1XVMxDYCo}ce?eHVF!(gWV484`jf6usK-wGxEms6lV#`Dr^**L}x)5)aojL4WNvSD4<8 zjC6OHV4BJN@iGAuT7-&viSGkBazsVU?#3LM{hUG$ zx_X*f3!kQAYu@k9$r;(3pP zj^#ZT!HLaDUIm55$(q;UXNqX~?4}ftMKwMN!VL9(Z|HQ|Veue+T+$rd7gvunOp*D` zT`VdQ3&-1cB;HS%iJxdeMGfi_6bV4E@D^Ua2PFKlRj%kEWC|}brd^q?8EEYv0SdYK zlv<2RjgBFzzY4oMIhlDU#xmco+Xoj|+aM{y1(cpkB_76&c8rLQY}+?}t>&d?R~lcS z{o{pfP+oZM$5Cm6cn`DWe@EGrhT!*n2p^B)JB?2j#_dzRo6~W8yW;b< zi5-q6ID>LVi#2K)rX%~x;D_GH*^3A0@b}4lwqT?A&>=zy_@3?Dff$e+zx^qdlx_t1 zK==~3BRp8@r7Rwpqr3H#_XAWSjAW^#BBK~X|Vgz-T2#)yS{^h1KD}LR_`^F zc>Vk{nx%9`723*E*)*SYHUjYk>0al8gc>yozsvV3C2`Uryr)73k(z}9;mUMa6`9`= zb>1N_O~izKc8BtpTdp_0n;6##F-VRal|V#<8v?yW3ulctctH+8cW#-K`Cq8aQP8)L z8^2Mnhk=x2%F}6KCsGurngB%#@@6-sCJ}N%z*l9pTKGFM%K7=qQo2?Nn>sWr@X8X7TViK6uq$f%D|O z8FLI^*i{&IDYJ{LASom%IMH&XW}Fx2QR5N|LUa)𕬬uj|Hcb$e$8om!|nDhx( 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𕬬uj|Hcb$e$8om!|nDhx( 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 js + + To preview and run the project on your device: + 1) Open project folder in Visual Studio Code + 2) In the terminal, run `npm install` + 3) Run `npm start` to view project in browser + \ No newline at end of file diff --git a/Dial-404/kspone/templates/index.html b/Dial-404/kspone/templates/index.html new file mode 100755 index 00000000..6dbe4fe0 --- /dev/null +++ b/Dial-404/kspone/templates/index.html @@ -0,0 +1,45 @@ + +{% load static %} + + + + + + + + + + + +
+
+ +
+ +

KSPONE

+
+ Help? +
+ + diff --git a/Dial-404/kspone/templates/package.json b/Dial-404/kspone/templates/package.json new file mode 100755 index 00000000..6f9438d3 --- /dev/null +++ b/Dial-404/kspone/templates/package.json @@ -0,0 +1,15 @@ +{ + "name": "login", + "version": "1.0.0", + "description": "", + "scripts": { + "start": "parcel ./*.html", + "build": "parcel build ./*.html --dist-dir ./build" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "parcel": "^2.7.0" + } + } + \ No newline at end of file diff --git a/README.md b/README.md index 578bb9cc..81633960 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -# ksp-submission -This repository is created for Karnataka State Police Hackathon 2023 - submission collection. -## Team Information -### Team Name - -### Problem Statement - +# Dial-404Again + +_Team name -> DIAL 404_ + +_Unification of Databases_ + +Note - We have built all the components but we were unable to integrate the components