{"id":27943548,"url":"https://github.com/ethanngit/hanziwebapp","last_synced_at":"2026-04-25T08:36:33.927Z","repository":{"id":207995552,"uuid":"720584038","full_name":"EthanNgit/HanziWebApp","owner":"EthanNgit","description":"Web App for learning Hanzi (Chinese characters)","archived":false,"fork":false,"pushed_at":"2024-02-25T17:50:45.000Z","size":16320,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-27T14:07:26.438Z","etag":null,"topics":["api","china","hanzi","react","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/EthanNgit.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,"zenodo":null}},"created_at":"2023-11-18T23:29:21.000Z","updated_at":"2025-03-31T13:18:36.000Z","dependencies_parsed_at":"2023-12-23T22:15:28.342Z","dependency_job_id":"84054d07-c0d4-4903-8b87-470440fbca0f","html_url":"https://github.com/EthanNgit/HanziWebApp","commit_stats":null,"previous_names":["ethanngit/hanziwebapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EthanNgit/HanziWebApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FHanziWebApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FHanziWebApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FHanziWebApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FHanziWebApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EthanNgit","download_url":"https://codeload.github.com/EthanNgit/HanziWebApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanNgit%2FHanziWebApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32255790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T04:23:17.126Z","status":"ssl_error","status_checked_at":"2026-04-25T04:21:53.360Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","china","hanzi","react","typescript"],"created_at":"2025-05-07T12:12:37.800Z","updated_at":"2026-04-25T08:36:33.913Z","avatar_url":"https://github.com/EthanNgit.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hanzi Learning Web App\nFull Stack React Web Application for Teaching Hanzi.\n\u003e Current version: V: 0.5 Finishing everything up for initial release, mainly backend and server related\n\n## About\nThis Application was for me to study hanzi more as well as provide a way for people to learn easier than I did. It has a personal database that can be used as an api as a dictionary that includes all sorts of metrics such as simplified and traditional hanzi, the stroke counts for each, the definition, the pinyin, hsk level, and category the word falls under. There is a learn section to go over new vocabulary over time using SRS method (spaced repetition). Then You can review previous vocabulary through multiple trials. You can quiz stroke order, definitions, sounds, etc. The apps dictionary is full and has example usages for every entree, this makes this Hanzi web app unique and powerful.\n### Tools used\n\u003cp float=\"left\"\u003e\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/vitejs/vitejs-original.svg\" width=\"35\"/\u003e\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/react/react-original.svg\" width=\"35\"\u003e\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nodejs/nodejs-original.svg\" width=\"35\"/\u003e\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg\" width=\"35\"\u003e \n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg\" width=\"35\"\u003e \n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/html5/html5-original.svg\" width=\"35\"/\u003e\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/css3/css3-original.svg\" width=\"35\"/\u003e\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nginx/nginx-original.svg\" width=\"35\"/\u003e\n\u003c/p\u003e\n\n## Walkthrough\n\u003cdetails\u003e\u003csummary\u003eHome and account\u003c/summary\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/b27cf035-9625-47ec-a194-ce28fb46d3dc\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/226a0c30-7fea-417d-af1c-0be9a6b45bfb\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/2975e168-704c-4a7c-8c49-61f63e737bec\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLearn page\u003c/summary\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/08399219-c547-4c88-b341-7cdef9343f3f\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/6979d6ca-0959-46a6-857a-38428ea50be7\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/6549dd9a-23ce-4e7c-bb41-63cdf7d6b61e\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/80482475-523a-43bb-9cc3-3af2baaee92f\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003ePractice page\u003c/summary\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/db8adb39-ac4e-49b9-a814-92cfd1587db1\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/864027a2-be1c-4fd5-8c9e-64837e532541\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/5d58dab2-3434-41bc-8a04-bde536d4c0ec\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/4f6544dd-f28b-4824-b320-9b1c23afa243\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/834b63f8-9fbe-44ca-ac99-58214f678d36\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/6dd888a8-c18d-4b22-a884-1c1b648dd7f3\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003eSettings page\u003c/summary\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/8d4da92d-5e4e-45a8-9345-e77435d6fcac\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/9ed5f5c4-dae6-49ac-9c65-eae8bfca42a9\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/1ebff18a-6fda-4a1c-8f7b-a1c47cac1f34\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/05d6db16-396c-4c93-b31a-4caef650bbc5\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/96fdef19-e575-4d97-b5e1-bdf6da7afbfd\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003eSearch page\u003c/summary\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/90413e5e-87af-46fe-b5e2-1779ac3e734b\"\u003e\n  \u003cimg src=\"https://github.com/EthanNgit/HanziWebApp/assets/105979510/c57e9365-695e-4513-870c-6beb2fa7fa4f\"\u003e\n\u003c/details\u003e\n\n\n\n## Past versions\n\u003e Documentation of each git release is contained and stored.\n\n\u003cdetails\u003e\u003csummary\u003eHistory\u003c/summary\u003e\n   \u003cdetails\u003e\u003csummary\u003eV4\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003eV: 0.4.0 File reformatting, bug fixes, settings, themes, practice option\u003c/li\u003e\n  \u003c/ul\u003e\n \u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eV3\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003eV: 0.3.5 Bug fixes, optimization, code formatting\u003c/li\u003e\n    \u003cli\u003eV: 0.3.4 Ui changes, new review methods\u003c/li\u003e\n    \u003cli\u003eV: 0.3.3 Bug fixes, ui cleanup, ui qol, story system\u003c/li\u003e\n    \u003cli\u003e V: 0.3.2 Bug fixes, ui changes, code cleanup.\u003c/li\u003e\n    \u003cli\u003e V: 0.3.1 Practice Page, bug fixes, optimization on queries and load times, new theme, strings are now localized.\u003c/li\u003e\n  \u003c/ul\u003e\n \u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eV2\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e V: 0.2.1 SRS start and reviewing, bug fixing\u003c/li\u003e \n  \u003c/ul\u003e\n \u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eV1\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e V: 0.1.1 Learn Page ui\u003c/li\u003e\n    \u003cli\u003e V: 0.1 Base Update and dictionary api (personal)...\u003c/li\u003e\n  \u003c/ul\u003e\n \u003c/details\u003e\n\u003c/details\u003e\n\n## Future plans\n\u003e Plans and structure for each version planned along with the already completed versions.\n\n\u003cdetails\u003e\u003csummary\u003eRoadmap\u003c/summary\u003e\n \u003cdetails\u003e\u003csummary\u003eV0.1\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e Setup ReactJS and NodeJs\u003c/li\u003e\n    \u003cli\u003e Create Login and register system\u003c/li\u003e\n    \u003cli\u003e Create base outline for dictionary setup\u003c/li\u003e\n    \u003cli\u003e Create of hanzi dictionary in sql, up to hsk1 (174 characters)\u003c/li\u003e\n    \u003cli\u003e Searching functionality, making dictionary usable\u003c/li\u003e\n    \u003cli\u003e Setup base ui for site\u003c/li\u003e\n  \u003c/ul\u003e\n \u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eV0.2\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e Create SRS system\u003c/li\u003e\n    \u003cli\u003e Create basic user stats\u003c/li\u003e\n    \u003cli\u003e Add more details to hanzi dictionary (about, sentence, etc...)\u003c/li\u003e\n    \u003cli\u003e Add ability to start learning new characters\u003c/li\u003e\n    \u003cli\u003e Review system\u003c/li\u003e\n    \u003cli\u003e Lesson system\u003c/li\u003e\n    \u003cli\u003e Start making trial lessons\u003c/li\u003e\n  \u003c/ul\u003e\n \u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eV0.3\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e Convert all text to string file for the future ability to add language support\u003c/li\u003e\n    \u003cli\u003e Optimize dictionary calls by making it one time global\u003c/li\u003e\n    \u003cli\u003e Calculate user current level\u003c/li\u003e\n    \u003cli\u003e Start practice systems\u003c/li\u003e\n  \u003c/ul\u003e\n \u003c/details\u003e\n\u003c/details\u003e\n\n  \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanngit%2Fhanziwebapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethanngit%2Fhanziwebapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanngit%2Fhanziwebapp/lists"}