{"id":22880481,"url":"https://github.com/tusharnankani/aankh","last_synced_at":"2025-04-07T11:01:29.000Z","repository":{"id":80395464,"uuid":"448859889","full_name":"tusharnankani/Aankh","owner":"tusharnankani","description":"Aankh - A real time proctoring solution 🦄","archived":false,"fork":false,"pushed_at":"2024-12-18T18:21:19.000Z","size":45346,"stargazers_count":76,"open_issues_count":3,"forks_count":29,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-31T10:01:31.382Z","etag":null,"topics":["aankh","detection-model","extension","proctoring","reactjs","tensorflow"],"latest_commit_sha":null,"homepage":"https://tusharnankani.github.io/Aankh","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tusharnankani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-17T11:07:00.000Z","updated_at":"2025-03-23T19:25:42.000Z","dependencies_parsed_at":"2025-01-03T03:17:32.601Z","dependency_job_id":null,"html_url":"https://github.com/tusharnankani/Aankh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2FAankh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2FAankh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2FAankh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tusharnankani%2FAankh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tusharnankani","download_url":"https://codeload.github.com/tusharnankani/Aankh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247640459,"owners_count":20971556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aankh","detection-model","extension","proctoring","reactjs","tensorflow"],"created_at":"2024-12-13T17:18:43.293Z","updated_at":"2025-04-07T11:01:28.981Z","avatar_url":"https://github.com/tusharnankani.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./client/src/assets/logofont.svg\" width=\"20%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A straightforward framework built for automatic proctoring to create online tests, \u003ci\u003eeffortlessly\u003c/i\u003e.\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"#table-of-content\"\u003e\u003cb\u003eExplore the docs »\u003c/b\u003e\u003c/a\u003e\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"#architecture-and-design\"\u003eArchitecture\u003c/a\u003e\n  \u0026nbsp;\u0026nbsp;·\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#demonstration\"\u003eFeatures\u003c/a\u003e\n  \u0026nbsp;\u0026nbsp;·\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#contributing\"\u003eLocal Setup\u003c/a\u003e\n  \u003cbr /\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./images/landing_page.gif\" alt=\"landing-page-gif\" width=\"80%\" /\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n### Table Of Content\n\n- [Architecture](#architecture-and-design)\n- [Design](#design)\n- [Demonstration \u0026 Features](#demonstration)\n- [Technologies Used](#technologies-used)\n- [Local Setup \u0026 Contributing](#contributing)\n- [License](#license-)\n- [Authors](#authors)\n\n\u003cbr /\u003e\n\n### Problem we are trying to solve?\n\nDue to Covid 19, remote learning has been a constant and so have been online examinations. \n\u003cbr /\u003e\nBut proctoring has always been a task and cheating and unfair practices have always been a problem.\n\u003cbr /\u003e\n\n**Problems with the exisiting sytem?**\n\nThe current solutions assumes to have 2 platforms \n- One for testing purposes like Google Form for writing exams \n- And another, video conferencing platforms like meet or zoom for manual proctoring.\n\nOur PS poses to develop an application that can automatically proctor and monitor students, without the need of manual proctoring - ie without a teacher's aid.\n\n### Market \u0026 User Research\n\n- On market research, the products available found, are paid.\n- On user research and feedback from students, UX of such platforms isn't upto the mark.\n- UX from the client's end isn't frictionless, it was expected by the client to upload questions on their platforms. \n- The existing product doesn't seem to have an accessible Admin Dashboard.\n\nThat's where we come into picture.\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n## Architecture and Design\n\nThe tradeoff in a Hackathon: `Speed over quality`\n\nBut something that we are proud of is, we tried to follow ideal software development practices.\n\n- Architecture\n- Design\n- Code\n\u003cbr /\u003e\n\nThe presentation for Aankh can be found [here](https://docs.google.com/presentation/d/1h3WqCwEhf5xG7TsZ-yNuDoE9ybbFiaAMEsltQ3KrLEc/edit?usp=sharing).\n\n### Architecture\n\n- The architecture and workflow was built using [excalidraw](https://excalidraw.com) and it is freaking [brilliant](https://github.com/excalidraw/excalidraw).\n\u003cbr /\u003e\n\u003cimg src=\"./images/architecture.svg\" /\u003e\n\u003cbr /\u003e\n\n### Design\n\n- The designs were built using [Figma](figma.com) and were brought to life with [React](https://beta.reactjs.org).\n- [Design Link](https://www.figma.com/file/pbuXQGcgFpsi2lgEbtllXf/aankh)\n\n\u003cbr /\u003e\n  \u003cimg src=\"./images/all_designs.svg\" /\u003e\n\u003cbr /\u003e\n\n## Demonstration\n\n\u003cbr /\u003e\n\n**Landing Page**\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src='./images/landing_1.png' alt='Intro Screen' width=\"80%\"\u003e\n  \u003cimg src='./images/landing_2.png' alt='Features' width=\"80%\"\u003e\n  \u003cimg src='./images/landing_3.png' alt='Features 2' width=\"80%\"\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n**Register \u0026 Login**\n\u003cbr /\u003e\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/register.png' alt='REGISTER'\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/login.png' alt='LOGIN'\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n          \u003cp\u003eUser Registration - Face Verifacation to be done when exam starts.\u003c/p\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n          \u003cp\u003eUser Login to start the exam.\u003c/p\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr /\u003e\n\n**Creating a Test and Dashbaord**\n\n\u003cbr /\u003e\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/create.png' alt='Create Test'\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/dashboard.png' alt='Dashboard'\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n          \u003cp\u003eCreating a test and expecting a Google/Microsoft Form Link\u003c/p\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n          \u003cp\u003eAdmin Dashboard: Tests arranged chronologically.\u003c/p\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr /\u003e\n\n**Start Exam**\n\n- After logging in and entering the unique test code.\n- Live Snapshots will be captured, periodically and will be analysed for the following :\n  -  Face Verification\n  -  Face Cover/Visibility\n  -  Multiple People Detection\n\u003cbr /\u003e\n\n\u003cimg src='./images/exam.png' alt='Start Exam' width=\"80%\"\u003e\n\u003cbr /\u003e\n\n**Building a chrome extension for track of tabs**\n\n\u003cimg src=\"https://user-images.githubusercontent.com/61280281/150633013-63494d63-13fd-4d97-8bed-b0700551cbe8.jpg\" width=\"40%\" /\u003e\n\n\u003cbr /\u003e\n\n**Checks for cheating**\n\n- Face Verification\n- Voice Detection\n- Multiple People Detection\n- Dev Tools Check\n- Multiple Tabs Check\n- Full Screen Check\n\n\u003cbr /\u003e\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/test_response_1.png' alt='Full Screen Detect'\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/test_response_2.png' alt='Dev Tools'\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/test_response_3.png' alt='Face Not Visible'\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/test_response_4.png' alt='Multiple People'\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr /\u003e\n\nAlso, **ideas rejected**: These were rejcted due to false positives and unsurity of cheating.\n\n- Eye Tracking\n- Object detection\n- Mouse Tracking\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n**Test Admin Dashboard**\n\n- The following warning logs, data and statistics will be emailed to the Admin after the test.\n\n\u003cbr /\u003e\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/test_dashboard_1.png' alt='Test Dashboard'\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003cimg src='./images/test_dashboard_2.png' alt='Test Dashboard 2'\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n          \u003cp\u003eTest Dashboard: Admin can see statistics - no. of students with warnings and above the threshold.\u003c/p\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n          \u003cp\u003eAdmin Dashboard: Admin can Terminate or Continue a students exam based on warnings.\u003c/p\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\n\u003cbr /\u003e\n\n## Technologies Used\n\n\u003cbr /\u003e\n\n- Workflow and Architecture Design\n  - Excalidraw\n- Prototyping and Frontend Design\n  - Figma\n- Frontend\n  - React.js\n  - CSS\n- Backend\n  - Node.js (Express.js)\n  - MongoDB\n- Machine Learning\n  - OpenCV\n  - Tensorflow_hub\n  - Flask\n\n\u003cbr /\u003e\n\n**Dependencies**\n\nA freaking huge shoutout to:\n- [react-webcam](https://www.npmjs.com/package/react-webcam)\n- [devtools-detect](https://www.npmjs.com/package/devtools-detect)\n- [react-chartjs-2](https://www.npmjs.com/package/react-chartjs-2)\n- [chartjs](https://www.npmjs.com/package/chartjs)\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n## Contributing\n\n**Local Setup || Project Structure**\n\nNOTE: Individual instructions can be found in respective directories.\n\n- The project contains 4 broad directories.\n\n```\n*\n├───client\n├───extension\n├───model\n└───server\n```\n\n- `client`: The frontend for the application.\n- `extension`: Chrome/Edge extension to keep a track of browser tabs.\n- `model`: Model APIs for Machine Learning.\n- `server`: The backend for the application.\n\n\u003cbr /\u003e\n\n**Client**\n\nFor local setup of frontend:\n- `cd client`\n- `npm i`\n- `npm start`\n- Go to `localhost:3000`\n\nStructure\n\n```\nsrc\n├───assets\n├───components\n├───containers\n└───index.js\n```\n\nIndividual Component \u0026 Container Structure\n\n```\ncomponent\n├───component.jsx\n└───component.css\n```\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n**Extension**\n\nRead [this](https://github.com/tusharnankani/LeadsTracker#using-this-extension) or [this](https://github.com/dheerajdlalwani/back-to-work/#how-to-install) for a brief description for installing extensions.\n- Open new tab \u0026 type: `chrome://extensions` or `edge://extensions`.\n- Look for the Developer mode toggle \u0026 turn it on if it's not already.\n- After cloning the repository, click on `Load Unpacked` and select the `extension` directory.\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n**Model**\n\nThe complete setup can be found in the [`model` directory](./model).\n\nNOTE:\n\n- Apart from this `tensorflow` and `tensorflow_hub` should be installed .\n- The face-pose-estimation model is not final it is just a placeholder for now(will improve it as we get time).\n- How to convert javascript array for image into image tensor that part is remaining.\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n**Server**\n\nFor local setup of backend:\n- `cd server`\n- `npm i`\n- `npm start`\n\n```\nserver\n├───controllers\n├───middlewares\n├───models\n├───routes\n└───package.json\n```\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n### License 📜\n\n[GNU General Public License v3.0](/LICENSE)\n\n\n### Authors\n\n- Vivek Namaye \n  - [LinkedIn](https://www.linkedin.com/in/viveknamaye/)\n- Akshay Kanade \n  - [LinkedIn](https://www.linkedin.com/in/akshaykanade/)\n- Tushar Nankani\n  - [Twitter](https://twitter.com/tusharnankanii) \n\n\u003csub\u003eWe are Team VAT, not Value Added Tax, but Vivek, Akshay and myself, Tushar.\u003c/sub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftusharnankani%2Faankh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftusharnankani%2Faankh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftusharnankani%2Faankh/lists"}