{"id":20098657,"url":"https://github.com/encryptex/dailyhackeps2023","last_synced_at":"2025-03-02T16:30:14.840Z","repository":{"id":207865769,"uuid":"720219618","full_name":"EncryptEx/DailyHackEPS2023","owner":"EncryptEx","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-24T18:44:33.000Z","size":6139,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T03:45:38.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EncryptEx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-11-17T21:10:55.000Z","updated_at":"2024-04-26T13:18:57.000Z","dependencies_parsed_at":"2023-11-24T19:24:42.865Z","dependency_job_id":null,"html_url":"https://github.com/EncryptEx/DailyHackEPS2023","commit_stats":null,"previous_names":["encryptex/dailyhackeps2023"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2FDailyHackEPS2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2FDailyHackEPS2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2FDailyHackEPS2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2FDailyHackEPS2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EncryptEx","download_url":"https://codeload.github.com/EncryptEx/DailyHackEPS2023/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241536852,"owners_count":19978413,"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":[],"created_at":"2024-11-13T17:06:13.163Z","updated_at":"2025-03-02T16:30:14.810Z","avatar_url":"https://github.com/EncryptEx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DailyHackEPS2023\n\n## What is DailyHack?\n\nWelcome to the DailyHackEPS2023 repository! This project is an integral part of a challenge to gear up for [HackEPS](https://lleidahack.dev/hackeps/), a thrilling event that showcases the prowess of developers and problem solvers.\n\nFor an in-depth understanding of the challenge and its nuances, please refer to the [challenge description (in Catalan)](https://github.com/FerranAD/dailyhack2023/blob/main/README.md).\n\n## Important info about this project\n\n### How to use the app\nYou'll be prompted with a camera, and an input asking for a set of characters you want to express.\n\nFor instance if you want to express the word `Hello`, it is 4 chars length.\n\nSince our latin alphabet has 26 chars, we'll need 2 photos per char to decide which char we're going to use.\n\nThe following schema is used to compute the alphabet using the images:\n\n```\n alphabet = {\n    \"FIST\": 0,\n    \"INDEX_FINGER\": 1,\n    \"L_SHAPE\": 2,\n    \"OK_SHAPE\": 3,\n    \"C_SHAPE\": 4,\n    \"PALM\": 5,\n    \"THUMB_FINGER\": 6,\n    \"FIST_MOVED\": 7,\n    \"PALM_MOVED\": 8,\n    \"PALM_DOWN\": 9\n}\n```\n\nAnd you'll be thiking, why this order? \nWell, I thought I'd the easiest to learn, since we can remember thanks to this mnemotecnic:\n\n0. With out fist (puny en català) we count as 0 when we were kids\n1. With our index finger we start to count\n2. Making an L shape uses 2 fingers\n3. An ok hand gesture uses 3 straight fingers\n4. In spanish the 4 is spelled CUATRO\n5. The palm has clearly 5 fingers\n6. The first finger when we need to count \u003e5 (6 is the firsts) with our hands\n7,8,9 High numbers which you'll need to remember :D (come on, there are only 3 numbers with no reason, JUST 3!)\n\nOnce the alphabet is encoded using UNICODE, **take in mind that A=00, B=01, C=02 .... Z=26**\n\nYou can use this as a reference:\n```\nA = 1\nB = 2\nC = 3\nD = 4\nE = 5\nF = 6\nG = 7\nH = 8\nI = 9\nJ = 10\nK = 11\nL = 12\nM = 13\nN = 14\nO = 15\nP = 16\nQ = 17\nR = 18\nS = 19\nT = 20\nU = 21\nV = 22\nW = 23\nX = 24\nY = 25\nZ = 26\n```\n\n#### Little disclaimer\nThe model is trained under low-light levels, so try to recreate the model's enviroment to take photos, otherwise it won't work.\n\n#### Model reference\nPlease reffer to [this Kaggle link](https://www.kaggle.com/code/gauravsrivastav2507/kv-hand-gesture) to see more about how the model was trained\n\n\n## Architecture\n\n### Project Overview\n\nDailyHackEPS2023 is built using Python3 and the Eel library to create a desktop application. The structure is centered around the `core.py` script, supplemented by `predict.py` (using a Keras AI model) and `captureImgs.py` to save images to the local disk.\n\n### Core Components\n\n#### 1. core.py\n\nThe `core.py` script serves as the backbone, orchestrating fundamental functionalities.\n\n#### 2. predict.py\n\nEmpowered by a Keras AI model, `predict.py` adds intelligent capabilities for predictive tasks.\n\n#### 3. captureImgs.py\n\nThe `captureImgs.py` script facilitates seamless image capture and storage on the user's machine.\n\n### Python and Eel Synergy\n\nPython3, coupled with the Eel library, efficiently powers the desktop application, bridging the gap between front-end and back-end development.\n\n## Development Deploy\n\nTo begin with DailyHackEPS2023:\n\n1. Clone the repository.\n2. Ensure Python3 is installed.\n3. Create a virtualenv `virtualenv env` and enter it `soruce env/bin/activate`\n4. Install dependencies with `pip install -r requirements.txt`.\n5. Execute `python3 core.py` to launch the application.\n6. Hurray! The app will pop up!\n\n\n## Contribution Guidelines\n\nContributions are welcome. Review our [contribution guidelines](CONTRIBUTING.md) before getting started.\n\n----\n\n### Production Deploy\nSorry ran out of time, if you want you can build it, but make sure it builds along with the `web` folder, the `models` folder, and the `core.py`, `captureImgs.py`, `predict.py`, as well as all pip requirements and reserves and empty folder called `captured-imgs`, where snaped photos will pop up.\n\nSome documentation that might help:\n\n[Eel build documentation](https://github.com/python-eel/Eel#building-distributable-binary-with-pyinstaller)\n\n[PyInstaller documentation](https://pyinstaller.org/en/stable/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencryptex%2Fdailyhackeps2023","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fencryptex%2Fdailyhackeps2023","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencryptex%2Fdailyhackeps2023/lists"}