{"id":20614553,"url":"https://github.com/rayniel95/giftlist","last_synced_at":"2025-03-06T18:43:33.519Z","repository":{"id":167741060,"uuid":"643341859","full_name":"rayniel95/GiftList","owner":"rayniel95","description":"My solution to week 2 project of Alchemy University.","archived":false,"fork":false,"pushed_at":"2023-06-04T02:01:56.000Z","size":184,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-17T04:13:19.531Z","etag":null,"topics":["alchemy-university","blockchain","cryptography","docker","express","nextjs","react","reactjs","web3"],"latest_commit_sha":null,"homepage":"https://rayniel95.github.io/GiftList/","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/rayniel95.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-20T21:14:24.000Z","updated_at":"2023-05-26T01:20:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"eb9cdd9c-6691-481f-a8ea-7d0bf9ebf272","html_url":"https://github.com/rayniel95/GiftList","commit_stats":null,"previous_names":["rayniel95/giftlist"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayniel95%2FGiftList","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayniel95%2FGiftList/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayniel95%2FGiftList/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayniel95%2FGiftList/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rayniel95","download_url":"https://codeload.github.com/rayniel95/GiftList/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242269108,"owners_count":20100071,"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":["alchemy-university","blockchain","cryptography","docker","express","nextjs","react","reactjs","web3"],"created_at":"2024-11-16T11:13:02.001Z","updated_at":"2025-03-06T18:43:33.488Z","avatar_url":"https://github.com/rayniel95.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n## GiftList\n\nThis project is an application which gives out gifts, but only to names [on the list](https://github.com/ChainShot/GiftList/blob/main/utils/niceList.json). The catch is that on the server you are only allowed to store one **32 byte value** in the server memory. This 32 byte value has to be enough for the server to be able to determine who is [on the list](https://github.com/ChainShot/GiftList/blob/main/server/index.js#L10).\n\nThe **client** is the **prover** here. They are the ones trying to prove to the server that the one name is in the list. Likewise think of the **server** as the **verifier** here. They are taking the client's proof and, using minimal information, able to verify that the name sent from the client is actually in the list.\n\n## Requirements\n\n- Docker\n\n## Hot to execute\n### Steps to create the Nextjs client\n\n1. Go to https://rayniel95.github.io/GiftList/\n\n### Steps to create the node server\n\n1. Install [Docker](https://www.docker.com/)\n2. Download the project\n3. Open a terminal in the project folder\n4. Build the image, execute: `docker build ./ -f Dockerfile-node -t server-node`\n5. Run the container, execute: `docker run -it -p 1225:1225 server-node`\n\n## How it works\n\n![](diagram.svg)\n### Demo\n\n[Watch the demo in Youtube](https://youtu.be/7YLYQ4dOur0)\n\nWatch the code explanation in on Youtube\n\n### TODO\n- [ ] add golang server\n- [ ] add rust server\n- [ ] add a demo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayniel95%2Fgiftlist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frayniel95%2Fgiftlist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayniel95%2Fgiftlist/lists"}