diff --git a/src/unluckystrike/blog/templates/blog_base.html b/src/unluckystrike/blog/templates/blog_base.html
deleted file mode 100755
index 2fa3dab..0000000
--- a/src/unluckystrike/blog/templates/blog_base.html
+++ /dev/null
@@ -1,121 +0,0 @@
-{% extends "base.html" %}
-{% block content %}
-
-
-
-
-
-
-
-
- {% if not post_list %}
-
No results were found for your search
- {% else %}
- {% for post in post_list %}
-
-
-
-
- {{ post.author | upper }} |
- {{ post.created_on.date }} |
- Categories:
- {% for category in post.categories.all %}
-
- {{ category.name }}
-
- {% endfor %}
-
-
-
-
Discover
-
-
- {% endfor %}
- {% endif %}
-
-
-
-
-
-
-
-
-
-
-
- {% if is_paginated %}
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/src/unluckystrike/main/settings.py b/src/unluckystrike/main/settings.py
index e51fcf9..3abe31c 100755
--- a/src/unluckystrike/main/settings.py
+++ b/src/unluckystrike/main/settings.py
@@ -57,12 +57,24 @@
'blog',
'service',
# addon apps
+ 'channels',
'letsencrypt',
'rest_framework',
'drf_yasg',
'ckeditor',
]
+# Channels
+ASGI_APPLICATION = 'config.asgi.application'
+CHANNEL_LAYERS = {
+ 'default': {
+ 'BACKEND': 'channels_redis.core.RedisChannelLayer',
+ 'CONFIG': {
+ "hosts": [('127.0.0.1', 6379)],
+ },
+ },
+}
+
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
diff --git a/src/unluckystrike/main/templates/base.html b/src/unluckystrike/main/templates/base.html
index 928c615..62c071c 100755
--- a/src/unluckystrike/main/templates/base.html
+++ b/src/unluckystrike/main/templates/base.html
@@ -96,6 +96,8 @@
Project
+ - Open Webcam Test
+ - Exchange Rate
- lottery
- Object Detection
- Raspberry Pi Lab
diff --git a/src/unluckystrike/projects/fishingram.py b/src/unluckystrike/projects/fishingram.py
new file mode 100755
index 0000000..29ff0f2
--- /dev/null
+++ b/src/unluckystrike/projects/fishingram.py
@@ -0,0 +1,40 @@
+# fishingram
+
+from rest_framework import serializers
+
+from service.models import FishingPlaceInfoData
+
+import os
+import glob
+
+from pathlib import Path
+
+BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
+
+
+class FishingPlcInfoSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = FishingPlaceInfoData
+ fields = (
+ 'sigun_name',
+ 'sigun_code',
+ 'facility_name',
+ 'facility_type',
+ 'refine_roadnm_addr',
+ 'refine_lotnm_addr',
+ 'refine_lat',
+ 'refine_logt',
+ 'facility_tel',
+ 'wtr_ar',
+ 'fishkind_nm',
+ 'aceptnc_posbl_psn_cnt',
+ 'wtr_facility_info',
+ 'chrg_info',
+ 'main_plc_info',
+ 'safe_facility_info',
+ 'convnce_facility_info',
+ 'circumfr_tursm_info',
+ 'manage_inst_telno',
+ 'manage_inst_name',
+ 'data_std_de'
+ )
\ No newline at end of file
diff --git a/src/unluckystrike/projects/templates/exchange-rate.html b/src/unluckystrike/projects/templates/exchange-rate.html
new file mode 100644
index 0000000..1d2b367
--- /dev/null
+++ b/src/unluckystrike/projects/templates/exchange-rate.html
@@ -0,0 +1,66 @@
+{% extends "base.html" %}
+
+{% block title%}원달러 환율 - Unlucky Strike{% endblock title %}
+
+{% block content %}
+
+
+
+
+원달러 환율
+
+
+
+ Monthly Sales Chart
+
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/unluckystrike/projects/templates/fishingram.html b/src/unluckystrike/projects/templates/fishingram.html
new file mode 100755
index 0000000..7e2763b
--- /dev/null
+++ b/src/unluckystrike/projects/templates/fishingram.html
@@ -0,0 +1,205 @@
+{% extends "base.html" %}
+{% load static %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/src/unluckystrike/projects/templates/open-webcam-test.html b/src/unluckystrike/projects/templates/open-webcam-test.html
new file mode 100755
index 0000000..ee24e68
--- /dev/null
+++ b/src/unluckystrike/projects/templates/open-webcam-test.html
@@ -0,0 +1,55 @@
+{% extends "base.html" %}
+
+{% block title%}Open Webcam Test - Unlucky Strike{% endblock title %}
+
+{% block content %}
+
+