├── .gitignore ├── README.md ├── banner.png ├── mydjango01 ├── .gitignore ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── manage.py └── mysite │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── mydjango02 ├── main01.py ├── main02.py ├── melon-20230906.sqlite3 ├── mydjango.py └── templates │ └── index.html ├── mydjango03-hottrack ├── hottrack │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── converters.py │ ├── management │ │ └── commands │ │ │ └── load_melon_songs.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── hottrack │ │ │ ├── _song.html │ │ │ └── index.html │ ├── tests.py │ ├── urls.py │ ├── utils │ │ ├── cover.py │ │ └── melon.py │ └── views.py ├── manage.py ├── mysite │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── requirements.txt ├── mydjango04 ├── accounts │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_superuser_profile.py │ │ ├── 0003_profile_point_alter_profile_user.py │ │ ├── 0004_user_follower_set_user_friend_set.py │ │ ├── 0005_profile_photo.py │ │ ├── 0006_profile_phone_number.py │ │ ├── 0007_profile_birth_date_alter_profile_phone_number.py │ │ ├── 0008_alter_profile_birth_date.py │ │ ├── 0009_profile_location_point.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── accounts │ │ │ ├── login_form.html │ │ │ ├── password_change_form.html │ │ │ ├── password_reset_email.html │ │ │ ├── profile_form.html │ │ │ ├── profile_wizard.html │ │ │ └── signup_form.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── blog │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── management │ │ └── commands │ │ │ ├── load_blog_posts.py │ │ │ └── load_blog_tags.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_post_author.py │ │ ├── 0003_category_post_category.py │ │ ├── 0004_post_slug.py │ │ ├── 0005_post_unique_slug.py │ │ ├── 0006_accesslog.py │ │ ├── 0007_article.py │ │ ├── 0008_review_alter_post_options_and_more.py │ │ ├── 0009_tag.py │ │ ├── 0010_alter_tag_options_tag_blog_tag_name_43b6ed_idx.py │ │ ├── 0011_accesslog_created_at_accesslog_updated_at_and_more.py │ │ ├── 0012_alter_post_options.py │ │ ├── 0013_alter_review_table_comment.py │ │ ├── 0014_remove_tag_blog_tag_name_43b6ed_idx_and_more.py │ │ ├── 0015_remove_tag_blog_tag_name_unique_and_more.py │ │ ├── 0016_course_student_enrollment.py │ │ ├── 0017_enrollment_blog_enrollment_uniq.py │ │ ├── 0018_comment_author_comment_parent_post_tag_set.py │ │ ├── 0019_alter_post_author_alter_post_tag_set.py │ │ ├── 0020_posttagrelation_and_more.py │ │ ├── 0021_remove_post_tag_set.py │ │ ├── 0022_post_tag_set.py │ │ ├── 0023_alter_post_updated_at.py │ │ ├── 0024_memo.py │ │ ├── 0025_memo_author.py │ │ ├── 0026_memogroup_remove_memo_author_memo_group.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── blog │ │ │ ├── _tag_form.html │ │ │ ├── _tag_list.html │ │ │ ├── _tag_list_item.html │ │ │ ├── base.html │ │ │ ├── demo_form.html │ │ │ ├── demo_form_field.html │ │ │ ├── memo_form.html │ │ │ ├── post_list.html │ │ │ ├── post_new.html │ │ │ ├── review_detail.html │ │ │ ├── review_form.html │ │ │ ├── review_list.html │ │ │ ├── search.html │ │ │ ├── tag_form.html │ │ │ ├── tag_list.html │ │ │ └── test.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── cafe │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── components │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── src-django-components │ │ ├── hello_world │ │ │ ├── hello_world.css │ │ │ ├── hello_world.html │ │ │ ├── hello_world.js │ │ │ └── hello_world.py │ │ ├── modal_form │ │ │ ├── modal_form.html │ │ │ ├── modal_form.js │ │ │ └── modal_form.py │ │ └── observe-node-insertion.js │ ├── static │ │ └── components-pure │ │ │ ├── hello-world.css │ │ │ └── hello-world.js │ ├── templates │ │ └── components-pure │ │ │ └── hello-world.html │ ├── tests.py │ └── views.py ├── core │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── context_processors.py │ ├── crispy_bootstrap5_ext │ │ ├── layout.py │ │ └── templates │ │ │ └── core │ │ │ └── crispy_bootstrap5_ext │ │ │ └── layout │ │ │ └── tab.html │ ├── decorators.py │ ├── forms │ │ ├── fields.py │ │ ├── renderers.py │ │ └── widgets.py │ ├── migrations │ │ └── __init__.py │ ├── model_fields.py │ ├── models.py │ ├── static │ │ └── core │ │ │ ├── forms │ │ │ └── widgets │ │ │ │ └── ios_form_switch.css │ │ │ ├── star-rating-js │ │ │ ├── 4.3.0 │ │ │ │ ├── star-rating.cjs.js │ │ │ │ ├── star-rating.css │ │ │ │ ├── star-rating.esm.js │ │ │ │ ├── star-rating.esm.min.js │ │ │ │ ├── star-rating.js │ │ │ │ ├── star-rating.min.css │ │ │ │ └── star-rating.min.js │ │ │ └── img │ │ │ │ ├── star-empty.svg │ │ │ │ └── star-full.svg │ │ │ └── toast-messages.js │ ├── templates │ │ └── core │ │ │ ├── _messages_as_event.html │ │ │ ├── _messages_as_toast.html │ │ │ ├── forms │ │ │ └── widgets │ │ │ │ ├── counter_text.html │ │ │ │ ├── date_picker.html │ │ │ │ ├── horizontal_radio.html │ │ │ │ ├── naver_map_point.html │ │ │ │ ├── preview_clearable_file.html │ │ │ │ └── star_rating_select.html │ │ │ └── index.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── docker-compose.yml ├── hottrack │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── converters.py │ ├── filters.py │ ├── management │ │ └── commands │ │ │ └── load_melon_songs.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_comment.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── hottrack │ │ │ ├── _pagination.html │ │ │ ├── _song.html │ │ │ ├── base.html │ │ │ ├── index.html │ │ │ ├── song_archive.html │ │ │ ├── song_archive_day.html │ │ │ ├── song_archive_month.html │ │ │ ├── song_archive_week.html │ │ │ ├── song_archive_year.html │ │ │ └── song_detail.html │ ├── tests.py │ ├── urls.py │ ├── utils │ │ ├── cover.py │ │ └── melon.py │ └── views.py ├── html │ ├── csrf_attack │ │ └── csrf_attack_using_img.html │ ├── form1.html │ └── form2.html ├── manage.py ├── mysite │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── templates │ │ └── root.html │ ├── urls.py │ └── wsgi.py ├── requirements.txt ├── school │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── fixtures.json │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── shop │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── assets │ │ └── zipcode_db │ │ │ └── 20231205 │ │ │ └── 서울특별시.txt │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_insert_zipcode_data.py │ │ ├── 0003_auto_20231214_0823.py │ │ ├── 0004_auto_20231214_0823.py │ │ ├── 0005_auto_20231214_0823.py │ │ ├── 0006_auto_20231214_0823.py │ │ ├── 0007_junioremployee_post.py │ │ ├── 0008_product_alter_post_author_order.py │ │ ├── 0009_event_ticket.py │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── weblog │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_comment_rating.py │ │ ├── 0003_post_content_post_created_date_post_photo_and_more.py │ │ ├── 0004_post_ip.py │ │ ├── 0005_post_tag_set.py │ │ ├── 0006_post_is_public.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── weblog │ │ │ ├── index.html │ │ │ ├── post_confirm_delete.html │ │ │ ├── post_detail.html │ │ │ └── post_form.html │ ├── tests.py │ ├── urls.py │ └── views.py └── zipcode_sample_download.py ├── mynextjs ├── .eslintrc.json ├── .gitignore ├── README.md ├── jsconfig.json ├── next.config.mjs ├── package-lock.json ├── package.json ├── pages │ ├── _document.jsx │ └── blog │ │ └── index.js ├── postcss.config.mjs ├── public │ ├── next.svg │ └── vercel.svg ├── src │ └── app │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.js │ │ └── page.js └── tailwind.config.js ├── myproj ├── .gitignore ├── accounts │ ├── __init__.py │ ├── admin.py │ ├── api.py │ ├── apps.py │ ├── forms.py │ ├── management │ │ └── commands │ │ │ └── test_send_welcome_email.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_profile.py │ │ ├── 0003_user_following_user_set.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── accounts │ │ │ ├── base.html │ │ │ ├── profile.html │ │ │ └── welcome_email │ │ │ │ ├── content.txt │ │ │ │ └── subject.txt │ │ └── test.html │ ├── tests.py │ ├── tests │ │ ├── __init__.py │ │ └── factories.py │ ├── urls.py │ ├── utils.py │ └── views.py ├── api-test.http ├── blog │ ├── __init__.py │ ├── admin.py │ ├── api.py │ ├── apps.py │ ├── forms.py │ ├── management │ │ └── commands │ │ │ └── create_fake_posts.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_todo.py │ │ └── __init__.py │ ├── models.py │ ├── serializers.py │ ├── templates │ │ └── blog │ │ │ ├── _todo_form.html │ │ │ └── index.html │ ├── tests.py │ ├── tests │ │ ├── __init__.py │ │ ├── factories.py │ │ └── test_api.py │ ├── urls.py │ └── views.py ├── config │ └── nginx.conf ├── core │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── decorators.py │ ├── management │ │ └── commands │ │ │ └── react-components.py │ ├── middleware.py │ ├── migrations │ │ └── __init__.py │ ├── mixins.py │ ├── models.py │ ├── pagination.py │ ├── permissions.py │ ├── react_components_map.py │ ├── renderers.py │ ├── src-django-components │ │ ├── __init__.py │ │ ├── carousel │ │ │ ├── carousel.css │ │ │ ├── carousel.html │ │ │ ├── carousel.js │ │ │ └── carousel.py │ │ ├── hello_world │ │ │ ├── hello_world.html │ │ │ └── hello_world.py │ │ ├── image_overlay │ │ │ ├── image_overlay.css │ │ │ ├── image_overlay.html │ │ │ └── image_overlay.py │ │ ├── modal_form │ │ │ ├── __init__.py │ │ │ ├── modal_form.html │ │ │ ├── modal_form.js │ │ │ └── modal_form.py │ │ └── react_dist │ │ │ ├── hello_world.38d394c2.css │ │ │ ├── hello_world.771e87f6.js │ │ │ └── hello_world.html │ ├── src-react-components │ │ ├── package-lock.json │ │ ├── package.json │ │ └── src │ │ │ ├── base.js │ │ │ ├── hello_world.html │ │ │ ├── hello_world.js │ │ │ └── hello_world.module.css │ ├── static │ │ ├── bootstrap-icons │ │ │ └── 1.11.3 │ │ │ │ ├── 0-circle-fill.svg │ │ │ │ ├── 0-circle.svg │ │ │ │ ├── 0-square-fill.svg │ │ │ │ ├── 0-square.svg │ │ │ │ ├── 1-circle-fill.svg │ │ │ │ ├── 1-circle.svg │ │ │ │ ├── 1-square-fill.svg │ │ │ │ ├── 1-square.svg │ │ │ │ ├── 123.svg │ │ │ │ ├── 2-circle-fill.svg │ │ │ │ ├── 2-circle.svg │ │ │ │ ├── 2-square-fill.svg │ │ │ │ ├── 2-square.svg │ │ │ │ ├── 3-circle-fill.svg │ │ │ │ ├── 3-circle.svg │ │ │ │ ├── 3-square-fill.svg │ │ │ │ ├── 3-square.svg │ │ │ │ ├── 4-circle-fill.svg │ │ │ │ ├── 4-circle.svg │ │ │ │ ├── 4-square-fill.svg │ │ │ │ ├── 4-square.svg │ │ │ │ ├── 5-circle-fill.svg │ │ │ │ ├── 5-circle.svg │ │ │ │ ├── 5-square-fill.svg │ │ │ │ ├── 5-square.svg │ │ │ │ ├── 6-circle-fill.svg │ │ │ │ ├── 6-circle.svg │ │ │ │ ├── 6-square-fill.svg │ │ │ │ ├── 6-square.svg │ │ │ │ ├── 7-circle-fill.svg │ │ │ │ ├── 7-circle.svg │ │ │ │ ├── 7-square-fill.svg │ │ │ │ ├── 7-square.svg │ │ │ │ ├── 8-circle-fill.svg │ │ │ │ ├── 8-circle.svg │ │ │ │ ├── 8-square-fill.svg │ │ │ │ ├── 8-square.svg │ │ │ │ ├── 9-circle-fill.svg │ │ │ │ ├── 9-circle.svg │ │ │ │ ├── 9-square-fill.svg │ │ │ │ ├── 9-square.svg │ │ │ │ ├── activity.svg │ │ │ │ ├── airplane-engines-fill.svg │ │ │ │ ├── airplane-engines.svg │ │ │ │ ├── airplane-fill.svg │ │ │ │ ├── airplane.svg │ │ │ │ ├── alarm-fill.svg │ │ │ │ ├── alarm.svg │ │ │ │ ├── alexa.svg │ │ │ │ ├── align-bottom.svg │ │ │ │ ├── align-center.svg │ │ │ │ ├── align-end.svg │ │ │ │ ├── align-middle.svg │ │ │ │ ├── align-start.svg │ │ │ │ ├── align-top.svg │ │ │ │ ├── alipay.svg │ │ │ │ ├── alphabet-uppercase.svg │ │ │ │ ├── alphabet.svg │ │ │ │ ├── alt.svg │ │ │ │ ├── amazon.svg │ │ │ │ ├── amd.svg │ │ │ │ ├── android.svg │ │ │ │ ├── android2.svg │ │ │ │ ├── app-indicator.svg │ │ │ │ ├── app.svg │ │ │ │ ├── apple.svg │ │ │ │ ├── archive-fill.svg │ │ │ │ ├── archive.svg │ │ │ │ ├── arrow-90deg-down.svg │ │ │ │ ├── arrow-90deg-left.svg │ │ │ │ ├── arrow-90deg-right.svg │ │ │ │ ├── arrow-90deg-up.svg │ │ │ │ ├── arrow-bar-down.svg │ │ │ │ ├── arrow-bar-left.svg │ │ │ │ ├── arrow-bar-right.svg │ │ │ │ ├── arrow-bar-up.svg │ │ │ │ ├── arrow-clockwise.svg │ │ │ │ ├── arrow-counterclockwise.svg │ │ │ │ ├── arrow-down-circle-fill.svg │ │ │ │ ├── arrow-down-circle.svg │ │ │ │ ├── arrow-down-left-circle-fill.svg │ │ │ │ ├── arrow-down-left-circle.svg │ │ │ │ ├── arrow-down-left-square-fill.svg │ │ │ │ ├── arrow-down-left-square.svg │ │ │ │ ├── arrow-down-left.svg │ │ │ │ ├── arrow-down-right-circle-fill.svg │ │ │ │ ├── arrow-down-right-circle.svg │ │ │ │ ├── arrow-down-right-square-fill.svg │ │ │ │ ├── arrow-down-right-square.svg │ │ │ │ ├── arrow-down-right.svg │ │ │ │ ├── arrow-down-short.svg │ │ │ │ ├── arrow-down-square-fill.svg │ │ │ │ ├── arrow-down-square.svg │ │ │ │ ├── arrow-down-up.svg │ │ │ │ ├── arrow-down.svg │ │ │ │ ├── arrow-left-circle-fill.svg │ │ │ │ ├── arrow-left-circle.svg │ │ │ │ ├── arrow-left-right.svg │ │ │ │ ├── arrow-left-short.svg │ │ │ │ ├── arrow-left-square-fill.svg │ │ │ │ ├── arrow-left-square.svg │ │ │ │ ├── arrow-left.svg │ │ │ │ ├── arrow-repeat.svg │ │ │ │ ├── arrow-return-left.svg │ │ │ │ ├── arrow-return-right.svg │ │ │ │ ├── arrow-right-circle-fill.svg │ │ │ │ ├── arrow-right-circle.svg │ │ │ │ ├── arrow-right-short.svg │ │ │ │ ├── arrow-right-square-fill.svg │ │ │ │ ├── arrow-right-square.svg │ │ │ │ ├── arrow-right.svg │ │ │ │ ├── arrow-through-heart-fill.svg │ │ │ │ ├── arrow-through-heart.svg │ │ │ │ ├── arrow-up-circle-fill.svg │ │ │ │ ├── arrow-up-circle.svg │ │ │ │ ├── arrow-up-left-circle-fill.svg │ │ │ │ ├── arrow-up-left-circle.svg │ │ │ │ ├── arrow-up-left-square-fill.svg │ │ │ │ ├── arrow-up-left-square.svg │ │ │ │ ├── arrow-up-left.svg │ │ │ │ ├── arrow-up-right-circle-fill.svg │ │ │ │ ├── arrow-up-right-circle.svg │ │ │ │ ├── arrow-up-right-square-fill.svg │ │ │ │ ├── arrow-up-right-square.svg │ │ │ │ ├── arrow-up-right.svg │ │ │ │ ├── arrow-up-short.svg │ │ │ │ ├── arrow-up-square-fill.svg │ │ │ │ ├── arrow-up-square.svg │ │ │ │ ├── arrow-up.svg │ │ │ │ ├── arrows-angle-contract.svg │ │ │ │ ├── arrows-angle-expand.svg │ │ │ │ ├── arrows-collapse-vertical.svg │ │ │ │ ├── arrows-collapse.svg │ │ │ │ ├── arrows-expand-vertical.svg │ │ │ │ ├── arrows-expand.svg │ │ │ │ ├── arrows-fullscreen.svg │ │ │ │ ├── arrows-move.svg │ │ │ │ ├── arrows-vertical.svg │ │ │ │ ├── arrows.svg │ │ │ │ ├── aspect-ratio-fill.svg │ │ │ │ ├── aspect-ratio.svg │ │ │ │ ├── asterisk.svg │ │ │ │ ├── at.svg │ │ │ │ ├── award-fill.svg │ │ │ │ ├── award.svg │ │ │ │ ├── back.svg │ │ │ │ ├── backpack-fill.svg │ │ │ │ ├── backpack.svg │ │ │ │ ├── backpack2-fill.svg │ │ │ │ ├── backpack2.svg │ │ │ │ ├── backpack3-fill.svg │ │ │ │ ├── backpack3.svg │ │ │ │ ├── backpack4-fill.svg │ │ │ │ ├── backpack4.svg │ │ │ │ ├── backspace-fill.svg │ │ │ │ ├── backspace-reverse-fill.svg │ │ │ │ ├── backspace-reverse.svg │ │ │ │ ├── backspace.svg │ │ │ │ ├── badge-3d-fill.svg │ │ │ │ ├── badge-3d.svg │ │ │ │ ├── badge-4k-fill.svg │ │ │ │ ├── badge-4k.svg │ │ │ │ ├── badge-8k-fill.svg │ │ │ │ ├── badge-8k.svg │ │ │ │ ├── badge-ad-fill.svg │ │ │ │ ├── badge-ad.svg │ │ │ │ ├── badge-ar-fill.svg │ │ │ │ ├── badge-ar.svg │ │ │ │ ├── badge-cc-fill.svg │ │ │ │ ├── badge-cc.svg │ │ │ │ ├── badge-hd-fill.svg │ │ │ │ ├── badge-hd.svg │ │ │ │ ├── badge-sd-fill.svg │ │ │ │ ├── badge-sd.svg │ │ │ │ ├── badge-tm-fill.svg │ │ │ │ ├── badge-tm.svg │ │ │ │ ├── badge-vo-fill.svg │ │ │ │ ├── badge-vo.svg │ │ │ │ ├── badge-vr-fill.svg │ │ │ │ ├── badge-vr.svg │ │ │ │ ├── badge-wc-fill.svg │ │ │ │ ├── badge-wc.svg │ │ │ │ ├── bag-check-fill.svg │ │ │ │ ├── bag-check.svg │ │ │ │ ├── bag-dash-fill.svg │ │ │ │ ├── bag-dash.svg │ │ │ │ ├── bag-fill.svg │ │ │ │ ├── bag-heart-fill.svg │ │ │ │ ├── bag-heart.svg │ │ │ │ ├── bag-plus-fill.svg │ │ │ │ ├── bag-plus.svg │ │ │ │ ├── bag-x-fill.svg │ │ │ │ ├── bag-x.svg │ │ │ │ ├── bag.svg │ │ │ │ ├── balloon-fill.svg │ │ │ │ ├── balloon-heart-fill.svg │ │ │ │ ├── balloon-heart.svg │ │ │ │ ├── balloon.svg │ │ │ │ ├── ban-fill.svg │ │ │ │ ├── ban.svg │ │ │ │ ├── bandaid-fill.svg │ │ │ │ ├── bandaid.svg │ │ │ │ ├── bank.svg │ │ │ │ ├── bank2.svg │ │ │ │ ├── bar-chart-fill.svg │ │ │ │ ├── bar-chart-line-fill.svg │ │ │ │ ├── bar-chart-line.svg │ │ │ │ ├── bar-chart-steps.svg │ │ │ │ ├── bar-chart.svg │ │ │ │ ├── basket-fill.svg │ │ │ │ ├── basket.svg │ │ │ │ ├── basket2-fill.svg │ │ │ │ ├── basket2.svg │ │ │ │ ├── basket3-fill.svg │ │ │ │ ├── basket3.svg │ │ │ │ ├── battery-charging.svg │ │ │ │ ├── battery-full.svg │ │ │ │ ├── battery-half.svg │ │ │ │ ├── battery.svg │ │ │ │ ├── behance.svg │ │ │ │ ├── bell-fill.svg │ │ │ │ ├── bell-slash-fill.svg │ │ │ │ ├── bell-slash.svg │ │ │ │ ├── bell.svg │ │ │ │ ├── bezier.svg │ │ │ │ ├── bezier2.svg │ │ │ │ ├── bicycle.svg │ │ │ │ ├── bing.svg │ │ │ │ ├── binoculars-fill.svg │ │ │ │ ├── binoculars.svg │ │ │ │ ├── blockquote-left.svg │ │ │ │ ├── blockquote-right.svg │ │ │ │ ├── bluetooth.svg │ │ │ │ ├── body-text.svg │ │ │ │ ├── book-fill.svg │ │ │ │ ├── book-half.svg │ │ │ │ ├── book.svg │ │ │ │ ├── bookmark-check-fill.svg │ │ │ │ ├── bookmark-check.svg │ │ │ │ ├── bookmark-dash-fill.svg │ │ │ │ ├── bookmark-dash.svg │ │ │ │ ├── bookmark-fill.svg │ │ │ │ ├── bookmark-heart-fill.svg │ │ │ │ ├── bookmark-heart.svg │ │ │ │ ├── bookmark-plus-fill.svg │ │ │ │ ├── bookmark-plus.svg │ │ │ │ ├── bookmark-star-fill.svg │ │ │ │ ├── bookmark-star.svg │ │ │ │ ├── bookmark-x-fill.svg │ │ │ │ ├── bookmark-x.svg │ │ │ │ ├── bookmark.svg │ │ │ │ ├── bookmarks-fill.svg │ │ │ │ ├── bookmarks.svg │ │ │ │ ├── bookshelf.svg │ │ │ │ ├── boombox-fill.svg │ │ │ │ ├── boombox.svg │ │ │ │ ├── bootstrap-fill.svg │ │ │ │ ├── bootstrap-icons.svg │ │ │ │ ├── bootstrap-reboot.svg │ │ │ │ ├── bootstrap.svg │ │ │ │ ├── border-all.svg │ │ │ │ ├── border-bottom.svg │ │ │ │ ├── border-center.svg │ │ │ │ ├── border-inner.svg │ │ │ │ ├── border-left.svg │ │ │ │ ├── border-middle.svg │ │ │ │ ├── border-outer.svg │ │ │ │ ├── border-right.svg │ │ │ │ ├── border-style.svg │ │ │ │ ├── border-top.svg │ │ │ │ ├── border-width.svg │ │ │ │ ├── border.svg │ │ │ │ ├── bounding-box-circles.svg │ │ │ │ ├── bounding-box.svg │ │ │ │ ├── box-arrow-down-left.svg │ │ │ │ ├── box-arrow-down-right.svg │ │ │ │ ├── box-arrow-down.svg │ │ │ │ ├── box-arrow-in-down-left.svg │ │ │ │ ├── box-arrow-in-down-right.svg │ │ │ │ ├── box-arrow-in-down.svg │ │ │ │ ├── box-arrow-in-left.svg │ │ │ │ ├── box-arrow-in-right.svg │ │ │ │ ├── box-arrow-in-up-left.svg │ │ │ │ ├── box-arrow-in-up-right.svg │ │ │ │ ├── box-arrow-in-up.svg │ │ │ │ ├── box-arrow-left.svg │ │ │ │ ├── box-arrow-right.svg │ │ │ │ ├── box-arrow-up-left.svg │ │ │ │ ├── box-arrow-up-right.svg │ │ │ │ ├── box-arrow-up.svg │ │ │ │ ├── box-fill.svg │ │ │ │ ├── box-seam-fill.svg │ │ │ │ ├── box-seam.svg │ │ │ │ ├── box.svg │ │ │ │ ├── box2-fill.svg │ │ │ │ ├── box2-heart-fill.svg │ │ │ │ ├── box2-heart.svg │ │ │ │ ├── box2.svg │ │ │ │ ├── boxes.svg │ │ │ │ ├── braces-asterisk.svg │ │ │ │ ├── braces.svg │ │ │ │ ├── bricks.svg │ │ │ │ ├── briefcase-fill.svg │ │ │ │ ├── briefcase.svg │ │ │ │ ├── brightness-alt-high-fill.svg │ │ │ │ ├── brightness-alt-high.svg │ │ │ │ ├── brightness-alt-low-fill.svg │ │ │ │ ├── brightness-alt-low.svg │ │ │ │ ├── brightness-high-fill.svg │ │ │ │ ├── brightness-high.svg │ │ │ │ ├── brightness-low-fill.svg │ │ │ │ ├── brightness-low.svg │ │ │ │ ├── brilliance.svg │ │ │ │ ├── broadcast-pin.svg │ │ │ │ ├── broadcast.svg │ │ │ │ ├── browser-chrome.svg │ │ │ │ ├── browser-edge.svg │ │ │ │ ├── browser-firefox.svg │ │ │ │ ├── browser-safari.svg │ │ │ │ ├── brush-fill.svg │ │ │ │ ├── brush.svg │ │ │ │ ├── bucket-fill.svg │ │ │ │ ├── bucket.svg │ │ │ │ ├── bug-fill.svg │ │ │ │ ├── bug.svg │ │ │ │ ├── building-add.svg │ │ │ │ ├── building-check.svg │ │ │ │ ├── building-dash.svg │ │ │ │ ├── building-down.svg │ │ │ │ ├── building-exclamation.svg │ │ │ │ ├── building-fill-add.svg │ │ │ │ ├── building-fill-check.svg │ │ │ │ ├── building-fill-dash.svg │ │ │ │ ├── building-fill-down.svg │ │ │ │ ├── building-fill-exclamation.svg │ │ │ │ ├── building-fill-gear.svg │ │ │ │ ├── building-fill-lock.svg │ │ │ │ ├── building-fill-slash.svg │ │ │ │ ├── building-fill-up.svg │ │ │ │ ├── building-fill-x.svg │ │ │ │ ├── building-fill.svg │ │ │ │ ├── building-gear.svg │ │ │ │ ├── building-lock.svg │ │ │ │ ├── building-slash.svg │ │ │ │ ├── building-up.svg │ │ │ │ ├── building-x.svg │ │ │ │ ├── building.svg │ │ │ │ ├── buildings-fill.svg │ │ │ │ ├── buildings.svg │ │ │ │ ├── bullseye.svg │ │ │ │ ├── bus-front-fill.svg │ │ │ │ ├── bus-front.svg │ │ │ │ ├── c-circle-fill.svg │ │ │ │ ├── c-circle.svg │ │ │ │ ├── c-square-fill.svg │ │ │ │ ├── c-square.svg │ │ │ │ ├── cake-fill.svg │ │ │ │ ├── cake.svg │ │ │ │ ├── cake2-fill.svg │ │ │ │ ├── cake2.svg │ │ │ │ ├── calculator-fill.svg │ │ │ │ ├── calculator.svg │ │ │ │ ├── calendar-check-fill.svg │ │ │ │ ├── calendar-check.svg │ │ │ │ ├── calendar-date-fill.svg │ │ │ │ ├── calendar-date.svg │ │ │ │ ├── calendar-day-fill.svg │ │ │ │ ├── calendar-day.svg │ │ │ │ ├── calendar-event-fill.svg │ │ │ │ ├── calendar-event.svg │ │ │ │ ├── calendar-fill.svg │ │ │ │ ├── calendar-heart-fill.svg │ │ │ │ ├── calendar-heart.svg │ │ │ │ ├── calendar-minus-fill.svg │ │ │ │ ├── calendar-minus.svg │ │ │ │ ├── calendar-month-fill.svg │ │ │ │ ├── calendar-month.svg │ │ │ │ ├── calendar-plus-fill.svg │ │ │ │ ├── calendar-plus.svg │ │ │ │ ├── calendar-range-fill.svg │ │ │ │ ├── calendar-range.svg │ │ │ │ ├── calendar-week-fill.svg │ │ │ │ ├── calendar-week.svg │ │ │ │ ├── calendar-x-fill.svg │ │ │ │ ├── calendar-x.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── calendar2-check-fill.svg │ │ │ │ ├── calendar2-check.svg │ │ │ │ ├── calendar2-date-fill.svg │ │ │ │ ├── calendar2-date.svg │ │ │ │ ├── calendar2-day-fill.svg │ │ │ │ ├── calendar2-day.svg │ │ │ │ ├── calendar2-event-fill.svg │ │ │ │ ├── calendar2-event.svg │ │ │ │ ├── calendar2-fill.svg │ │ │ │ ├── calendar2-heart-fill.svg │ │ │ │ ├── calendar2-heart.svg │ │ │ │ ├── calendar2-minus-fill.svg │ │ │ │ ├── calendar2-minus.svg │ │ │ │ ├── calendar2-month-fill.svg │ │ │ │ ├── calendar2-month.svg │ │ │ │ ├── calendar2-plus-fill.svg │ │ │ │ ├── calendar2-plus.svg │ │ │ │ ├── calendar2-range-fill.svg │ │ │ │ ├── calendar2-range.svg │ │ │ │ ├── calendar2-week-fill.svg │ │ │ │ ├── calendar2-week.svg │ │ │ │ ├── calendar2-x-fill.svg │ │ │ │ ├── calendar2-x.svg │ │ │ │ ├── calendar2.svg │ │ │ │ ├── calendar3-event-fill.svg │ │ │ │ ├── calendar3-event.svg │ │ │ │ ├── calendar3-fill.svg │ │ │ │ ├── calendar3-range-fill.svg │ │ │ │ ├── calendar3-range.svg │ │ │ │ ├── calendar3-week-fill.svg │ │ │ │ ├── calendar3-week.svg │ │ │ │ ├── calendar3.svg │ │ │ │ ├── calendar4-event.svg │ │ │ │ ├── calendar4-range.svg │ │ │ │ ├── calendar4-week.svg │ │ │ │ ├── calendar4.svg │ │ │ │ ├── camera-fill.svg │ │ │ │ ├── camera-reels-fill.svg │ │ │ │ ├── camera-reels.svg │ │ │ │ ├── camera-video-fill.svg │ │ │ │ ├── camera-video-off-fill.svg │ │ │ │ ├── camera-video-off.svg │ │ │ │ ├── camera-video.svg │ │ │ │ ├── camera.svg │ │ │ │ ├── camera2.svg │ │ │ │ ├── capslock-fill.svg │ │ │ │ ├── capslock.svg │ │ │ │ ├── capsule-pill.svg │ │ │ │ ├── capsule.svg │ │ │ │ ├── car-front-fill.svg │ │ │ │ ├── car-front.svg │ │ │ │ ├── card-checklist.svg │ │ │ │ ├── card-heading.svg │ │ │ │ ├── card-image.svg │ │ │ │ ├── card-list.svg │ │ │ │ ├── card-text.svg │ │ │ │ ├── caret-down-fill.svg │ │ │ │ ├── caret-down-square-fill.svg │ │ │ │ ├── caret-down-square.svg │ │ │ │ ├── caret-down.svg │ │ │ │ ├── caret-left-fill.svg │ │ │ │ ├── caret-left-square-fill.svg │ │ │ │ ├── caret-left-square.svg │ │ │ │ ├── caret-left.svg │ │ │ │ ├── caret-right-fill.svg │ │ │ │ ├── caret-right-square-fill.svg │ │ │ │ ├── caret-right-square.svg │ │ │ │ ├── caret-right.svg │ │ │ │ ├── caret-up-fill.svg │ │ │ │ ├── caret-up-square-fill.svg │ │ │ │ ├── caret-up-square.svg │ │ │ │ ├── caret-up.svg │ │ │ │ ├── cart-check-fill.svg │ │ │ │ ├── cart-check.svg │ │ │ │ ├── cart-dash-fill.svg │ │ │ │ ├── cart-dash.svg │ │ │ │ ├── cart-fill.svg │ │ │ │ ├── cart-plus-fill.svg │ │ │ │ ├── cart-plus.svg │ │ │ │ ├── cart-x-fill.svg │ │ │ │ ├── cart-x.svg │ │ │ │ ├── cart.svg │ │ │ │ ├── cart2.svg │ │ │ │ ├── cart3.svg │ │ │ │ ├── cart4.svg │ │ │ │ ├── cash-coin.svg │ │ │ │ ├── cash-stack.svg │ │ │ │ ├── cash.svg │ │ │ │ ├── cassette-fill.svg │ │ │ │ ├── cassette.svg │ │ │ │ ├── cast.svg │ │ │ │ ├── cc-circle-fill.svg │ │ │ │ ├── cc-circle.svg │ │ │ │ ├── cc-square-fill.svg │ │ │ │ ├── cc-square.svg │ │ │ │ ├── chat-dots-fill.svg │ │ │ │ ├── chat-dots.svg │ │ │ │ ├── chat-fill.svg │ │ │ │ ├── chat-heart-fill.svg │ │ │ │ ├── chat-heart.svg │ │ │ │ ├── chat-left-dots-fill.svg │ │ │ │ ├── chat-left-dots.svg │ │ │ │ ├── chat-left-fill.svg │ │ │ │ ├── chat-left-heart-fill.svg │ │ │ │ ├── chat-left-heart.svg │ │ │ │ ├── chat-left-quote-fill.svg │ │ │ │ ├── chat-left-quote.svg │ │ │ │ ├── chat-left-text-fill.svg │ │ │ │ ├── chat-left-text.svg │ │ │ │ ├── chat-left.svg │ │ │ │ ├── chat-quote-fill.svg │ │ │ │ ├── chat-quote.svg │ │ │ │ ├── chat-right-dots-fill.svg │ │ │ │ ├── chat-right-dots.svg │ │ │ │ ├── chat-right-fill.svg │ │ │ │ ├── chat-right-heart-fill.svg │ │ │ │ ├── chat-right-heart.svg │ │ │ │ ├── chat-right-quote-fill.svg │ │ │ │ ├── chat-right-quote.svg │ │ │ │ ├── chat-right-text-fill.svg │ │ │ │ ├── chat-right-text.svg │ │ │ │ ├── chat-right.svg │ │ │ │ ├── chat-square-dots-fill.svg │ │ │ │ ├── chat-square-dots.svg │ │ │ │ ├── chat-square-fill.svg │ │ │ │ ├── chat-square-heart-fill.svg │ │ │ │ ├── chat-square-heart.svg │ │ │ │ ├── chat-square-quote-fill.svg │ │ │ │ ├── chat-square-quote.svg │ │ │ │ ├── chat-square-text-fill.svg │ │ │ │ ├── chat-square-text.svg │ │ │ │ ├── chat-square.svg │ │ │ │ ├── chat-text-fill.svg │ │ │ │ ├── chat-text.svg │ │ │ │ ├── chat.svg │ │ │ │ ├── check-all.svg │ │ │ │ ├── check-circle-fill.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check-lg.svg │ │ │ │ ├── check-square-fill.svg │ │ │ │ ├── check-square.svg │ │ │ │ ├── check.svg │ │ │ │ ├── check2-all.svg │ │ │ │ ├── check2-circle.svg │ │ │ │ ├── check2-square.svg │ │ │ │ ├── check2.svg │ │ │ │ ├── chevron-bar-contract.svg │ │ │ │ ├── chevron-bar-down.svg │ │ │ │ ├── chevron-bar-expand.svg │ │ │ │ ├── chevron-bar-left.svg │ │ │ │ ├── chevron-bar-right.svg │ │ │ │ ├── chevron-bar-up.svg │ │ │ │ ├── chevron-compact-down.svg │ │ │ │ ├── chevron-compact-left.svg │ │ │ │ ├── chevron-compact-right.svg │ │ │ │ ├── chevron-compact-up.svg │ │ │ │ ├── chevron-contract.svg │ │ │ │ ├── chevron-double-down.svg │ │ │ │ ├── chevron-double-left.svg │ │ │ │ ├── chevron-double-right.svg │ │ │ │ ├── chevron-double-up.svg │ │ │ │ ├── chevron-down.svg │ │ │ │ ├── chevron-expand.svg │ │ │ │ ├── chevron-left.svg │ │ │ │ ├── chevron-right.svg │ │ │ │ ├── chevron-up.svg │ │ │ │ ├── circle-fill.svg │ │ │ │ ├── circle-half.svg │ │ │ │ ├── circle-square.svg │ │ │ │ ├── circle.svg │ │ │ │ ├── clipboard-check-fill.svg │ │ │ │ ├── clipboard-check.svg │ │ │ │ ├── clipboard-data-fill.svg │ │ │ │ ├── clipboard-data.svg │ │ │ │ ├── clipboard-fill.svg │ │ │ │ ├── clipboard-heart-fill.svg │ │ │ │ ├── clipboard-heart.svg │ │ │ │ ├── clipboard-minus-fill.svg │ │ │ │ ├── clipboard-minus.svg │ │ │ │ ├── clipboard-plus-fill.svg │ │ │ │ ├── clipboard-plus.svg │ │ │ │ ├── clipboard-pulse.svg │ │ │ │ ├── clipboard-x-fill.svg │ │ │ │ ├── clipboard-x.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── clipboard2-check-fill.svg │ │ │ │ ├── clipboard2-check.svg │ │ │ │ ├── clipboard2-data-fill.svg │ │ │ │ ├── clipboard2-data.svg │ │ │ │ ├── clipboard2-fill.svg │ │ │ │ ├── clipboard2-heart-fill.svg │ │ │ │ ├── clipboard2-heart.svg │ │ │ │ ├── clipboard2-minus-fill.svg │ │ │ │ ├── clipboard2-minus.svg │ │ │ │ ├── clipboard2-plus-fill.svg │ │ │ │ ├── clipboard2-plus.svg │ │ │ │ ├── clipboard2-pulse-fill.svg │ │ │ │ ├── clipboard2-pulse.svg │ │ │ │ ├── clipboard2-x-fill.svg │ │ │ │ ├── clipboard2-x.svg │ │ │ │ ├── clipboard2.svg │ │ │ │ ├── clock-fill.svg │ │ │ │ ├── clock-history.svg │ │ │ │ ├── clock.svg │ │ │ │ ├── cloud-arrow-down-fill.svg │ │ │ │ ├── cloud-arrow-down.svg │ │ │ │ ├── cloud-arrow-up-fill.svg │ │ │ │ ├── cloud-arrow-up.svg │ │ │ │ ├── cloud-check-fill.svg │ │ │ │ ├── cloud-check.svg │ │ │ │ ├── cloud-download-fill.svg │ │ │ │ ├── cloud-download.svg │ │ │ │ ├── cloud-drizzle-fill.svg │ │ │ │ ├── cloud-drizzle.svg │ │ │ │ ├── cloud-fill.svg │ │ │ │ ├── cloud-fog-fill.svg │ │ │ │ ├── cloud-fog.svg │ │ │ │ ├── cloud-fog2-fill.svg │ │ │ │ ├── cloud-fog2.svg │ │ │ │ ├── cloud-hail-fill.svg │ │ │ │ ├── cloud-hail.svg │ │ │ │ ├── cloud-haze-fill.svg │ │ │ │ ├── cloud-haze.svg │ │ │ │ ├── cloud-haze2-fill.svg │ │ │ │ ├── cloud-haze2.svg │ │ │ │ ├── cloud-lightning-fill.svg │ │ │ │ ├── cloud-lightning-rain-fill.svg │ │ │ │ ├── cloud-lightning-rain.svg │ │ │ │ ├── cloud-lightning.svg │ │ │ │ ├── cloud-minus-fill.svg │ │ │ │ ├── cloud-minus.svg │ │ │ │ ├── cloud-moon-fill.svg │ │ │ │ ├── cloud-moon.svg │ │ │ │ ├── cloud-plus-fill.svg │ │ │ │ ├── cloud-plus.svg │ │ │ │ ├── cloud-rain-fill.svg │ │ │ │ ├── cloud-rain-heavy-fill.svg │ │ │ │ ├── cloud-rain-heavy.svg │ │ │ │ ├── cloud-rain.svg │ │ │ │ ├── cloud-slash-fill.svg │ │ │ │ ├── cloud-slash.svg │ │ │ │ ├── cloud-sleet-fill.svg │ │ │ │ ├── cloud-sleet.svg │ │ │ │ ├── cloud-snow-fill.svg │ │ │ │ ├── cloud-snow.svg │ │ │ │ ├── cloud-sun-fill.svg │ │ │ │ ├── cloud-sun.svg │ │ │ │ ├── cloud-upload-fill.svg │ │ │ │ ├── cloud-upload.svg │ │ │ │ ├── cloud.svg │ │ │ │ ├── clouds-fill.svg │ │ │ │ ├── clouds.svg │ │ │ │ ├── cloudy-fill.svg │ │ │ │ ├── cloudy.svg │ │ │ │ ├── code-slash.svg │ │ │ │ ├── code-square.svg │ │ │ │ ├── code.svg │ │ │ │ ├── coin.svg │ │ │ │ ├── collection-fill.svg │ │ │ │ ├── collection-play-fill.svg │ │ │ │ ├── collection-play.svg │ │ │ │ ├── collection.svg │ │ │ │ ├── columns-gap.svg │ │ │ │ ├── columns.svg │ │ │ │ ├── command.svg │ │ │ │ ├── compass-fill.svg │ │ │ │ ├── compass.svg │ │ │ │ ├── cone-striped.svg │ │ │ │ ├── cone.svg │ │ │ │ ├── controller.svg │ │ │ │ ├── cookie.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── cpu-fill.svg │ │ │ │ ├── cpu.svg │ │ │ │ ├── credit-card-2-back-fill.svg │ │ │ │ ├── credit-card-2-back.svg │ │ │ │ ├── credit-card-2-front-fill.svg │ │ │ │ ├── credit-card-2-front.svg │ │ │ │ ├── credit-card-fill.svg │ │ │ │ ├── credit-card.svg │ │ │ │ ├── crop.svg │ │ │ │ ├── crosshair.svg │ │ │ │ ├── crosshair2.svg │ │ │ │ ├── cup-fill.svg │ │ │ │ ├── cup-hot-fill.svg │ │ │ │ ├── cup-hot.svg │ │ │ │ ├── cup-straw.svg │ │ │ │ ├── cup.svg │ │ │ │ ├── currency-bitcoin.svg │ │ │ │ ├── currency-dollar.svg │ │ │ │ ├── currency-euro.svg │ │ │ │ ├── currency-exchange.svg │ │ │ │ ├── currency-pound.svg │ │ │ │ ├── currency-rupee.svg │ │ │ │ ├── currency-yen.svg │ │ │ │ ├── cursor-fill.svg │ │ │ │ ├── cursor-text.svg │ │ │ │ ├── cursor.svg │ │ │ │ ├── dash-circle-dotted.svg │ │ │ │ ├── dash-circle-fill.svg │ │ │ │ ├── dash-circle.svg │ │ │ │ ├── dash-lg.svg │ │ │ │ ├── dash-square-dotted.svg │ │ │ │ ├── dash-square-fill.svg │ │ │ │ ├── dash-square.svg │ │ │ │ ├── dash.svg │ │ │ │ ├── database-add.svg │ │ │ │ ├── database-check.svg │ │ │ │ ├── database-dash.svg │ │ │ │ ├── database-down.svg │ │ │ │ ├── database-exclamation.svg │ │ │ │ ├── database-fill-add.svg │ │ │ │ ├── database-fill-check.svg │ │ │ │ ├── database-fill-dash.svg │ │ │ │ ├── database-fill-down.svg │ │ │ │ ├── database-fill-exclamation.svg │ │ │ │ ├── database-fill-gear.svg │ │ │ │ ├── database-fill-lock.svg │ │ │ │ ├── database-fill-slash.svg │ │ │ │ ├── database-fill-up.svg │ │ │ │ ├── database-fill-x.svg │ │ │ │ ├── database-fill.svg │ │ │ │ ├── database-gear.svg │ │ │ │ ├── database-lock.svg │ │ │ │ ├── database-slash.svg │ │ │ │ ├── database-up.svg │ │ │ │ ├── database-x.svg │ │ │ │ ├── database.svg │ │ │ │ ├── device-hdd-fill.svg │ │ │ │ ├── device-hdd.svg │ │ │ │ ├── device-ssd-fill.svg │ │ │ │ ├── device-ssd.svg │ │ │ │ ├── diagram-2-fill.svg │ │ │ │ ├── diagram-2.svg │ │ │ │ ├── diagram-3-fill.svg │ │ │ │ ├── diagram-3.svg │ │ │ │ ├── diamond-fill.svg │ │ │ │ ├── diamond-half.svg │ │ │ │ ├── diamond.svg │ │ │ │ ├── dice-1-fill.svg │ │ │ │ ├── dice-1.svg │ │ │ │ ├── dice-2-fill.svg │ │ │ │ ├── dice-2.svg │ │ │ │ ├── dice-3-fill.svg │ │ │ │ ├── dice-3.svg │ │ │ │ ├── dice-4-fill.svg │ │ │ │ ├── dice-4.svg │ │ │ │ ├── dice-5-fill.svg │ │ │ │ ├── dice-5.svg │ │ │ │ ├── dice-6-fill.svg │ │ │ │ ├── dice-6.svg │ │ │ │ ├── disc-fill.svg │ │ │ │ ├── disc.svg │ │ │ │ ├── discord.svg │ │ │ │ ├── display-fill.svg │ │ │ │ ├── display.svg │ │ │ │ ├── displayport-fill.svg │ │ │ │ ├── displayport.svg │ │ │ │ ├── distribute-horizontal.svg │ │ │ │ ├── distribute-vertical.svg │ │ │ │ ├── door-closed-fill.svg │ │ │ │ ├── door-closed.svg │ │ │ │ ├── door-open-fill.svg │ │ │ │ ├── door-open.svg │ │ │ │ ├── dot.svg │ │ │ │ ├── download.svg │ │ │ │ ├── dpad-fill.svg │ │ │ │ ├── dpad.svg │ │ │ │ ├── dribbble.svg │ │ │ │ ├── dropbox.svg │ │ │ │ ├── droplet-fill.svg │ │ │ │ ├── droplet-half.svg │ │ │ │ ├── droplet.svg │ │ │ │ ├── duffle-fill.svg │ │ │ │ ├── duffle.svg │ │ │ │ ├── ear-fill.svg │ │ │ │ ├── ear.svg │ │ │ │ ├── earbuds.svg │ │ │ │ ├── easel-fill.svg │ │ │ │ ├── easel.svg │ │ │ │ ├── easel2-fill.svg │ │ │ │ ├── easel2.svg │ │ │ │ ├── easel3-fill.svg │ │ │ │ ├── easel3.svg │ │ │ │ ├── egg-fill.svg │ │ │ │ ├── egg-fried.svg │ │ │ │ ├── egg.svg │ │ │ │ ├── eject-fill.svg │ │ │ │ ├── eject.svg │ │ │ │ ├── emoji-angry-fill.svg │ │ │ │ ├── emoji-angry.svg │ │ │ │ ├── emoji-astonished-fill.svg │ │ │ │ ├── emoji-astonished.svg │ │ │ │ ├── emoji-dizzy-fill.svg │ │ │ │ ├── emoji-dizzy.svg │ │ │ │ ├── emoji-expressionless-fill.svg │ │ │ │ ├── emoji-expressionless.svg │ │ │ │ ├── emoji-frown-fill.svg │ │ │ │ ├── emoji-frown.svg │ │ │ │ ├── emoji-grimace-fill.svg │ │ │ │ ├── emoji-grimace.svg │ │ │ │ ├── emoji-grin-fill.svg │ │ │ │ ├── emoji-grin.svg │ │ │ │ ├── emoji-heart-eyes-fill.svg │ │ │ │ ├── emoji-heart-eyes.svg │ │ │ │ ├── emoji-kiss-fill.svg │ │ │ │ ├── emoji-kiss.svg │ │ │ │ ├── emoji-laughing-fill.svg │ │ │ │ ├── emoji-laughing.svg │ │ │ │ ├── emoji-neutral-fill.svg │ │ │ │ ├── emoji-neutral.svg │ │ │ │ ├── emoji-smile-fill.svg │ │ │ │ ├── emoji-smile-upside-down-fill.svg │ │ │ │ ├── emoji-smile-upside-down.svg │ │ │ │ ├── emoji-smile.svg │ │ │ │ ├── emoji-sunglasses-fill.svg │ │ │ │ ├── emoji-sunglasses.svg │ │ │ │ ├── emoji-surprise-fill.svg │ │ │ │ ├── emoji-surprise.svg │ │ │ │ ├── emoji-tear-fill.svg │ │ │ │ ├── emoji-tear.svg │ │ │ │ ├── emoji-wink-fill.svg │ │ │ │ ├── emoji-wink.svg │ │ │ │ ├── envelope-arrow-down-fill.svg │ │ │ │ ├── envelope-arrow-down.svg │ │ │ │ ├── envelope-arrow-up-fill.svg │ │ │ │ ├── envelope-arrow-up.svg │ │ │ │ ├── envelope-at-fill.svg │ │ │ │ ├── envelope-at.svg │ │ │ │ ├── envelope-check-fill.svg │ │ │ │ ├── envelope-check.svg │ │ │ │ ├── envelope-dash-fill.svg │ │ │ │ ├── envelope-dash.svg │ │ │ │ ├── envelope-exclamation-fill.svg │ │ │ │ ├── envelope-exclamation.svg │ │ │ │ ├── envelope-fill.svg │ │ │ │ ├── envelope-heart-fill.svg │ │ │ │ ├── envelope-heart.svg │ │ │ │ ├── envelope-open-fill.svg │ │ │ │ ├── envelope-open-heart-fill.svg │ │ │ │ ├── envelope-open-heart.svg │ │ │ │ ├── envelope-open.svg │ │ │ │ ├── envelope-paper-fill.svg │ │ │ │ ├── envelope-paper-heart-fill.svg │ │ │ │ ├── envelope-paper-heart.svg │ │ │ │ ├── envelope-paper.svg │ │ │ │ ├── envelope-plus-fill.svg │ │ │ │ ├── envelope-plus.svg │ │ │ │ ├── envelope-slash-fill.svg │ │ │ │ ├── envelope-slash.svg │ │ │ │ ├── envelope-x-fill.svg │ │ │ │ ├── envelope-x.svg │ │ │ │ ├── envelope.svg │ │ │ │ ├── eraser-fill.svg │ │ │ │ ├── eraser.svg │ │ │ │ ├── escape.svg │ │ │ │ ├── ethernet.svg │ │ │ │ ├── ev-front-fill.svg │ │ │ │ ├── ev-front.svg │ │ │ │ ├── ev-station-fill.svg │ │ │ │ ├── ev-station.svg │ │ │ │ ├── exclamation-circle-fill.svg │ │ │ │ ├── exclamation-circle.svg │ │ │ │ ├── exclamation-diamond-fill.svg │ │ │ │ ├── exclamation-diamond.svg │ │ │ │ ├── exclamation-lg.svg │ │ │ │ ├── exclamation-octagon-fill.svg │ │ │ │ ├── exclamation-octagon.svg │ │ │ │ ├── exclamation-square-fill.svg │ │ │ │ ├── exclamation-square.svg │ │ │ │ ├── exclamation-triangle-fill.svg │ │ │ │ ├── exclamation-triangle.svg │ │ │ │ ├── exclamation.svg │ │ │ │ ├── exclude.svg │ │ │ │ ├── explicit-fill.svg │ │ │ │ ├── explicit.svg │ │ │ │ ├── exposure.svg │ │ │ │ ├── eye-fill.svg │ │ │ │ ├── eye-slash-fill.svg │ │ │ │ ├── eye-slash.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── eyedropper.svg │ │ │ │ ├── eyeglasses.svg │ │ │ │ ├── facebook.svg │ │ │ │ ├── fan.svg │ │ │ │ ├── fast-forward-btn-fill.svg │ │ │ │ ├── fast-forward-btn.svg │ │ │ │ ├── fast-forward-circle-fill.svg │ │ │ │ ├── fast-forward-circle.svg │ │ │ │ ├── fast-forward-fill.svg │ │ │ │ ├── fast-forward.svg │ │ │ │ ├── feather.svg │ │ │ │ ├── feather2.svg │ │ │ │ ├── file-arrow-down-fill.svg │ │ │ │ ├── file-arrow-down.svg │ │ │ │ ├── file-arrow-up-fill.svg │ │ │ │ ├── file-arrow-up.svg │ │ │ │ ├── file-bar-graph-fill.svg │ │ │ │ ├── file-bar-graph.svg │ │ │ │ ├── file-binary-fill.svg │ │ │ │ ├── file-binary.svg │ │ │ │ ├── file-break-fill.svg │ │ │ │ ├── file-break.svg │ │ │ │ ├── file-check-fill.svg │ │ │ │ ├── file-check.svg │ │ │ │ ├── file-code-fill.svg │ │ │ │ ├── file-code.svg │ │ │ │ ├── file-diff-fill.svg │ │ │ │ ├── file-diff.svg │ │ │ │ ├── file-earmark-arrow-down-fill.svg │ │ │ │ ├── file-earmark-arrow-down.svg │ │ │ │ ├── file-earmark-arrow-up-fill.svg │ │ │ │ ├── file-earmark-arrow-up.svg │ │ │ │ ├── file-earmark-bar-graph-fill.svg │ │ │ │ ├── file-earmark-bar-graph.svg │ │ │ │ ├── file-earmark-binary-fill.svg │ │ │ │ ├── file-earmark-binary.svg │ │ │ │ ├── file-earmark-break-fill.svg │ │ │ │ ├── file-earmark-break.svg │ │ │ │ ├── file-earmark-check-fill.svg │ │ │ │ ├── file-earmark-check.svg │ │ │ │ ├── file-earmark-code-fill.svg │ │ │ │ ├── file-earmark-code.svg │ │ │ │ ├── file-earmark-diff-fill.svg │ │ │ │ ├── file-earmark-diff.svg │ │ │ │ ├── file-earmark-easel-fill.svg │ │ │ │ ├── file-earmark-easel.svg │ │ │ │ ├── file-earmark-excel-fill.svg │ │ │ │ ├── file-earmark-excel.svg │ │ │ │ ├── file-earmark-fill.svg │ │ │ │ ├── file-earmark-font-fill.svg │ │ │ │ ├── file-earmark-font.svg │ │ │ │ ├── file-earmark-image-fill.svg │ │ │ │ ├── file-earmark-image.svg │ │ │ │ ├── file-earmark-lock-fill.svg │ │ │ │ ├── file-earmark-lock.svg │ │ │ │ ├── file-earmark-lock2-fill.svg │ │ │ │ ├── file-earmark-lock2.svg │ │ │ │ ├── file-earmark-medical-fill.svg │ │ │ │ ├── file-earmark-medical.svg │ │ │ │ ├── file-earmark-minus-fill.svg │ │ │ │ ├── file-earmark-minus.svg │ │ │ │ ├── file-earmark-music-fill.svg │ │ │ │ ├── file-earmark-music.svg │ │ │ │ ├── file-earmark-pdf-fill.svg │ │ │ │ ├── file-earmark-pdf.svg │ │ │ │ ├── file-earmark-person-fill.svg │ │ │ │ ├── file-earmark-person.svg │ │ │ │ ├── file-earmark-play-fill.svg │ │ │ │ ├── file-earmark-play.svg │ │ │ │ ├── file-earmark-plus-fill.svg │ │ │ │ ├── file-earmark-plus.svg │ │ │ │ ├── file-earmark-post-fill.svg │ │ │ │ ├── file-earmark-post.svg │ │ │ │ ├── file-earmark-ppt-fill.svg │ │ │ │ ├── file-earmark-ppt.svg │ │ │ │ ├── file-earmark-richtext-fill.svg │ │ │ │ ├── file-earmark-richtext.svg │ │ │ │ ├── file-earmark-ruled-fill.svg │ │ │ │ ├── file-earmark-ruled.svg │ │ │ │ ├── file-earmark-slides-fill.svg │ │ │ │ ├── file-earmark-slides.svg │ │ │ │ ├── file-earmark-spreadsheet-fill.svg │ │ │ │ ├── file-earmark-spreadsheet.svg │ │ │ │ ├── file-earmark-text-fill.svg │ │ │ │ ├── file-earmark-text.svg │ │ │ │ ├── file-earmark-word-fill.svg │ │ │ │ ├── file-earmark-word.svg │ │ │ │ ├── file-earmark-x-fill.svg │ │ │ │ ├── file-earmark-x.svg │ │ │ │ ├── file-earmark-zip-fill.svg │ │ │ │ ├── file-earmark-zip.svg │ │ │ │ ├── file-earmark.svg │ │ │ │ ├── file-easel-fill.svg │ │ │ │ ├── file-easel.svg │ │ │ │ ├── file-excel-fill.svg │ │ │ │ ├── file-excel.svg │ │ │ │ ├── file-fill.svg │ │ │ │ ├── file-font-fill.svg │ │ │ │ ├── file-font.svg │ │ │ │ ├── file-image-fill.svg │ │ │ │ ├── file-image.svg │ │ │ │ ├── file-lock-fill.svg │ │ │ │ ├── file-lock.svg │ │ │ │ ├── file-lock2-fill.svg │ │ │ │ ├── file-lock2.svg │ │ │ │ ├── file-medical-fill.svg │ │ │ │ ├── file-medical.svg │ │ │ │ ├── file-minus-fill.svg │ │ │ │ ├── file-minus.svg │ │ │ │ ├── file-music-fill.svg │ │ │ │ ├── file-music.svg │ │ │ │ ├── file-pdf-fill.svg │ │ │ │ ├── file-pdf.svg │ │ │ │ ├── file-person-fill.svg │ │ │ │ ├── file-person.svg │ │ │ │ ├── file-play-fill.svg │ │ │ │ ├── file-play.svg │ │ │ │ ├── file-plus-fill.svg │ │ │ │ ├── file-plus.svg │ │ │ │ ├── file-post-fill.svg │ │ │ │ ├── file-post.svg │ │ │ │ ├── file-ppt-fill.svg │ │ │ │ ├── file-ppt.svg │ │ │ │ ├── file-richtext-fill.svg │ │ │ │ ├── file-richtext.svg │ │ │ │ ├── file-ruled-fill.svg │ │ │ │ ├── file-ruled.svg │ │ │ │ ├── file-slides-fill.svg │ │ │ │ ├── file-slides.svg │ │ │ │ ├── file-spreadsheet-fill.svg │ │ │ │ ├── file-spreadsheet.svg │ │ │ │ ├── file-text-fill.svg │ │ │ │ ├── file-text.svg │ │ │ │ ├── file-word-fill.svg │ │ │ │ ├── file-word.svg │ │ │ │ ├── file-x-fill.svg │ │ │ │ ├── file-x.svg │ │ │ │ ├── file-zip-fill.svg │ │ │ │ ├── file-zip.svg │ │ │ │ ├── file.svg │ │ │ │ ├── files-alt.svg │ │ │ │ ├── files.svg │ │ │ │ ├── filetype-aac.svg │ │ │ │ ├── filetype-ai.svg │ │ │ │ ├── filetype-bmp.svg │ │ │ │ ├── filetype-cs.svg │ │ │ │ ├── filetype-css.svg │ │ │ │ ├── filetype-csv.svg │ │ │ │ ├── filetype-doc.svg │ │ │ │ ├── filetype-docx.svg │ │ │ │ ├── filetype-exe.svg │ │ │ │ ├── filetype-gif.svg │ │ │ │ ├── filetype-heic.svg │ │ │ │ ├── filetype-html.svg │ │ │ │ ├── filetype-java.svg │ │ │ │ ├── filetype-jpg.svg │ │ │ │ ├── filetype-js.svg │ │ │ │ ├── filetype-json.svg │ │ │ │ ├── filetype-jsx.svg │ │ │ │ ├── filetype-key.svg │ │ │ │ ├── filetype-m4p.svg │ │ │ │ ├── filetype-md.svg │ │ │ │ ├── filetype-mdx.svg │ │ │ │ ├── filetype-mov.svg │ │ │ │ ├── filetype-mp3.svg │ │ │ │ ├── filetype-mp4.svg │ │ │ │ ├── filetype-otf.svg │ │ │ │ ├── filetype-pdf.svg │ │ │ │ ├── filetype-php.svg │ │ │ │ ├── filetype-png.svg │ │ │ │ ├── filetype-ppt.svg │ │ │ │ ├── filetype-pptx.svg │ │ │ │ ├── filetype-psd.svg │ │ │ │ ├── filetype-py.svg │ │ │ │ ├── filetype-raw.svg │ │ │ │ ├── filetype-rb.svg │ │ │ │ ├── filetype-sass.svg │ │ │ │ ├── filetype-scss.svg │ │ │ │ ├── filetype-sh.svg │ │ │ │ ├── filetype-sql.svg │ │ │ │ ├── filetype-svg.svg │ │ │ │ ├── filetype-tiff.svg │ │ │ │ ├── filetype-tsx.svg │ │ │ │ ├── filetype-ttf.svg │ │ │ │ ├── filetype-txt.svg │ │ │ │ ├── filetype-wav.svg │ │ │ │ ├── filetype-woff.svg │ │ │ │ ├── filetype-xls.svg │ │ │ │ ├── filetype-xlsx.svg │ │ │ │ ├── filetype-xml.svg │ │ │ │ ├── filetype-yml.svg │ │ │ │ ├── film.svg │ │ │ │ ├── filter-circle-fill.svg │ │ │ │ ├── filter-circle.svg │ │ │ │ ├── filter-left.svg │ │ │ │ ├── filter-right.svg │ │ │ │ ├── filter-square-fill.svg │ │ │ │ ├── filter-square.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── fingerprint.svg │ │ │ │ ├── fire.svg │ │ │ │ ├── flag-fill.svg │ │ │ │ ├── flag.svg │ │ │ │ ├── floppy-fill.svg │ │ │ │ ├── floppy.svg │ │ │ │ ├── floppy2-fill.svg │ │ │ │ ├── floppy2.svg │ │ │ │ ├── flower1.svg │ │ │ │ ├── flower2.svg │ │ │ │ ├── flower3.svg │ │ │ │ ├── folder-check.svg │ │ │ │ ├── folder-fill.svg │ │ │ │ ├── folder-minus.svg │ │ │ │ ├── folder-plus.svg │ │ │ │ ├── folder-symlink-fill.svg │ │ │ │ ├── folder-symlink.svg │ │ │ │ ├── folder-x.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── folder2-open.svg │ │ │ │ ├── folder2.svg │ │ │ │ ├── font │ │ │ │ ├── bootstrap-icons.css │ │ │ │ ├── bootstrap-icons.json │ │ │ │ ├── bootstrap-icons.min.css │ │ │ │ ├── bootstrap-icons.scss │ │ │ │ └── fonts │ │ │ │ │ ├── bootstrap-icons.woff │ │ │ │ │ └── bootstrap-icons.woff2 │ │ │ │ ├── fonts.svg │ │ │ │ ├── forward-fill.svg │ │ │ │ ├── forward.svg │ │ │ │ ├── front.svg │ │ │ │ ├── fuel-pump-diesel-fill.svg │ │ │ │ ├── fuel-pump-diesel.svg │ │ │ │ ├── fuel-pump-fill.svg │ │ │ │ ├── fuel-pump.svg │ │ │ │ ├── fullscreen-exit.svg │ │ │ │ ├── fullscreen.svg │ │ │ │ ├── funnel-fill.svg │ │ │ │ ├── funnel.svg │ │ │ │ ├── gear-fill.svg │ │ │ │ ├── gear-wide-connected.svg │ │ │ │ ├── gear-wide.svg │ │ │ │ ├── gear.svg │ │ │ │ ├── gem.svg │ │ │ │ ├── gender-ambiguous.svg │ │ │ │ ├── gender-female.svg │ │ │ │ ├── gender-male.svg │ │ │ │ ├── gender-neuter.svg │ │ │ │ ├── gender-trans.svg │ │ │ │ ├── geo-alt-fill.svg │ │ │ │ ├── geo-alt.svg │ │ │ │ ├── geo-fill.svg │ │ │ │ ├── geo.svg │ │ │ │ ├── gift-fill.svg │ │ │ │ ├── gift.svg │ │ │ │ ├── git.svg │ │ │ │ ├── github.svg │ │ │ │ ├── gitlab.svg │ │ │ │ ├── globe-americas.svg │ │ │ │ ├── globe-asia-australia.svg │ │ │ │ ├── globe-central-south-asia.svg │ │ │ │ ├── globe-europe-africa.svg │ │ │ │ ├── globe.svg │ │ │ │ ├── globe2.svg │ │ │ │ ├── google-play.svg │ │ │ │ ├── google.svg │ │ │ │ ├── gpu-card.svg │ │ │ │ ├── graph-down-arrow.svg │ │ │ │ ├── graph-down.svg │ │ │ │ ├── graph-up-arrow.svg │ │ │ │ ├── graph-up.svg │ │ │ │ ├── grid-1x2-fill.svg │ │ │ │ ├── grid-1x2.svg │ │ │ │ ├── grid-3x2-gap-fill.svg │ │ │ │ ├── grid-3x2-gap.svg │ │ │ │ ├── grid-3x2.svg │ │ │ │ ├── grid-3x3-gap-fill.svg │ │ │ │ ├── grid-3x3-gap.svg │ │ │ │ ├── grid-3x3.svg │ │ │ │ ├── grid-fill.svg │ │ │ │ ├── grid.svg │ │ │ │ ├── grip-horizontal.svg │ │ │ │ ├── grip-vertical.svg │ │ │ │ ├── h-circle-fill.svg │ │ │ │ ├── h-circle.svg │ │ │ │ ├── h-square-fill.svg │ │ │ │ ├── h-square.svg │ │ │ │ ├── hammer.svg │ │ │ │ ├── hand-index-fill.svg │ │ │ │ ├── hand-index-thumb-fill.svg │ │ │ │ ├── hand-index-thumb.svg │ │ │ │ ├── hand-index.svg │ │ │ │ ├── hand-thumbs-down-fill.svg │ │ │ │ ├── hand-thumbs-down.svg │ │ │ │ ├── hand-thumbs-up-fill.svg │ │ │ │ ├── hand-thumbs-up.svg │ │ │ │ ├── handbag-fill.svg │ │ │ │ ├── handbag.svg │ │ │ │ ├── hash.svg │ │ │ │ ├── hdd-fill.svg │ │ │ │ ├── hdd-network-fill.svg │ │ │ │ ├── hdd-network.svg │ │ │ │ ├── hdd-rack-fill.svg │ │ │ │ ├── hdd-rack.svg │ │ │ │ ├── hdd-stack-fill.svg │ │ │ │ ├── hdd-stack.svg │ │ │ │ ├── hdd.svg │ │ │ │ ├── hdmi-fill.svg │ │ │ │ ├── hdmi.svg │ │ │ │ ├── headphones.svg │ │ │ │ ├── headset-vr.svg │ │ │ │ ├── headset.svg │ │ │ │ ├── heart-arrow.svg │ │ │ │ ├── heart-fill.svg │ │ │ │ ├── heart-half.svg │ │ │ │ ├── heart-pulse-fill.svg │ │ │ │ ├── heart-pulse.svg │ │ │ │ ├── heart.svg │ │ │ │ ├── heartbreak-fill.svg │ │ │ │ ├── heartbreak.svg │ │ │ │ ├── hearts.svg │ │ │ │ ├── heptagon-fill.svg │ │ │ │ ├── heptagon-half.svg │ │ │ │ ├── heptagon.svg │ │ │ │ ├── hexagon-fill.svg │ │ │ │ ├── hexagon-half.svg │ │ │ │ ├── hexagon.svg │ │ │ │ ├── highlighter.svg │ │ │ │ ├── highlights.svg │ │ │ │ ├── hospital-fill.svg │ │ │ │ ├── hospital.svg │ │ │ │ ├── hourglass-bottom.svg │ │ │ │ ├── hourglass-split.svg │ │ │ │ ├── hourglass-top.svg │ │ │ │ ├── hourglass.svg │ │ │ │ ├── house-add-fill.svg │ │ │ │ ├── house-add.svg │ │ │ │ ├── house-check-fill.svg │ │ │ │ ├── house-check.svg │ │ │ │ ├── house-dash-fill.svg │ │ │ │ ├── house-dash.svg │ │ │ │ ├── house-door-fill.svg │ │ │ │ ├── house-door.svg │ │ │ │ ├── house-down-fill.svg │ │ │ │ ├── house-down.svg │ │ │ │ ├── house-exclamation-fill.svg │ │ │ │ ├── house-exclamation.svg │ │ │ │ ├── house-fill.svg │ │ │ │ ├── house-gear-fill.svg │ │ │ │ ├── house-gear.svg │ │ │ │ ├── house-heart-fill.svg │ │ │ │ ├── house-heart.svg │ │ │ │ ├── house-lock-fill.svg │ │ │ │ ├── house-lock.svg │ │ │ │ ├── house-slash-fill.svg │ │ │ │ ├── house-slash.svg │ │ │ │ ├── house-up-fill.svg │ │ │ │ ├── house-up.svg │ │ │ │ ├── house-x-fill.svg │ │ │ │ ├── house-x.svg │ │ │ │ ├── house.svg │ │ │ │ ├── houses-fill.svg │ │ │ │ ├── houses.svg │ │ │ │ ├── hr.svg │ │ │ │ ├── hurricane.svg │ │ │ │ ├── hypnotize.svg │ │ │ │ ├── image-alt.svg │ │ │ │ ├── image-fill.svg │ │ │ │ ├── image.svg │ │ │ │ ├── images.svg │ │ │ │ ├── inbox-fill.svg │ │ │ │ ├── inbox.svg │ │ │ │ ├── inboxes-fill.svg │ │ │ │ ├── inboxes.svg │ │ │ │ ├── incognito.svg │ │ │ │ ├── indent.svg │ │ │ │ ├── infinity.svg │ │ │ │ ├── info-circle-fill.svg │ │ │ │ ├── info-circle.svg │ │ │ │ ├── info-lg.svg │ │ │ │ ├── info-square-fill.svg │ │ │ │ ├── info-square.svg │ │ │ │ ├── info.svg │ │ │ │ ├── input-cursor-text.svg │ │ │ │ ├── input-cursor.svg │ │ │ │ ├── instagram.svg │ │ │ │ ├── intersect.svg │ │ │ │ ├── journal-album.svg │ │ │ │ ├── journal-arrow-down.svg │ │ │ │ ├── journal-arrow-up.svg │ │ │ │ ├── journal-bookmark-fill.svg │ │ │ │ ├── journal-bookmark.svg │ │ │ │ ├── journal-check.svg │ │ │ │ ├── journal-code.svg │ │ │ │ ├── journal-medical.svg │ │ │ │ ├── journal-minus.svg │ │ │ │ ├── journal-plus.svg │ │ │ │ ├── journal-richtext.svg │ │ │ │ ├── journal-text.svg │ │ │ │ ├── journal-x.svg │ │ │ │ ├── journal.svg │ │ │ │ ├── journals.svg │ │ │ │ ├── joystick.svg │ │ │ │ ├── justify-left.svg │ │ │ │ ├── justify-right.svg │ │ │ │ ├── justify.svg │ │ │ │ ├── kanban-fill.svg │ │ │ │ ├── kanban.svg │ │ │ │ ├── key-fill.svg │ │ │ │ ├── key.svg │ │ │ │ ├── keyboard-fill.svg │ │ │ │ ├── keyboard.svg │ │ │ │ ├── ladder.svg │ │ │ │ ├── lamp-fill.svg │ │ │ │ ├── lamp.svg │ │ │ │ ├── laptop-fill.svg │ │ │ │ ├── laptop.svg │ │ │ │ ├── layer-backward.svg │ │ │ │ ├── layer-forward.svg │ │ │ │ ├── layers-fill.svg │ │ │ │ ├── layers-half.svg │ │ │ │ ├── layers.svg │ │ │ │ ├── layout-sidebar-inset-reverse.svg │ │ │ │ ├── layout-sidebar-inset.svg │ │ │ │ ├── layout-sidebar-reverse.svg │ │ │ │ ├── layout-sidebar.svg │ │ │ │ ├── layout-split.svg │ │ │ │ ├── layout-text-sidebar-reverse.svg │ │ │ │ ├── layout-text-sidebar.svg │ │ │ │ ├── layout-text-window-reverse.svg │ │ │ │ ├── layout-text-window.svg │ │ │ │ ├── layout-three-columns.svg │ │ │ │ ├── layout-wtf.svg │ │ │ │ ├── life-preserver.svg │ │ │ │ ├── lightbulb-fill.svg │ │ │ │ ├── lightbulb-off-fill.svg │ │ │ │ ├── lightbulb-off.svg │ │ │ │ ├── lightbulb.svg │ │ │ │ ├── lightning-charge-fill.svg │ │ │ │ ├── lightning-charge.svg │ │ │ │ ├── lightning-fill.svg │ │ │ │ ├── lightning.svg │ │ │ │ ├── line.svg │ │ │ │ ├── link-45deg.svg │ │ │ │ ├── link.svg │ │ │ │ ├── linkedin.svg │ │ │ │ ├── list-check.svg │ │ │ │ ├── list-columns-reverse.svg │ │ │ │ ├── list-columns.svg │ │ │ │ ├── list-nested.svg │ │ │ │ ├── list-ol.svg │ │ │ │ ├── list-stars.svg │ │ │ │ ├── list-task.svg │ │ │ │ ├── list-ul.svg │ │ │ │ ├── list.svg │ │ │ │ ├── lock-fill.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── luggage-fill.svg │ │ │ │ ├── luggage.svg │ │ │ │ ├── lungs-fill.svg │ │ │ │ ├── lungs.svg │ │ │ │ ├── magic.svg │ │ │ │ ├── magnet-fill.svg │ │ │ │ ├── magnet.svg │ │ │ │ ├── mailbox-flag.svg │ │ │ │ ├── mailbox.svg │ │ │ │ ├── mailbox2-flag.svg │ │ │ │ ├── mailbox2.svg │ │ │ │ ├── map-fill.svg │ │ │ │ ├── map.svg │ │ │ │ ├── markdown-fill.svg │ │ │ │ ├── markdown.svg │ │ │ │ ├── marker-tip.svg │ │ │ │ ├── mask.svg │ │ │ │ ├── mastodon.svg │ │ │ │ ├── medium.svg │ │ │ │ ├── megaphone-fill.svg │ │ │ │ ├── megaphone.svg │ │ │ │ ├── memory.svg │ │ │ │ ├── menu-app-fill.svg │ │ │ │ ├── menu-app.svg │ │ │ │ ├── menu-button-fill.svg │ │ │ │ ├── menu-button-wide-fill.svg │ │ │ │ ├── menu-button-wide.svg │ │ │ │ ├── menu-button.svg │ │ │ │ ├── menu-down.svg │ │ │ │ ├── menu-up.svg │ │ │ │ ├── messenger.svg │ │ │ │ ├── meta.svg │ │ │ │ ├── mic-fill.svg │ │ │ │ ├── mic-mute-fill.svg │ │ │ │ ├── mic-mute.svg │ │ │ │ ├── mic.svg │ │ │ │ ├── microsoft-teams.svg │ │ │ │ ├── microsoft.svg │ │ │ │ ├── minecart-loaded.svg │ │ │ │ ├── minecart.svg │ │ │ │ ├── modem-fill.svg │ │ │ │ ├── modem.svg │ │ │ │ ├── moisture.svg │ │ │ │ ├── moon-fill.svg │ │ │ │ ├── moon-stars-fill.svg │ │ │ │ ├── moon-stars.svg │ │ │ │ ├── moon.svg │ │ │ │ ├── mortarboard-fill.svg │ │ │ │ ├── mortarboard.svg │ │ │ │ ├── motherboard-fill.svg │ │ │ │ ├── motherboard.svg │ │ │ │ ├── mouse-fill.svg │ │ │ │ ├── mouse.svg │ │ │ │ ├── mouse2-fill.svg │ │ │ │ ├── mouse2.svg │ │ │ │ ├── mouse3-fill.svg │ │ │ │ ├── mouse3.svg │ │ │ │ ├── music-note-beamed.svg │ │ │ │ ├── music-note-list.svg │ │ │ │ ├── music-note.svg │ │ │ │ ├── music-player-fill.svg │ │ │ │ ├── music-player.svg │ │ │ │ ├── newspaper.svg │ │ │ │ ├── nintendo-switch.svg │ │ │ │ ├── node-minus-fill.svg │ │ │ │ ├── node-minus.svg │ │ │ │ ├── node-plus-fill.svg │ │ │ │ ├── node-plus.svg │ │ │ │ ├── noise-reduction.svg │ │ │ │ ├── nut-fill.svg │ │ │ │ ├── nut.svg │ │ │ │ ├── nvidia.svg │ │ │ │ ├── nvme-fill.svg │ │ │ │ ├── nvme.svg │ │ │ │ ├── octagon-fill.svg │ │ │ │ ├── octagon-half.svg │ │ │ │ ├── octagon.svg │ │ │ │ ├── opencollective.svg │ │ │ │ ├── optical-audio-fill.svg │ │ │ │ ├── optical-audio.svg │ │ │ │ ├── option.svg │ │ │ │ ├── outlet.svg │ │ │ │ ├── p-circle-fill.svg │ │ │ │ ├── p-circle.svg │ │ │ │ ├── p-square-fill.svg │ │ │ │ ├── p-square.svg │ │ │ │ ├── paint-bucket.svg │ │ │ │ ├── palette-fill.svg │ │ │ │ ├── palette.svg │ │ │ │ ├── palette2.svg │ │ │ │ ├── paperclip.svg │ │ │ │ ├── paragraph.svg │ │ │ │ ├── pass-fill.svg │ │ │ │ ├── pass.svg │ │ │ │ ├── passport-fill.svg │ │ │ │ ├── passport.svg │ │ │ │ ├── patch-check-fill.svg │ │ │ │ ├── patch-check.svg │ │ │ │ ├── patch-exclamation-fill.svg │ │ │ │ ├── patch-exclamation.svg │ │ │ │ ├── patch-minus-fill.svg │ │ │ │ ├── patch-minus.svg │ │ │ │ ├── patch-plus-fill.svg │ │ │ │ ├── patch-plus.svg │ │ │ │ ├── patch-question-fill.svg │ │ │ │ ├── patch-question.svg │ │ │ │ ├── pause-btn-fill.svg │ │ │ │ ├── pause-btn.svg │ │ │ │ ├── pause-circle-fill.svg │ │ │ │ ├── pause-circle.svg │ │ │ │ ├── pause-fill.svg │ │ │ │ ├── pause.svg │ │ │ │ ├── paypal.svg │ │ │ │ ├── pc-display-horizontal.svg │ │ │ │ ├── pc-display.svg │ │ │ │ ├── pc-horizontal.svg │ │ │ │ ├── pc.svg │ │ │ │ ├── pci-card-network.svg │ │ │ │ ├── pci-card-sound.svg │ │ │ │ ├── pci-card.svg │ │ │ │ ├── peace-fill.svg │ │ │ │ ├── peace.svg │ │ │ │ ├── pen-fill.svg │ │ │ │ ├── pen.svg │ │ │ │ ├── pencil-fill.svg │ │ │ │ ├── pencil-square.svg │ │ │ │ ├── pencil.svg │ │ │ │ ├── pentagon-fill.svg │ │ │ │ ├── pentagon-half.svg │ │ │ │ ├── pentagon.svg │ │ │ │ ├── people-fill.svg │ │ │ │ ├── people.svg │ │ │ │ ├── percent.svg │ │ │ │ ├── person-add.svg │ │ │ │ ├── person-arms-up.svg │ │ │ │ ├── person-badge-fill.svg │ │ │ │ ├── person-badge.svg │ │ │ │ ├── person-bounding-box.svg │ │ │ │ ├── person-check-fill.svg │ │ │ │ ├── person-check.svg │ │ │ │ ├── person-circle.svg │ │ │ │ ├── person-dash-fill.svg │ │ │ │ ├── person-dash.svg │ │ │ │ ├── person-down.svg │ │ │ │ ├── person-exclamation.svg │ │ │ │ ├── person-fill-add.svg │ │ │ │ ├── person-fill-check.svg │ │ │ │ ├── person-fill-dash.svg │ │ │ │ ├── person-fill-down.svg │ │ │ │ ├── person-fill-exclamation.svg │ │ │ │ ├── person-fill-gear.svg │ │ │ │ ├── person-fill-lock.svg │ │ │ │ ├── person-fill-slash.svg │ │ │ │ ├── person-fill-up.svg │ │ │ │ ├── person-fill-x.svg │ │ │ │ ├── person-fill.svg │ │ │ │ ├── person-gear.svg │ │ │ │ ├── person-heart.svg │ │ │ │ ├── person-hearts.svg │ │ │ │ ├── person-lines-fill.svg │ │ │ │ ├── person-lock.svg │ │ │ │ ├── person-plus-fill.svg │ │ │ │ ├── person-plus.svg │ │ │ │ ├── person-raised-hand.svg │ │ │ │ ├── person-rolodex.svg │ │ │ │ ├── person-slash.svg │ │ │ │ ├── person-square.svg │ │ │ │ ├── person-standing-dress.svg │ │ │ │ ├── person-standing.svg │ │ │ │ ├── person-up.svg │ │ │ │ ├── person-vcard-fill.svg │ │ │ │ ├── person-vcard.svg │ │ │ │ ├── person-video.svg │ │ │ │ ├── person-video2.svg │ │ │ │ ├── person-video3.svg │ │ │ │ ├── person-walking.svg │ │ │ │ ├── person-wheelchair.svg │ │ │ │ ├── person-workspace.svg │ │ │ │ ├── person-x-fill.svg │ │ │ │ ├── person-x.svg │ │ │ │ ├── person.svg │ │ │ │ ├── phone-fill.svg │ │ │ │ ├── phone-flip.svg │ │ │ │ ├── phone-landscape-fill.svg │ │ │ │ ├── phone-landscape.svg │ │ │ │ ├── phone-vibrate-fill.svg │ │ │ │ ├── phone-vibrate.svg │ │ │ │ ├── phone.svg │ │ │ │ ├── pie-chart-fill.svg │ │ │ │ ├── pie-chart.svg │ │ │ │ ├── piggy-bank-fill.svg │ │ │ │ ├── piggy-bank.svg │ │ │ │ ├── pin-angle-fill.svg │ │ │ │ ├── pin-angle.svg │ │ │ │ ├── pin-fill.svg │ │ │ │ ├── pin-map-fill.svg │ │ │ │ ├── pin-map.svg │ │ │ │ ├── pin.svg │ │ │ │ ├── pinterest.svg │ │ │ │ ├── pip-fill.svg │ │ │ │ ├── pip.svg │ │ │ │ ├── play-btn-fill.svg │ │ │ │ ├── play-btn.svg │ │ │ │ ├── play-circle-fill.svg │ │ │ │ ├── play-circle.svg │ │ │ │ ├── play-fill.svg │ │ │ │ ├── play.svg │ │ │ │ ├── playstation.svg │ │ │ │ ├── plug-fill.svg │ │ │ │ ├── plug.svg │ │ │ │ ├── plugin.svg │ │ │ │ ├── plus-circle-dotted.svg │ │ │ │ ├── plus-circle-fill.svg │ │ │ │ ├── plus-circle.svg │ │ │ │ ├── plus-lg.svg │ │ │ │ ├── plus-slash-minus.svg │ │ │ │ ├── plus-square-dotted.svg │ │ │ │ ├── plus-square-fill.svg │ │ │ │ ├── plus-square.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── postage-fill.svg │ │ │ │ ├── postage-heart-fill.svg │ │ │ │ ├── postage-heart.svg │ │ │ │ ├── postage.svg │ │ │ │ ├── postcard-fill.svg │ │ │ │ ├── postcard-heart-fill.svg │ │ │ │ ├── postcard-heart.svg │ │ │ │ ├── postcard.svg │ │ │ │ ├── power.svg │ │ │ │ ├── prescription.svg │ │ │ │ ├── prescription2.svg │ │ │ │ ├── printer-fill.svg │ │ │ │ ├── printer.svg │ │ │ │ ├── projector-fill.svg │ │ │ │ ├── projector.svg │ │ │ │ ├── puzzle-fill.svg │ │ │ │ ├── puzzle.svg │ │ │ │ ├── qr-code-scan.svg │ │ │ │ ├── qr-code.svg │ │ │ │ ├── question-circle-fill.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── question-diamond-fill.svg │ │ │ │ ├── question-diamond.svg │ │ │ │ ├── question-lg.svg │ │ │ │ ├── question-octagon-fill.svg │ │ │ │ ├── question-octagon.svg │ │ │ │ ├── question-square-fill.svg │ │ │ │ ├── question-square.svg │ │ │ │ ├── question.svg │ │ │ │ ├── quora.svg │ │ │ │ ├── quote.svg │ │ │ │ ├── r-circle-fill.svg │ │ │ │ ├── r-circle.svg │ │ │ │ ├── r-square-fill.svg │ │ │ │ ├── r-square.svg │ │ │ │ ├── radar.svg │ │ │ │ ├── radioactive.svg │ │ │ │ ├── rainbow.svg │ │ │ │ ├── receipt-cutoff.svg │ │ │ │ ├── receipt.svg │ │ │ │ ├── reception-0.svg │ │ │ │ ├── reception-1.svg │ │ │ │ ├── reception-2.svg │ │ │ │ ├── reception-3.svg │ │ │ │ ├── reception-4.svg │ │ │ │ ├── record-btn-fill.svg │ │ │ │ ├── record-btn.svg │ │ │ │ ├── record-circle-fill.svg │ │ │ │ ├── record-circle.svg │ │ │ │ ├── record-fill.svg │ │ │ │ ├── record.svg │ │ │ │ ├── record2-fill.svg │ │ │ │ ├── record2.svg │ │ │ │ ├── recycle.svg │ │ │ │ ├── reddit.svg │ │ │ │ ├── regex.svg │ │ │ │ ├── repeat-1.svg │ │ │ │ ├── repeat.svg │ │ │ │ ├── reply-all-fill.svg │ │ │ │ ├── reply-all.svg │ │ │ │ ├── reply-fill.svg │ │ │ │ ├── reply.svg │ │ │ │ ├── rewind-btn-fill.svg │ │ │ │ ├── rewind-btn.svg │ │ │ │ ├── rewind-circle-fill.svg │ │ │ │ ├── rewind-circle.svg │ │ │ │ ├── rewind-fill.svg │ │ │ │ ├── rewind.svg │ │ │ │ ├── robot.svg │ │ │ │ ├── rocket-fill.svg │ │ │ │ ├── rocket-takeoff-fill.svg │ │ │ │ ├── rocket-takeoff.svg │ │ │ │ ├── rocket.svg │ │ │ │ ├── router-fill.svg │ │ │ │ ├── router.svg │ │ │ │ ├── rss-fill.svg │ │ │ │ ├── rss.svg │ │ │ │ ├── rulers.svg │ │ │ │ ├── safe-fill.svg │ │ │ │ ├── safe.svg │ │ │ │ ├── safe2-fill.svg │ │ │ │ ├── safe2.svg │ │ │ │ ├── save-fill.svg │ │ │ │ ├── save.svg │ │ │ │ ├── save2-fill.svg │ │ │ │ ├── save2.svg │ │ │ │ ├── scissors.svg │ │ │ │ ├── scooter.svg │ │ │ │ ├── screwdriver.svg │ │ │ │ ├── sd-card-fill.svg │ │ │ │ ├── sd-card.svg │ │ │ │ ├── search-heart-fill.svg │ │ │ │ ├── search-heart.svg │ │ │ │ ├── search.svg │ │ │ │ ├── segmented-nav.svg │ │ │ │ ├── send-arrow-down-fill.svg │ │ │ │ ├── send-arrow-down.svg │ │ │ │ ├── send-arrow-up-fill.svg │ │ │ │ ├── send-arrow-up.svg │ │ │ │ ├── send-check-fill.svg │ │ │ │ ├── send-check.svg │ │ │ │ ├── send-dash-fill.svg │ │ │ │ ├── send-dash.svg │ │ │ │ ├── send-exclamation-fill.svg │ │ │ │ ├── send-exclamation.svg │ │ │ │ ├── send-fill.svg │ │ │ │ ├── send-plus-fill.svg │ │ │ │ ├── send-plus.svg │ │ │ │ ├── send-slash-fill.svg │ │ │ │ ├── send-slash.svg │ │ │ │ ├── send-x-fill.svg │ │ │ │ ├── send-x.svg │ │ │ │ ├── send.svg │ │ │ │ ├── server.svg │ │ │ │ ├── shadows.svg │ │ │ │ ├── share-fill.svg │ │ │ │ ├── share.svg │ │ │ │ ├── shield-check.svg │ │ │ │ ├── shield-exclamation.svg │ │ │ │ ├── shield-fill-check.svg │ │ │ │ ├── shield-fill-exclamation.svg │ │ │ │ ├── shield-fill-minus.svg │ │ │ │ ├── shield-fill-plus.svg │ │ │ │ ├── shield-fill-x.svg │ │ │ │ ├── shield-fill.svg │ │ │ │ ├── shield-lock-fill.svg │ │ │ │ ├── shield-lock.svg │ │ │ │ ├── shield-minus.svg │ │ │ │ ├── shield-plus.svg │ │ │ │ ├── shield-shaded.svg │ │ │ │ ├── shield-slash-fill.svg │ │ │ │ ├── shield-slash.svg │ │ │ │ ├── shield-x.svg │ │ │ │ ├── shield.svg │ │ │ │ ├── shift-fill.svg │ │ │ │ ├── shift.svg │ │ │ │ ├── shop-window.svg │ │ │ │ ├── shop.svg │ │ │ │ ├── shuffle.svg │ │ │ │ ├── sign-dead-end-fill.svg │ │ │ │ ├── sign-dead-end.svg │ │ │ │ ├── sign-do-not-enter-fill.svg │ │ │ │ ├── sign-do-not-enter.svg │ │ │ │ ├── sign-intersection-fill.svg │ │ │ │ ├── sign-intersection-side-fill.svg │ │ │ │ ├── sign-intersection-side.svg │ │ │ │ ├── sign-intersection-t-fill.svg │ │ │ │ ├── sign-intersection-t.svg │ │ │ │ ├── sign-intersection-y-fill.svg │ │ │ │ ├── sign-intersection-y.svg │ │ │ │ ├── sign-intersection.svg │ │ │ │ ├── sign-merge-left-fill.svg │ │ │ │ ├── sign-merge-left.svg │ │ │ │ ├── sign-merge-right-fill.svg │ │ │ │ ├── sign-merge-right.svg │ │ │ │ ├── sign-no-left-turn-fill.svg │ │ │ │ ├── sign-no-left-turn.svg │ │ │ │ ├── sign-no-parking-fill.svg │ │ │ │ ├── sign-no-parking.svg │ │ │ │ ├── sign-no-right-turn-fill.svg │ │ │ │ ├── sign-no-right-turn.svg │ │ │ │ ├── sign-railroad-fill.svg │ │ │ │ ├── sign-railroad.svg │ │ │ │ ├── sign-stop-fill.svg │ │ │ │ ├── sign-stop-lights-fill.svg │ │ │ │ ├── sign-stop-lights.svg │ │ │ │ ├── sign-stop.svg │ │ │ │ ├── sign-turn-left-fill.svg │ │ │ │ ├── sign-turn-left.svg │ │ │ │ ├── sign-turn-right-fill.svg │ │ │ │ ├── sign-turn-right.svg │ │ │ │ ├── sign-turn-slight-left-fill.svg │ │ │ │ ├── sign-turn-slight-left.svg │ │ │ │ ├── sign-turn-slight-right-fill.svg │ │ │ │ ├── sign-turn-slight-right.svg │ │ │ │ ├── sign-yield-fill.svg │ │ │ │ ├── sign-yield.svg │ │ │ │ ├── signal.svg │ │ │ │ ├── signpost-2-fill.svg │ │ │ │ ├── signpost-2.svg │ │ │ │ ├── signpost-fill.svg │ │ │ │ ├── signpost-split-fill.svg │ │ │ │ ├── signpost-split.svg │ │ │ │ ├── signpost.svg │ │ │ │ ├── sim-fill.svg │ │ │ │ ├── sim-slash-fill.svg │ │ │ │ ├── sim-slash.svg │ │ │ │ ├── sim.svg │ │ │ │ ├── sina-weibo.svg │ │ │ │ ├── skip-backward-btn-fill.svg │ │ │ │ ├── skip-backward-btn.svg │ │ │ │ ├── skip-backward-circle-fill.svg │ │ │ │ ├── skip-backward-circle.svg │ │ │ │ ├── skip-backward-fill.svg │ │ │ │ ├── skip-backward.svg │ │ │ │ ├── skip-end-btn-fill.svg │ │ │ │ ├── skip-end-btn.svg │ │ │ │ ├── skip-end-circle-fill.svg │ │ │ │ ├── skip-end-circle.svg │ │ │ │ ├── skip-end-fill.svg │ │ │ │ ├── skip-end.svg │ │ │ │ ├── skip-forward-btn-fill.svg │ │ │ │ ├── skip-forward-btn.svg │ │ │ │ ├── skip-forward-circle-fill.svg │ │ │ │ ├── skip-forward-circle.svg │ │ │ │ ├── skip-forward-fill.svg │ │ │ │ ├── skip-forward.svg │ │ │ │ ├── skip-start-btn-fill.svg │ │ │ │ ├── skip-start-btn.svg │ │ │ │ ├── skip-start-circle-fill.svg │ │ │ │ ├── skip-start-circle.svg │ │ │ │ ├── skip-start-fill.svg │ │ │ │ ├── skip-start.svg │ │ │ │ ├── skype.svg │ │ │ │ ├── slack.svg │ │ │ │ ├── slash-circle-fill.svg │ │ │ │ ├── slash-circle.svg │ │ │ │ ├── slash-lg.svg │ │ │ │ ├── slash-square-fill.svg │ │ │ │ ├── slash-square.svg │ │ │ │ ├── slash.svg │ │ │ │ ├── sliders.svg │ │ │ │ ├── sliders2-vertical.svg │ │ │ │ ├── sliders2.svg │ │ │ │ ├── smartwatch.svg │ │ │ │ ├── snapchat.svg │ │ │ │ ├── snow.svg │ │ │ │ ├── snow2.svg │ │ │ │ ├── snow3.svg │ │ │ │ ├── sort-alpha-down-alt.svg │ │ │ │ ├── sort-alpha-down.svg │ │ │ │ ├── sort-alpha-up-alt.svg │ │ │ │ ├── sort-alpha-up.svg │ │ │ │ ├── sort-down-alt.svg │ │ │ │ ├── sort-down.svg │ │ │ │ ├── sort-numeric-down-alt.svg │ │ │ │ ├── sort-numeric-down.svg │ │ │ │ ├── sort-numeric-up-alt.svg │ │ │ │ ├── sort-numeric-up.svg │ │ │ │ ├── sort-up-alt.svg │ │ │ │ ├── sort-up.svg │ │ │ │ ├── soundwave.svg │ │ │ │ ├── sourceforge.svg │ │ │ │ ├── speaker-fill.svg │ │ │ │ ├── speaker.svg │ │ │ │ ├── speedometer.svg │ │ │ │ ├── speedometer2.svg │ │ │ │ ├── spellcheck.svg │ │ │ │ ├── spotify.svg │ │ │ │ ├── square-fill.svg │ │ │ │ ├── square-half.svg │ │ │ │ ├── square.svg │ │ │ │ ├── stack-overflow.svg │ │ │ │ ├── stack.svg │ │ │ │ ├── star-fill.svg │ │ │ │ ├── star-half.svg │ │ │ │ ├── star.svg │ │ │ │ ├── stars.svg │ │ │ │ ├── steam.svg │ │ │ │ ├── stickies-fill.svg │ │ │ │ ├── stickies.svg │ │ │ │ ├── sticky-fill.svg │ │ │ │ ├── sticky.svg │ │ │ │ ├── stop-btn-fill.svg │ │ │ │ ├── stop-btn.svg │ │ │ │ ├── stop-circle-fill.svg │ │ │ │ ├── stop-circle.svg │ │ │ │ ├── stop-fill.svg │ │ │ │ ├── stop.svg │ │ │ │ ├── stoplights-fill.svg │ │ │ │ ├── stoplights.svg │ │ │ │ ├── stopwatch-fill.svg │ │ │ │ ├── stopwatch.svg │ │ │ │ ├── strava.svg │ │ │ │ ├── stripe.svg │ │ │ │ ├── subscript.svg │ │ │ │ ├── substack.svg │ │ │ │ ├── subtract.svg │ │ │ │ ├── suit-club-fill.svg │ │ │ │ ├── suit-club.svg │ │ │ │ ├── suit-diamond-fill.svg │ │ │ │ ├── suit-diamond.svg │ │ │ │ ├── suit-heart-fill.svg │ │ │ │ ├── suit-heart.svg │ │ │ │ ├── suit-spade-fill.svg │ │ │ │ ├── suit-spade.svg │ │ │ │ ├── suitcase-fill.svg │ │ │ │ ├── suitcase-lg-fill.svg │ │ │ │ ├── suitcase-lg.svg │ │ │ │ ├── suitcase.svg │ │ │ │ ├── suitcase2-fill.svg │ │ │ │ ├── suitcase2.svg │ │ │ │ ├── sun-fill.svg │ │ │ │ ├── sun.svg │ │ │ │ ├── sunglasses.svg │ │ │ │ ├── sunrise-fill.svg │ │ │ │ ├── sunrise.svg │ │ │ │ ├── sunset-fill.svg │ │ │ │ ├── sunset.svg │ │ │ │ ├── superscript.svg │ │ │ │ ├── symmetry-horizontal.svg │ │ │ │ ├── symmetry-vertical.svg │ │ │ │ ├── table.svg │ │ │ │ ├── tablet-fill.svg │ │ │ │ ├── tablet-landscape-fill.svg │ │ │ │ ├── tablet-landscape.svg │ │ │ │ ├── tablet.svg │ │ │ │ ├── tag-fill.svg │ │ │ │ ├── tag.svg │ │ │ │ ├── tags-fill.svg │ │ │ │ ├── tags.svg │ │ │ │ ├── taxi-front-fill.svg │ │ │ │ ├── taxi-front.svg │ │ │ │ ├── telegram.svg │ │ │ │ ├── telephone-fill.svg │ │ │ │ ├── telephone-forward-fill.svg │ │ │ │ ├── telephone-forward.svg │ │ │ │ ├── telephone-inbound-fill.svg │ │ │ │ ├── telephone-inbound.svg │ │ │ │ ├── telephone-minus-fill.svg │ │ │ │ ├── telephone-minus.svg │ │ │ │ ├── telephone-outbound-fill.svg │ │ │ │ ├── telephone-outbound.svg │ │ │ │ ├── telephone-plus-fill.svg │ │ │ │ ├── telephone-plus.svg │ │ │ │ ├── telephone-x-fill.svg │ │ │ │ ├── telephone-x.svg │ │ │ │ ├── telephone.svg │ │ │ │ ├── tencent-qq.svg │ │ │ │ ├── terminal-dash.svg │ │ │ │ ├── terminal-fill.svg │ │ │ │ ├── terminal-plus.svg │ │ │ │ ├── terminal-split.svg │ │ │ │ ├── terminal-x.svg │ │ │ │ ├── terminal.svg │ │ │ │ ├── text-center.svg │ │ │ │ ├── text-indent-left.svg │ │ │ │ ├── text-indent-right.svg │ │ │ │ ├── text-left.svg │ │ │ │ ├── text-paragraph.svg │ │ │ │ ├── text-right.svg │ │ │ │ ├── text-wrap.svg │ │ │ │ ├── textarea-resize.svg │ │ │ │ ├── textarea-t.svg │ │ │ │ ├── textarea.svg │ │ │ │ ├── thermometer-half.svg │ │ │ │ ├── thermometer-high.svg │ │ │ │ ├── thermometer-low.svg │ │ │ │ ├── thermometer-snow.svg │ │ │ │ ├── thermometer-sun.svg │ │ │ │ ├── thermometer.svg │ │ │ │ ├── threads-fill.svg │ │ │ │ ├── threads.svg │ │ │ │ ├── three-dots-vertical.svg │ │ │ │ ├── three-dots.svg │ │ │ │ ├── thunderbolt-fill.svg │ │ │ │ ├── thunderbolt.svg │ │ │ │ ├── ticket-detailed-fill.svg │ │ │ │ ├── ticket-detailed.svg │ │ │ │ ├── ticket-fill.svg │ │ │ │ ├── ticket-perforated-fill.svg │ │ │ │ ├── ticket-perforated.svg │ │ │ │ ├── ticket.svg │ │ │ │ ├── tiktok.svg │ │ │ │ ├── toggle-off.svg │ │ │ │ ├── toggle-on.svg │ │ │ │ ├── toggle2-off.svg │ │ │ │ ├── toggle2-on.svg │ │ │ │ ├── toggles.svg │ │ │ │ ├── toggles2.svg │ │ │ │ ├── tools.svg │ │ │ │ ├── tornado.svg │ │ │ │ ├── train-freight-front-fill.svg │ │ │ │ ├── train-freight-front.svg │ │ │ │ ├── train-front-fill.svg │ │ │ │ ├── train-front.svg │ │ │ │ ├── train-lightrail-front-fill.svg │ │ │ │ ├── train-lightrail-front.svg │ │ │ │ ├── translate.svg │ │ │ │ ├── transparency.svg │ │ │ │ ├── trash-fill.svg │ │ │ │ ├── trash.svg │ │ │ │ ├── trash2-fill.svg │ │ │ │ ├── trash2.svg │ │ │ │ ├── trash3-fill.svg │ │ │ │ ├── trash3.svg │ │ │ │ ├── tree-fill.svg │ │ │ │ ├── tree.svg │ │ │ │ ├── trello.svg │ │ │ │ ├── triangle-fill.svg │ │ │ │ ├── triangle-half.svg │ │ │ │ ├── triangle.svg │ │ │ │ ├── trophy-fill.svg │ │ │ │ ├── trophy.svg │ │ │ │ ├── tropical-storm.svg │ │ │ │ ├── truck-flatbed.svg │ │ │ │ ├── truck-front-fill.svg │ │ │ │ ├── truck-front.svg │ │ │ │ ├── truck.svg │ │ │ │ ├── tsunami.svg │ │ │ │ ├── tv-fill.svg │ │ │ │ ├── tv.svg │ │ │ │ ├── twitch.svg │ │ │ │ ├── twitter-x.svg │ │ │ │ ├── twitter.svg │ │ │ │ ├── type-bold.svg │ │ │ │ ├── type-h1.svg │ │ │ │ ├── type-h2.svg │ │ │ │ ├── type-h3.svg │ │ │ │ ├── type-h4.svg │ │ │ │ ├── type-h5.svg │ │ │ │ ├── type-h6.svg │ │ │ │ ├── type-italic.svg │ │ │ │ ├── type-strikethrough.svg │ │ │ │ ├── type-underline.svg │ │ │ │ ├── type.svg │ │ │ │ ├── ubuntu.svg │ │ │ │ ├── ui-checks-grid.svg │ │ │ │ ├── ui-checks.svg │ │ │ │ ├── ui-radios-grid.svg │ │ │ │ ├── ui-radios.svg │ │ │ │ ├── umbrella-fill.svg │ │ │ │ ├── umbrella.svg │ │ │ │ ├── unindent.svg │ │ │ │ ├── union.svg │ │ │ │ ├── unity.svg │ │ │ │ ├── universal-access-circle.svg │ │ │ │ ├── universal-access.svg │ │ │ │ ├── unlock-fill.svg │ │ │ │ ├── unlock.svg │ │ │ │ ├── upc-scan.svg │ │ │ │ ├── upc.svg │ │ │ │ ├── upload.svg │ │ │ │ ├── usb-c-fill.svg │ │ │ │ ├── usb-c.svg │ │ │ │ ├── usb-drive-fill.svg │ │ │ │ ├── usb-drive.svg │ │ │ │ ├── usb-fill.svg │ │ │ │ ├── usb-micro-fill.svg │ │ │ │ ├── usb-micro.svg │ │ │ │ ├── usb-mini-fill.svg │ │ │ │ ├── usb-mini.svg │ │ │ │ ├── usb-plug-fill.svg │ │ │ │ ├── usb-plug.svg │ │ │ │ ├── usb-symbol.svg │ │ │ │ ├── usb.svg │ │ │ │ ├── valentine.svg │ │ │ │ ├── valentine2.svg │ │ │ │ ├── vector-pen.svg │ │ │ │ ├── view-list.svg │ │ │ │ ├── view-stacked.svg │ │ │ │ ├── vignette.svg │ │ │ │ ├── vimeo.svg │ │ │ │ ├── vinyl-fill.svg │ │ │ │ ├── vinyl.svg │ │ │ │ ├── virus.svg │ │ │ │ ├── virus2.svg │ │ │ │ ├── voicemail.svg │ │ │ │ ├── volume-down-fill.svg │ │ │ │ ├── volume-down.svg │ │ │ │ ├── volume-mute-fill.svg │ │ │ │ ├── volume-mute.svg │ │ │ │ ├── volume-off-fill.svg │ │ │ │ ├── volume-off.svg │ │ │ │ ├── volume-up-fill.svg │ │ │ │ ├── volume-up.svg │ │ │ │ ├── vr.svg │ │ │ │ ├── wallet-fill.svg │ │ │ │ ├── wallet.svg │ │ │ │ ├── wallet2.svg │ │ │ │ ├── watch.svg │ │ │ │ ├── water.svg │ │ │ │ ├── webcam-fill.svg │ │ │ │ ├── webcam.svg │ │ │ │ ├── wechat.svg │ │ │ │ ├── whatsapp.svg │ │ │ │ ├── wifi-1.svg │ │ │ │ ├── wifi-2.svg │ │ │ │ ├── wifi-off.svg │ │ │ │ ├── wifi.svg │ │ │ │ ├── wikipedia.svg │ │ │ │ ├── wind.svg │ │ │ │ ├── window-dash.svg │ │ │ │ ├── window-desktop.svg │ │ │ │ ├── window-dock.svg │ │ │ │ ├── window-fullscreen.svg │ │ │ │ ├── window-plus.svg │ │ │ │ ├── window-sidebar.svg │ │ │ │ ├── window-split.svg │ │ │ │ ├── window-stack.svg │ │ │ │ ├── window-x.svg │ │ │ │ ├── window.svg │ │ │ │ ├── windows.svg │ │ │ │ ├── wordpress.svg │ │ │ │ ├── wrench-adjustable-circle-fill.svg │ │ │ │ ├── wrench-adjustable-circle.svg │ │ │ │ ├── wrench-adjustable.svg │ │ │ │ ├── wrench.svg │ │ │ │ ├── x-circle-fill.svg │ │ │ │ ├── x-circle.svg │ │ │ │ ├── x-diamond-fill.svg │ │ │ │ ├── x-diamond.svg │ │ │ │ ├── x-lg.svg │ │ │ │ ├── x-octagon-fill.svg │ │ │ │ ├── x-octagon.svg │ │ │ │ ├── x-square-fill.svg │ │ │ │ ├── x-square.svg │ │ │ │ ├── x.svg │ │ │ │ ├── xbox.svg │ │ │ │ ├── yelp.svg │ │ │ │ ├── yin-yang.svg │ │ │ │ ├── youtube.svg │ │ │ │ ├── zoom-in.svg │ │ │ │ └── zoom-out.svg │ │ ├── bootstrap │ │ │ └── 5.3.3 │ │ │ │ ├── css │ │ │ │ ├── bootstrap-grid.css │ │ │ │ ├── bootstrap-grid.css.map │ │ │ │ ├── bootstrap-grid.min.css │ │ │ │ ├── bootstrap-grid.min.css.map │ │ │ │ ├── bootstrap-grid.rtl.css │ │ │ │ ├── bootstrap-grid.rtl.css.map │ │ │ │ ├── bootstrap-grid.rtl.min.css │ │ │ │ ├── bootstrap-grid.rtl.min.css.map │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ ├── bootstrap-reboot.css.map │ │ │ │ ├── bootstrap-reboot.min.css │ │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ │ ├── bootstrap-reboot.rtl.css │ │ │ │ ├── bootstrap-reboot.rtl.css.map │ │ │ │ ├── bootstrap-reboot.rtl.min.css │ │ │ │ ├── bootstrap-reboot.rtl.min.css.map │ │ │ │ ├── bootstrap-utilities.css │ │ │ │ ├── bootstrap-utilities.css.map │ │ │ │ ├── bootstrap-utilities.min.css │ │ │ │ ├── bootstrap-utilities.min.css.map │ │ │ │ ├── bootstrap-utilities.rtl.css │ │ │ │ ├── bootstrap-utilities.rtl.css.map │ │ │ │ ├── bootstrap-utilities.rtl.min.css │ │ │ │ ├── bootstrap-utilities.rtl.min.css.map │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ ├── bootstrap.min.css │ │ │ │ ├── bootstrap.min.css.map │ │ │ │ ├── bootstrap.rtl.css │ │ │ │ ├── bootstrap.rtl.css.map │ │ │ │ ├── bootstrap.rtl.min.css │ │ │ │ └── bootstrap.rtl.min.css.map │ │ │ │ └── js │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ ├── bootstrap.bundle.js.map │ │ │ │ ├── bootstrap.bundle.min.js │ │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ │ ├── bootstrap.esm.js │ │ │ │ ├── bootstrap.esm.js.map │ │ │ │ ├── bootstrap.esm.min.js │ │ │ │ ├── bootstrap.esm.min.js.map │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.js.map │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── bootstrap.min.js.map │ │ ├── hashtag-linkify.js │ │ ├── htmx │ │ │ ├── 1.9.11 │ │ │ │ ├── htmx.js │ │ │ │ └── htmx.min.js │ │ │ └── ext │ │ │ │ └── hx-get-with-timestamp.js │ │ ├── observe-node-insertion.js │ │ └── toast-messages.js │ ├── templates │ │ ├── _crispy_form.html │ │ ├── _crispy_form_and_formset.html │ │ ├── _messages_as_event.html │ │ ├── base.html │ │ ├── crispy_form.html │ │ ├── crispy_form_and_formset.html │ │ ├── nextjs_base.html │ │ └── root.html │ ├── templatetags │ │ └── uuid_tags.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── examples │ ├── fib1.py │ ├── fib2-memoization.py │ └── fib3-using-django-cache.py ├── html │ ├── csr-apicall.html │ ├── csr.html │ └── react.html ├── manage.py ├── mysite │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── photolog │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_alter_note_options_note_tags_comment.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── photolog │ │ │ ├── _comment_form.html │ │ │ ├── _comment_list.html │ │ │ ├── _note_list.html │ │ │ ├── _user_follow.html │ │ │ ├── base.html │ │ │ ├── index.html │ │ │ ├── note_detail.html │ │ │ ├── user_list.html │ │ │ └── user_page.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── pytest.ini ├── requirements.txt └── requirements │ ├── common.txt │ ├── dev.txt │ └── prod.txt ├── myreact01-cra ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt ├── scripts │ └── deploy.mjs └── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── App2.js │ ├── App3.js │ ├── App4.js │ ├── App5.js │ ├── App6.jsx │ ├── App7.jsx │ ├── App8.css │ ├── App8.jsx │ ├── api.js │ ├── components │ ├── Avatar.css │ ├── Avatar.jsx │ ├── Counter.jsx │ ├── Footer.jsx │ ├── IFrameModal.jsx │ ├── Message.jsx │ ├── Message.module.scss │ ├── Profile.jsx │ ├── Profile.module.scss │ ├── Shared.scss │ ├── TextInput.jsx │ ├── TodoForm.jsx │ └── TopNav.jsx │ ├── constants.js │ ├── contexts │ └── StatusContext.js │ ├── index.css │ ├── index.js │ ├── logo.svg │ ├── pages │ ├── RouterErrorPage.jsx │ ├── blog │ │ ├── IndexPage.jsx │ │ ├── Layout.jsx │ │ ├── PostDetailPage.jsx │ │ └── data.js │ └── todos │ │ └── TodoList.js │ ├── reportWebVitals.js │ └── setupTests.js ├── myreact02-parcel ├── .gitignore ├── package-lock.json ├── package.json └── src │ ├── index.html │ └── index.js └── myreact03-daisyui ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt ├── src ├── App.css ├── App.js ├── App.test.js ├── index.css ├── index.js ├── logo.svg ├── reportWebVitals.js └── setupTests.js └── tailwind.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .env* 3 | venv 4 | db.sqlite3 5 | __pycache__ 6 | staticfiles 7 | mediafiles 8 | .DS_Store 9 | .python-version 10 | draft_models.py 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # (인프런) 파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 2 | 3 | + 장고 4.2 기준 4 | + [강의 바로가기](https://inf.run/Fcn6n) 5 | 6 | ![인프런 배너](./banner.png) 7 | 8 | -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/banner.png -------------------------------------------------------------------------------- /mydjango01/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | venv 3 | db.sqlite3 4 | __pycache__ 5 | /staticfiles 6 | /mediafiles 7 | .DS_Store 8 | -------------------------------------------------------------------------------- /mydjango01/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | // 프로젝트/.vscode/extensions.json 2 | // - 아래 설정을 추가하면 확장 탭에서 3 | // 추천 확장으로 확인하실 수 있습니다. 4 | { 5 | "recommendations": [ 6 | "ms-python.python", 7 | "ms-python.black-formatter", 8 | "batisteo.vscode-django", 9 | "Glavin001.unibeautify-vscode", 10 | "esbenp.prettier-vscode", 11 | "PKief.material-icon-theme" 12 | ] 13 | } -------------------------------------------------------------------------------- /mydjango01/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango01/mysite/__init__.py -------------------------------------------------------------------------------- /mydjango01/mysite/urls.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.urls import path 3 | from django.http import HttpResponse 4 | 5 | 6 | def root(request): 7 | return HttpResponse("hello vscode") 8 | 9 | 10 | urlpatterns = [ 11 | path("admin/", admin.site.urls), 12 | path("", root), 13 | ] 14 | -------------------------------------------------------------------------------- /mydjango02/melon-20230906.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango02/melon-20230906.sqlite3 -------------------------------------------------------------------------------- /mydjango03-hottrack/hottrack/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango03-hottrack/hottrack/__init__.py -------------------------------------------------------------------------------- /mydjango03-hottrack/hottrack/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class HottrackConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "hottrack" 7 | verbose_name = "핫트랙" 8 | -------------------------------------------------------------------------------- /mydjango03-hottrack/hottrack/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango03-hottrack/hottrack/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango03-hottrack/hottrack/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango03-hottrack/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango03-hottrack/mysite/__init__.py -------------------------------------------------------------------------------- /mydjango03-hottrack/requirements.txt: -------------------------------------------------------------------------------- 1 | django==4.2.7 2 | django-debug-toolbar==4.2.0 3 | requests==2.31.0 4 | pillow==10.1.0 5 | pandas==2.1.3 6 | -------------------------------------------------------------------------------- /mydjango04/accounts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/accounts/__init__.py -------------------------------------------------------------------------------- /mydjango04/accounts/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import User, SuperUser, Profile 3 | 4 | 5 | @admin.register(User) 6 | class UserAdmin(admin.ModelAdmin): 7 | pass 8 | 9 | 10 | @admin.register(SuperUser) 11 | class SuperUserAdmin(admin.ModelAdmin): 12 | pass 13 | 14 | 15 | @admin.register(Profile) 16 | class ProfileAdmin(admin.ModelAdmin): 17 | pass 18 | -------------------------------------------------------------------------------- /mydjango04/accounts/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AccountsConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "accounts" 7 | -------------------------------------------------------------------------------- /mydjango04/accounts/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/accounts/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/accounts/templates/accounts/password_change_form.html: -------------------------------------------------------------------------------- 1 |
2 | {% csrf_token %} 3 | 4 | {{ form.as_table }} 5 |
6 | 7 |
8 | -------------------------------------------------------------------------------- /mydjango04/accounts/templates/accounts/password_reset_email.html: -------------------------------------------------------------------------------- 1 | {% extends "registration/password_reset_email.html" %} 2 | 3 | {% block reset_link %} 4 | {{ protocol }}://{{ domain }}{% url 'accounts:password_reset_confirm' uidb64=uid token=token %} 5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /mydjango04/accounts/templates/accounts/signup_form.html: -------------------------------------------------------------------------------- 1 |
2 | {% csrf_token %} 3 | 4 | {{ form.as_table }} 5 |
6 | 7 |
8 | -------------------------------------------------------------------------------- /mydjango04/accounts/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/blog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/blog/__init__.py -------------------------------------------------------------------------------- /mydjango04/blog/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class BlogConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "blog" 7 | -------------------------------------------------------------------------------- /mydjango04/blog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/blog/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/blog/templates/blog/post_new.html: -------------------------------------------------------------------------------- 1 | 2 | {{ errors }} 3 | 4 |
5 | request.GET: {{ request.GET }}
6 | request.POST: {{ request.POST }}
7 | request.FILES: {{ request.FILES }}
-------------------------------------------------------------------------------- /mydjango04/blog/templates/blog/tag_form.html: -------------------------------------------------------------------------------- 1 | {# blog/templates/blog/tag_form.html #} 2 | 3 | {% extends "blog/base.html" %} 4 | 5 | {% block title %}태그 폼{% endblock %} 6 | 7 | {% block content %} 8 |

태그 폼

9 | {% include "blog/_tag_form.html" %} 10 | {% endblock %} -------------------------------------------------------------------------------- /mydjango04/blog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/cafe/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/cafe/__init__.py -------------------------------------------------------------------------------- /mydjango04/cafe/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/cafe/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CafeConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "cafe" 7 | -------------------------------------------------------------------------------- /mydjango04/cafe/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/cafe/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/cafe/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/cafe/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/cafe/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from . import views 3 | 4 | app_name = "cafe" 5 | 6 | urlpatterns = [ 7 | path("", views.coffee_stamp, name="coffee_stamp"), 8 | path("free-coffee/", views.coffee_free, name="coffee_free"), 9 | ] 10 | -------------------------------------------------------------------------------- /mydjango04/components/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/components/__init__.py -------------------------------------------------------------------------------- /mydjango04/components/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/components/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ComponentsConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "components" 7 | -------------------------------------------------------------------------------- /mydjango04/components/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/components/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/components/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/components/src-django-components/hello_world/hello_world.css: -------------------------------------------------------------------------------- 1 | /* components/src-django-components/hello_world/hello_world.css */ 2 | /* - 각 컴포넌트마다 반복되는 것이 아니라, 웹페이지에서 1회만 수행 */ 3 | 4 | .hello-world-component { display: inline-block; border: 1px dashed #ccc; padding: 10px; } 5 | .hello-world-component h1 { cursor: pointer; color: blue; margin: 0; } 6 | .hello-world-component h1:hover { color: red; } 7 | -------------------------------------------------------------------------------- /mydjango04/components/src-django-components/hello_world/hello_world.html: -------------------------------------------------------------------------------- 1 | {# components/src-django-components/hello_world/hello_world.html #} 2 | 3 |
4 |

Hello - {{ name|default:"익명" }}

5 |
6 | -------------------------------------------------------------------------------- /mydjango04/components/src-django-components/hello_world/hello_world.js: -------------------------------------------------------------------------------- 1 | /* components/src-django-components/hello_world/hello_world.js */ 2 | /* - 각 컴포넌트마다 반복되는 것이 아니라, 웹페이지에서 1회만 수행 */ 3 | 4 | (function () { 5 | document.querySelectorAll(".hello-world-component h1").forEach(el => { 6 | el.onclick = function (e) { 7 | alert(e.target.textContent); 8 | }; 9 | }); 10 | })() 11 | -------------------------------------------------------------------------------- /mydjango04/components/static/components-pure/hello-world.css: -------------------------------------------------------------------------------- 1 | /* components/static/components-pure/hello-world.css */ 2 | 3 | .hello-world-component { display: inline-block; border: 1px dashed #ccc; padding: 10px; } 4 | .hello-world-component h1 { cursor: pointer; color: blue; margin: 0; } 5 | .hello-world-component h1:hover { color: red; } 6 | -------------------------------------------------------------------------------- /mydjango04/components/static/components-pure/hello-world.js: -------------------------------------------------------------------------------- 1 | /* components/static/components-pure/hello-world.js */ 2 | 3 | (function () { 4 | document.querySelectorAll(".hello-world-component h1").forEach(el => { 5 | el.onclick = function (e) { 6 | alert(e.target.textContent); 7 | }; 8 | }); 9 | })() -------------------------------------------------------------------------------- /mydjango04/components/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/components/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /mydjango04/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/core/__init__.py -------------------------------------------------------------------------------- /mydjango04/core/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/core/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CoreConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "core" 7 | -------------------------------------------------------------------------------- /mydjango04/core/crispy_bootstrap5_ext/layout.py: -------------------------------------------------------------------------------- 1 | from crispy_forms.bootstrap import TabHolder 2 | 3 | 4 | class BorderedTabHolder(TabHolder): 5 | template = "core/crispy_bootstrap5_ext/layout/tab.html" 6 | -------------------------------------------------------------------------------- /mydjango04/core/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/core/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/core/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/core/static/core/star-rating-js/img/star-empty.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mydjango04/core/static/core/star-rating-js/img/star-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mydjango04/core/templates/core/forms/widgets/horizontal_radio.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | {% include "django/forms/widgets/radio.html" %} 9 | -------------------------------------------------------------------------------- /mydjango04/core/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/core/urls.py: -------------------------------------------------------------------------------- 1 | # core/urls.py 2 | 3 | from django.urls import path 4 | from . import views 5 | 6 | app_name = "core" # URL Reverse를 위한 Namespace 지정 7 | 8 | urlpatterns = [ 9 | path("", views.index, name="index"), # URL Reverse를 위한 URL Pattern명 지정 10 | ] 11 | -------------------------------------------------------------------------------- /mydjango04/core/views.py: -------------------------------------------------------------------------------- 1 | from django.contrib import messages 2 | from django.shortcuts import render 3 | 4 | 5 | def index(request): 6 | messages.debug(request, "디버그 메시지") 7 | messages.info(request, "정보 메시지") 8 | messages.success(request, "성공 메시지") 9 | messages.warning(request, "경고 메시지") 10 | messages.error(request, "에러 메시지") 11 | 12 | return render(request, "core/index.html") 13 | -------------------------------------------------------------------------------- /mydjango04/hottrack/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/hottrack/__init__.py -------------------------------------------------------------------------------- /mydjango04/hottrack/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class HottrackConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "hottrack" 7 | verbose_name = "핫트랙" 8 | -------------------------------------------------------------------------------- /mydjango04/hottrack/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/hottrack/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/hottrack/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/mysite/__init__.py -------------------------------------------------------------------------------- /mydjango04/school/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/school/__init__.py -------------------------------------------------------------------------------- /mydjango04/school/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/school/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class SchoolConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "school" 7 | -------------------------------------------------------------------------------- /mydjango04/school/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/school/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/school/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/school/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /mydjango04/shop/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/shop/__init__.py -------------------------------------------------------------------------------- /mydjango04/shop/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /mydjango04/shop/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ShopConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "shop" 7 | -------------------------------------------------------------------------------- /mydjango04/shop/migrations/0003_auto_20231214_0823.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.7 on 2023-12-14 08:23 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | dependencies = [ 8 | ("shop", "0002_insert_zipcode_data"), 9 | ] 10 | 11 | operations = [] 12 | -------------------------------------------------------------------------------- /mydjango04/shop/migrations/0004_auto_20231214_0823.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.7 on 2023-12-14 08:23 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | dependencies = [ 8 | ("shop", "0003_auto_20231214_0823"), 9 | ] 10 | 11 | operations = [] 12 | -------------------------------------------------------------------------------- /mydjango04/shop/migrations/0005_auto_20231214_0823.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.7 on 2023-12-14 08:23 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | dependencies = [ 8 | ("shop", "0004_auto_20231214_0823"), 9 | ] 10 | 11 | operations = [] 12 | -------------------------------------------------------------------------------- /mydjango04/shop/migrations/0006_auto_20231214_0823.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.7 on 2023-12-14 08:23 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | dependencies = [ 8 | ("shop", "0005_auto_20231214_0823"), 9 | ] 10 | 11 | operations = [] 12 | -------------------------------------------------------------------------------- /mydjango04/shop/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/shop/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/shop/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mydjango04/shop/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from . import views 3 | 4 | 5 | urlpatterns = [ 6 | path("travel/current/update/", views.current_travel_edit), 7 | ] 8 | -------------------------------------------------------------------------------- /mydjango04/weblog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/weblog/__init__.py -------------------------------------------------------------------------------- /mydjango04/weblog/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class WeblogConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "weblog" 7 | -------------------------------------------------------------------------------- /mydjango04/weblog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mydjango04/weblog/migrations/__init__.py -------------------------------------------------------------------------------- /mydjango04/weblog/templates/weblog/post_confirm_delete.html: -------------------------------------------------------------------------------- 1 |

포스팅 삭제

2 | 3 |
4 | {% csrf_token %} 5 |

삭제하시겠습니까?

6 | 7 | {% if form %} 8 | 9 | {{ form.as_table }} 10 |
11 | {% endif %} 12 | 13 | 14 |
15 | -------------------------------------------------------------------------------- /mydjango04/weblog/templates/weblog/post_detail.html: -------------------------------------------------------------------------------- 1 |

{{ post.title }}

2 | 3 | {{ post.content }} 4 | 5 |
6 | 7 | 수정하기 8 | 삭제하기 9 | -------------------------------------------------------------------------------- /mydjango04/weblog/templates/weblog/post_form.html: -------------------------------------------------------------------------------- 1 | {{ form.media }} 2 | 3 |

Post Form

4 | 5 |
6 | {% csrf_token %} 7 | 8 | {{ form.as_table }} 9 |
10 | 11 |
12 | -------------------------------------------------------------------------------- /mydjango04/weblog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /mynextjs/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /mynextjs/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "paths": { 4 | "@/*": ["./src/*"] 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /mynextjs/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | trailingSlash: true, 4 | }; 5 | 6 | export default nextConfig; 7 | -------------------------------------------------------------------------------- /mynextjs/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /mynextjs/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/mynextjs/src/app/favicon.ico -------------------------------------------------------------------------------- /myproj/.gitignore: -------------------------------------------------------------------------------- 1 | .parcel-cache 2 | node_modules 3 | -------------------------------------------------------------------------------- /myproj/accounts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/accounts/__init__.py -------------------------------------------------------------------------------- /myproj/accounts/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin 3 | from .models import User 4 | 5 | 6 | @admin.register(User) 7 | class UserAdmin(DjangoUserAdmin): 8 | pass 9 | -------------------------------------------------------------------------------- /myproj/accounts/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AccountsConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "accounts" 7 | -------------------------------------------------------------------------------- /myproj/accounts/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/accounts/migrations/__init__.py -------------------------------------------------------------------------------- /myproj/accounts/templates/accounts/base.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | -------------------------------------------------------------------------------- /myproj/accounts/templates/accounts/welcome_email/content.txt: -------------------------------------------------------------------------------- 1 | {{ username }}님. 서비스 가입을 환영합니다. 2 | 3 | - 운영자 드림 -------------------------------------------------------------------------------- /myproj/accounts/templates/accounts/welcome_email/subject.txt: -------------------------------------------------------------------------------- 1 | 서비스 가입을 환영합니다. 2 | -------------------------------------------------------------------------------- /myproj/accounts/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /myproj/accounts/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/accounts/tests/__init__.py -------------------------------------------------------------------------------- /myproj/blog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/blog/__init__.py -------------------------------------------------------------------------------- /myproj/blog/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import Post, Comment, Todo 3 | 4 | 5 | @admin.register(Post) 6 | class PostAdmin(admin.ModelAdmin): 7 | pass 8 | 9 | 10 | @admin.register(Comment) 11 | class CommentAdmin(admin.ModelAdmin): 12 | pass 13 | 14 | 15 | @admin.register(Todo) 16 | class TodoAdmin(admin.ModelAdmin): 17 | pass 18 | -------------------------------------------------------------------------------- /myproj/blog/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class BlogConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "blog" 7 | -------------------------------------------------------------------------------- /myproj/blog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/blog/migrations/__init__.py -------------------------------------------------------------------------------- /myproj/blog/templates/blog/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 |
blog/index.html 템플릿
5 | 6 | 11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /myproj/blog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /myproj/blog/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/blog/tests/__init__.py -------------------------------------------------------------------------------- /myproj/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/core/__init__.py -------------------------------------------------------------------------------- /myproj/core/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /myproj/core/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CoreConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "core" 7 | -------------------------------------------------------------------------------- /myproj/core/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/core/migrations/__init__.py -------------------------------------------------------------------------------- /myproj/core/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /myproj/core/react_components_map.py: -------------------------------------------------------------------------------- 1 | # react-components 명령을 통해 자동 생성되는 파일입니다. 2 | mapper = { 3 | "hello_world.html": { 4 | "css": [ 5 | "react_dist/hello_world.38d394c2.css" 6 | ], 7 | "js": [ 8 | "react_dist/hello_world.771e87f6.js" 9 | ] 10 | } 11 | } -------------------------------------------------------------------------------- /myproj/core/src-django-components/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/core/src-django-components/__init__.py -------------------------------------------------------------------------------- /myproj/core/src-django-components/carousel/carousel.css: -------------------------------------------------------------------------------- 1 | 2 | .carousel-component .carousel-indicators [data-bs-target] { 3 | width: 12px; 4 | height: 12px; 5 | border-radius: 50%; 6 | } 7 | 8 | .carousel-component img { 9 | user-select: none; 10 | pointer-events: none; 11 | } 12 | -------------------------------------------------------------------------------- /myproj/core/src-django-components/hello_world/hello_world.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /myproj/core/src-django-components/modal_form/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/core/src-django-components/modal_form/__init__.py -------------------------------------------------------------------------------- /myproj/core/src-django-components/modal_form/modal_form.py: -------------------------------------------------------------------------------- 1 | from django_components import register, Component 2 | 3 | 4 | @register("modal-form") 5 | class ModalForm(Component): 6 | template_name = "modal_form/modal_form.html" 7 | 8 | class Media: 9 | js = [ 10 | "observe-node-insertion.js", 11 | "modal_form/modal_form.js", 12 | ] 13 | -------------------------------------------------------------------------------- /myproj/core/src-django-components/react_dist/hello_world.38d394c2.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/core/src-django-components/react_dist/hello_world.38d394c2.css -------------------------------------------------------------------------------- /myproj/core/src-django-components/react_dist/hello_world.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /myproj/core/src-react-components/src/hello_world.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /myproj/core/src-react-components/src/hello_world.module.css: -------------------------------------------------------------------------------- 1 | .container { 2 | } 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/1-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/1-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/1-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/7-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/7-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/7-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/align-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/align-center.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/align-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/align-middle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/align-start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/align-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/amd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/app.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/archive-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-90deg-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-90deg-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-90deg-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-90deg-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-clockwise.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-down-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-down-left-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-down-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-down-right-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-down-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-down-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-left-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-left-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-right-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-right-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-up-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-up-left-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-up-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-up-right-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-up-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-up-short.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/arrows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/asterisk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bag-dash-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bag-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bag-heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/ban-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/ban.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bar-chart-line-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bar-chart-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/battery.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bell-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bookmark-dash-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bookmark-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bookmark-heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bookshelf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/border-all.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bounding-box.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/box2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/box2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/brilliance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/bucket-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/calendar-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/calendar-minus-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/calendar-range-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/calendar3-event-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/calendar3-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/calendar3-range-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/camera-video-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/capsule.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-down-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-down-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-left-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-left-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-right-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-right-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-up-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-up-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/caret-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/cash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-left-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-left-heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-right-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-right-heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chat-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/check-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/check-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/check2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-bar-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-compact-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-compact-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-compact-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-compact-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/chevron-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/circle-half.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/clock-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/cloud-fog2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/cloudy-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/columns.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/compass-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/compass.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/cone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/credit-card-2-back-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/credit-card-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/crop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/currency-yen.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/cursor-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/cursor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dash-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dash-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dash-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dash-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/diamond-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dice-1-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dice-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dice-2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dice-3-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/disc-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/display-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/displayport-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/door-closed-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/door-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/easel3-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/easel3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/egg-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/eject-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/emoji-expressionless-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/envelope-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/exclamation-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/exclamation-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/exclamation-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/exclude.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/explicit-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/exposure.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/eye-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-arrow-up-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-break-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-check-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-earmark-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-earmark-minus-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-earmark-ruled-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-earmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-minus-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-person.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-play-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-plus-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-post-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-ppt-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-ruled-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-ruled.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file-spreadsheet-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/files-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/film.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/filter-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/filter-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/filter-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/font/fonts/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/core/static/bootstrap-icons/1.11.3/font/fonts/bootstrap-icons.woff -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/font/fonts/bootstrap-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/core/static/bootstrap-icons/1.11.3/font/fonts/bootstrap-icons.woff2 -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/fonts.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/forward-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/front.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/funnel-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/gender-female.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/gender-male.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/gender-neuter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/geo-alt-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/graph-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/h-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/h-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/h-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/headphones.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/heartbreak-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/hexagon-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/hexagon-half.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/hexagon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/hr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/hurricane.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/image-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/key-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/ladder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/laptop-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/laptop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/layout-sidebar-reverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/layout-sidebar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/layout-split.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/lightning-charge-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/lightning-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/list-nested.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/lock-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/magnet-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/magnet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/mask.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/microsoft.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/mouse-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/mouse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/mouse2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/music-note.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/nut-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/option.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/paperclip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pass-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pause-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pause-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/peace-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pentagon-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/person-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/person-dash-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/person-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/person-heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/phone-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/phone-landscape-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/phone-landscape.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/phone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pie-chart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pie-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/pip-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/play-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/play-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/play-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/plus-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/plus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/plus-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/plus-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/power.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record-btn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/record2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/reply-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/rulers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/save2-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/segmented-nav.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/send.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/share-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/shift-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/shift.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/sign-intersection-t-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/signpost-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/signpost-split-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/signpost.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-end-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-end-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-end-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-start-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-start-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-start-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/skip-start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/slash-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/slash-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/slash-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/slash-square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/slash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/square-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/square-half.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/stop-btn-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/stop-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/stop-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/strava.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/substack.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/subtract.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/suit-diamond-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/suit-heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/symmetry-horizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/symmetry-vertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/table.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/tablet-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/tablet-landscape-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/tablet-landscape.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/tag-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/three-dots-vertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/three-dots.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/tiktok.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/toggle-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/toggle-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/toggle2-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/toggle2-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/triangle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/tv-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/twitch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/twitter-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/type-h1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/type-h4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/type-italic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/type-underline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/union.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/unlock-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/usb-c-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/usb-c.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/usb-drive-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/usb-drive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/usb-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/usb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/vinyl-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/vinyl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/voicemail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/volume-off-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/x-circle-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/x-lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/bootstrap-icons/1.11.3/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /myproj/core/static/hashtag-linkify.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | observeNodeInsertion("[data-hashtag-linkify]", el => { 3 | const link = el.getAttribute("data-hashtag-linkify") || ""; 4 | let html = el.innerHTML; 5 | const replacement = `#$1`; 6 | html = html.replace(/#([\wㄱ-힣]+)/g, replacement); 7 | el.innerHTML = html; 8 | }); 9 | })(); -------------------------------------------------------------------------------- /myproj/core/templates/crispy_form.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load crispy_forms_tags %} 3 | 4 | {% block content %} 5 | {% include "_crispy_form.html" with form=form form_title=form_title %} 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /myproj/core/templates/crispy_form_and_formset.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load crispy_forms_tags %} 3 | 4 | {% block content %} 5 | {% include "_crispy_form_and_formset.html" with form=form formset=formset form_title=form_title form_submit_label=form_submit_label %} 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /myproj/core/templates/root.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load component_tags %} 3 | 4 | {% block content %} 5 | root.html 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /myproj/core/templatetags/uuid_tags.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | import uuid 3 | 4 | register = template.Library() 5 | 6 | 7 | @register.simple_tag 8 | def generate_uuid4(prefix=None, length=None) -> str: 9 | uuid4_hex = uuid.uuid4().hex 10 | if length: 11 | uuid4_hex = uuid4_hex[:length] 12 | return (prefix or "") + uuid4_hex 13 | -------------------------------------------------------------------------------- /myproj/core/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /myproj/core/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from django.views.generic import TemplateView 3 | 4 | from . import views 5 | 6 | app_name = "core" 7 | 8 | urlpatterns = [ 9 | # path("", TemplateView.as_view(template_name="root.html"), name="root"), 10 | ] 11 | -------------------------------------------------------------------------------- /myproj/core/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /myproj/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/mysite/__init__.py -------------------------------------------------------------------------------- /myproj/photolog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/photolog/__init__.py -------------------------------------------------------------------------------- /myproj/photolog/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import Note, Photo 3 | 4 | 5 | @admin.register(Note) 6 | class NoteAdmin(admin.ModelAdmin): 7 | list_display = ["title"] 8 | 9 | 10 | @admin.register(Photo) 11 | class PhotoAdmin(admin.ModelAdmin): 12 | pass 13 | -------------------------------------------------------------------------------- /myproj/photolog/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class PhotologConfig(AppConfig): 5 | default_auto_field = "django.db.models.BigAutoField" 6 | name = "photolog" 7 | -------------------------------------------------------------------------------- /myproj/photolog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myproj/photolog/migrations/__init__.py -------------------------------------------------------------------------------- /myproj/photolog/templates/photolog/base.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | {% block photolog-content %} 5 | {% endblock %} 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /myproj/photolog/templates/photolog/index.html: -------------------------------------------------------------------------------- 1 | {% extends "photolog/base.html" %} 2 | {% load component_tags %} 3 | 4 | {% block photolog-content %} 5 | {% include "photolog/_note_list.html" with note_list=note_list %} 6 | {% endblock %} -------------------------------------------------------------------------------- /myproj/photolog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /myproj/pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | DJANGO_SETTINGS_MODULE = mysite.settings 3 | python_files = test_*.py 4 | testpaths = ./*/tests 5 | addopts = --testdox 6 | -------------------------------------------------------------------------------- /myproj/requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements/prod.txt 2 | -------------------------------------------------------------------------------- /myproj/requirements/dev.txt: -------------------------------------------------------------------------------- 1 | -r common.txt 2 | 3 | django-debug-toolbar==4.3.0 4 | ipython 5 | -------------------------------------------------------------------------------- /myproj/requirements/prod.txt: -------------------------------------------------------------------------------- 1 | -r common.txt 2 | 3 | psycopg2-binary 4 | 5 | gunicorn 6 | 7 | uvicorn[standard] 8 | 9 | sentry-sdk[django] 10 | -------------------------------------------------------------------------------- /myreact01-cra/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myreact01-cra/public/favicon.ico -------------------------------------------------------------------------------- /myreact01-cra/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myreact01-cra/public/logo192.png -------------------------------------------------------------------------------- /myreact01-cra/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myreact01-cra/public/logo512.png -------------------------------------------------------------------------------- /myreact01-cra/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /myreact01-cra/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /myreact01-cra/src/App5.js: -------------------------------------------------------------------------------- 1 | import TodoList from "./pages/todos/TodoList"; 2 | 3 | function App() { 4 | return ; 5 | } 6 | 7 | export default App; 8 | -------------------------------------------------------------------------------- /myreact01-cra/src/App6.jsx: -------------------------------------------------------------------------------- 1 | import Counter from "./components/Counter"; 2 | 3 | function App() { 4 | return ; 5 | } 6 | 7 | export default App; 8 | -------------------------------------------------------------------------------- /myreact01-cra/src/App8.css: -------------------------------------------------------------------------------- 1 | .nav-links .active { 2 | background-color: yellow; 3 | } 4 | -------------------------------------------------------------------------------- /myreact01-cra/src/components/Footer.jsx: -------------------------------------------------------------------------------- 1 | function Footer() { 2 | const year = new Date().getFullYear(); 3 | return
© {year}. 파이썬 사랑방
; 4 | } 5 | 6 | export default Footer; 7 | -------------------------------------------------------------------------------- /myreact01-cra/src/components/Message.jsx: -------------------------------------------------------------------------------- 1 | // components/Message.jsx 2 | 3 | import Styles from "./Message.module.scss"; 4 | 5 | function Message() { 6 | return
Message 컴포넌트
; 7 | } 8 | 9 | export default Message; 10 | -------------------------------------------------------------------------------- /myreact01-cra/src/components/Message.module.scss: -------------------------------------------------------------------------------- 1 | /* components/Message.module.css */ 2 | 3 | @import "./Shared"; 4 | 5 | .wrapper { 6 | color: lighten($text-color, 30%); 7 | background-color: lighten($background-color, 30%); 8 | } 9 | -------------------------------------------------------------------------------- /myreact01-cra/src/components/Profile.jsx: -------------------------------------------------------------------------------- 1 | // components/Profile.jsx 2 | 3 | import Styles from "./Profile.module.scss"; 4 | 5 | function Profile() { 6 | return
Profile 컴포넌트
; 7 | } 8 | 9 | export default Profile; 10 | -------------------------------------------------------------------------------- /myreact01-cra/src/components/Profile.module.scss: -------------------------------------------------------------------------------- 1 | /* components/Profile.module.css */ 2 | 3 | @import "./Shared"; 4 | 5 | .wrapper { 6 | color: darken($text-color, 30%); 7 | background-color: darken($background-color, 30%); 8 | } 9 | -------------------------------------------------------------------------------- /myreact01-cra/src/components/Shared.scss: -------------------------------------------------------------------------------- 1 | $text-color: orange; 2 | $background-color: gray; 3 | -------------------------------------------------------------------------------- /myreact01-cra/src/pages/blog/Layout.jsx: -------------------------------------------------------------------------------- 1 | import { Outlet } from "react-router-dom"; 2 | 3 | function Layout() { 4 | return ( 5 |
6 |

블로그

7 | 8 |
9 | ); 10 | } 11 | 12 | export default Layout; 13 | -------------------------------------------------------------------------------- /myreact01-cra/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /myreact02-parcel/.gitignore: -------------------------------------------------------------------------------- 1 | .parcel-cache 2 | node_modules 3 | dist 4 | -------------------------------------------------------------------------------- /myreact02-parcel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "start": "parcel src/index.html" 4 | }, 5 | "devDependencies": { 6 | "parcel": "^2.12.0", 7 | "process": "^0.11.10" 8 | }, 9 | "dependencies": { 10 | "react": "^18.3.1", 11 | "react-dom": "^18.3.1" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /myreact02-parcel/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /myreact02-parcel/src/index.js: -------------------------------------------------------------------------------- 1 | // src/index.js 2 | 3 | import {createRoot} from "react-dom/client"; 4 | 5 | function App() { 6 | return ( 7 |
8 |

Hello React.

9 |
10 | ); 11 | } 12 | 13 | // js 단에서 리액트 컴포넌트를 렌더링할 요소를 지정 14 | const rootEl = document.getElementById("root"); 15 | const root = createRoot(rootEl) 16 | root.render(); 17 | -------------------------------------------------------------------------------- /myreact03-daisyui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myreact03-daisyui/public/favicon.ico -------------------------------------------------------------------------------- /myreact03-daisyui/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myreact03-daisyui/public/logo192.png -------------------------------------------------------------------------------- /myreact03-daisyui/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyhub-kr/course-django-complete-guide-v3/c0d965ac1a1df9a33986b70ff6d8a65e8b699fc9/myreact03-daisyui/public/logo512.png -------------------------------------------------------------------------------- /myreact03-daisyui/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /myreact03-daisyui/src/App.js: -------------------------------------------------------------------------------- 1 | import {Button} from "react-daisyui"; 2 | 3 | function App() { 4 | return ( 5 |
6 |

7 | Hello world! 8 |

9 | 10 |
11 | ); 12 | } 13 | 14 | export default App; 15 | -------------------------------------------------------------------------------- /myreact03-daisyui/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /myreact03-daisyui/src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /myreact03-daisyui/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /myreact03-daisyui/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | "./src/**/*.{js,jsx,ts,tsx}", 5 | 'node_modules/daisyui/dist/**/*.js', 6 | 'node_modules/react-daisyui/dist/**/*.js', 7 | ], 8 | theme: { 9 | extend: {}, 10 | }, 11 | plugins: [ 12 | require('daisyui'), 13 | ], 14 | } 15 | 16 | --------------------------------------------------------------------------------