From 6db6bea96de3e8c53a7780680d4575b8e826e49f Mon Sep 17 00:00:00 2001
From: lalalam123 <90650499+lalalam123@users.noreply.github.com>
Date: Mon, 17 Jun 2024 16:40:22 +0800
Subject: [PATCH 1/2] upgrade architecture setup
---
.gitignore | 214 +++++++++++++++++++++++++++++++++++++++++++++++
README.md | 15 +++-
assets/Intro.png | Bin 0 -> 612910 bytes
3 files changed, 228 insertions(+), 1 deletion(-)
create mode 100644 .gitignore
create mode 100644 assets/Intro.png
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..104dde6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,214 @@
+.idea/
+
+# Created by https://www.gitignore.io/api/macos,linux,django,python,pycharm
+
+### Django ###
+*.log
+*.pot
+*.pyc
+__pycache__/
+local_settings.py
+db.sqlite3
+media
+
+### Linux ###
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+### macOS ###
+*.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### PyCharm ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# CMake
+cmake-build-debug/
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+### PyCharm Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+### Python ###
+# Byte-compiled / optimized / DLL files
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+
+# Translations
+*.mo
+
+# Django stuff:
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# dotenv
+.env
+
+# virtualenv
+.venv
+venv/
+ENV/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# End of https://www.gitignore.io/api/macos,linux,django,python,pycharm
\ No newline at end of file
diff --git a/README.md b/README.md
index c56a3e0..70a9fa8 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,16 @@
-# NihongoLearning
+## ✨ Welcome to NihongoLearning ✨
Kana Quiz: Providing Japanese Expression, User need to input the corresponding kana.
+
+## Getting Started
+
+1. Clone this repo
+
+2. Run `word_quiz_v2.py` with python
+
+3. Upload the corresponding vocabulary file & enjoy the Hirakana/Katakana quiz!
+
+
+

+
Onboarding Screenshot
+
diff --git a/assets/Intro.png b/assets/Intro.png
new file mode 100644
index 0000000000000000000000000000000000000000..26ee628844b60099e4ce5e64945785ed0e01b009
GIT binary patch
literal 612910
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