diff --git a/paper/flowzu.pdf b/paper/flowzu.pdf new file mode 100644 index 0000000..f82d58c --- /dev/null +++ b/paper/flowzu.pdf Binary files differ diff --git a/paper/jittai.pdf b/paper/jittai.pdf new file mode 100644 index 0000000..98505b2 --- /dev/null +++ b/paper/jittai.pdf Binary files differ diff --git a/paper/mago.pdf b/paper/mago.pdf new file mode 100644 index 0000000..6fc2315 --- /dev/null +++ b/paper/mago.pdf Binary files differ diff --git a/paper/sscms_mail.pdf b/paper/sscms_mail.pdf new file mode 100644 index 0000000..1abf8df --- /dev/null +++ b/paper/sscms_mail.pdf Binary files differ diff --git a/resume/c120090-2023-R.dvi b/resume/c120090-2023-R.dvi new file mode 100644 index 0000000..07e2d64 --- /dev/null +++ b/resume/c120090-2023-R.dvi Binary files differ diff --git a/resume/c120090-2023-R.pdf b/resume/c120090-2023-R.pdf new file mode 100644 index 0000000..6b0bc25 --- /dev/null +++ b/resume/c120090-2023-R.pdf Binary files differ diff --git a/resume/c120090-2023-R.synctex.gz b/resume/c120090-2023-R.synctex.gz new file mode 100644 index 0000000..51f3482 --- /dev/null +++ b/resume/c120090-2023-R.synctex.gz Binary files differ diff --git a/resume/c120090-2023-R.tex b/resume/c120090-2023-R.tex new file mode 100644 index 0000000..75bc27e --- /dev/null +++ b/resume/c120090-2023-R.tex @@ -0,0 +1,338 @@ +\documentclass[a4j]{jarticle} +% -*- coding: utf-8 -*- + +\AtBeginDvi{\special{pdf:mapfile ptex-ipa.map}} +\addtolength{\topmargin}{-2.5cm} +\addtolength{\textheight}{2cm} +\addtolength{\textwidth}{2.7cm} +\addtolength{\oddsidemargin}{-1cm} +\addtolength{\evensidemargin}{-1cm} + +\pagestyle{empty} + +%% タイトル %% +\title{小規模団体の簡易的な情報発信を目的としたクラウド型CMSの提案} +%%「簡易的な」って使わないほういいですかねえ... +%% 著者 %% +\author{広瀬研究室4年 C1200908 小林龍永} + +%% 日付 %% +\date{2023年11月22日} +\usepackage{url} +\usepackage[dvipdfmx]{graphicx} +\usepackage{ascmac} +\usepackage{listings} %コード用 +\begin{document} + + +\twocolumn[ +\maketitle +\begin{center} + {\bfseries 概要} +\end{center} +%% 概要 %% + +\vspace*{2em} +] +\thispagestyle{empty} +%% 本文 %% +\section{背景}\label{haikei} +% 産業省の調査によると地域の小規模店舗の経営は厳しい経営状態(hakusyo参考にする。) +% 地域のたいせつな存在であるため,経営を持続して行っていく必要がある。 +% ユニワークによるとWebサービスを利用する小規模店舗は14.2\%にとどまる。 +% 利用しない・できないりゆうを記載。→知識がない。人手が足りないらへんとりあげる。 + +% ↓ + +% これらの現状をふまえ専門知識の有無を問わない簡易的な操作性・始めるまでの手軽さ(Googleアカウント取得率を提示し行動障壁が少ないことをしめす)・複数人での管理(同時編集の必要性)・余計な情報を載せない(入力項目を絞る事の言い訳をなんとか捻り出す)という要素を兼ね備えたCMSを開発し、小規模団体が手軽にWeb上で情報発信を行えるサービスを提案する。 + +% 冒頭案1.2020年より流行した新型コロナウイルスにより全国で活動自粛措置がしかれた。2023年5月8日,新型コロナウイルスの感染症法上の位置付けが5類に移行し,コロナ対策の大きな節目を迎えた。様々な業界がアフターコロナの社会において経済回復を目指すものの,物価高騰により未だに生活に苦しむ人が多く存在している。 + +% 冒頭案2.飲食店業界では,アフターコロナの社会において回復を目指すものの,物価高騰により依然厳しい状態にある。特に地域の小規模飲食店は物価高騰に加え働き手不足や客不足の課題を抱えており,より深刻な状態にある。経済産業省中小企業庁の「2023年度中小企業白書・小規模企業白書概要案」では,人口密度が低い地域において飲食店を含む小規模事業所は事業所数で高い割合を占めており,地域にとって重要な存在であることが明らかになっている。しかし,政府では小規模飲食店への効果的な施策が示せておらず, + +% 地方において小規模飲食店は地域課題解決を担う極めて重要な存在である。経済産業省中小企業庁\cite{syoukibo}の「2023年度中小企業白書・小規模企業白書概要案」では,人口密度別に見た事業所数の規模別構成割合の調査結果が記載されている。人口密度が低い地域において,中規模事業所は18.3\%,大事業所は0.4\%,飲食店を含む小規模事業所は81.3\%と割合の過半数を占めており,地域を支える重要な存在であることが明らかになっている。しかし,物価上昇や客不足の問題により,経営存続ができず小規模飲食店がどんどん閉業しているのが現状である。そこでこれらの課題の原因の一つとしてインターネットを活用した集客ができていないのではないかと考えた。株式会社ユニワークが運営する飲食店お助けチームが小規模飲食店経営者を対象に実施した「ネット活用に関する意識調査」では,ウェブ集客 + +飲食店業界は,アフターコロナ(以下,COVID-19)の社会において回復を目指すものの,物価高騰により依然厳しい状態にある。特に小規模飲食店は,人手不足や集客に課題を抱えている。株式会社ユニワークが運営する飲食店お助けチーム\cite{prtimes}が小規模飲食店経営者を対象に2022年度実施した「ネット活用に関する意識調査」では,COVID-19流行前と比べた現在の店舗売上状況についてのアンケート調査に対して「悪い」「とても悪い」が77.9\%という結果がが出た。店舗の課題についてアンケートを取ったところ,原価高が61.3\%,集客が64.5\%といった結果となり,物価上昇による影響に加え,客不足に陥っている店舗が多いことが明らかになった。近年,インターネット中心の世界となるに伴いWeb集客が主流となっているが,小規模飲食店でウェブ集客を実施している店舗は14.2\%であり,実施しない理由として知識がないこと,人手が足りないこと,理解ができていない,等が挙げられた。これらの調査結果から,ウェブ集客の必要性は感じながらも不安要素を持っている人が多いことがわかる。 + + +また,大学のサークル活動においても関心を示す学生が少なくなってきている。全国大学生活協同組合連合会が全国の国公立および私立の学部学生を対象に2022年度実施した「第58回学生生活実態調査 速報」の調査では,サークルに所属している割合について2019年度は68.1\%だったのにも関わらず,2022年度には58.4\%に減少した。COVID-19流行によりサークル活動の自粛を余儀なくされたことが原因と想定される。サークル所属者を増加させるうえで,活動情報の発信を見直すことが求められると考えた。 +そこで本研究では,小規模団体の課題に寄り添ったCMS\footnote{Contents Management Systemの略称。専門知識がない初心者でも簡単にWEBサイトやホームページの作成・管理・運営ができるソフトウェアシステム。テキストや画像等の特定のデータを入力するだけでWEBページを自動生成することが可能。}を提案し,開発に取り組む。Webを活用しない理由として挙げられた内容を本研究の課題とし,開発したシステムを用いて解決を目指す。 + +% 特に小規模事業者への影響は大きく,規模コロナ流行前の賑わい近年小規模の事業者・学生団体の活動が余儀なくされている。 +%%サークルを入れないと実験で学生に被験者をしてもらう理由にならない気がする。今から飲食店従事者に実験手伝ってーはきびしい... + + + + +%\begin{itemize} +%\item{観光情報の取得はインターネットから。} +%\item{観光者はその土地ならではの体験をしたいと考えている。(実際のデータを示す)} +%\item{体験の中で、公平で適切な評価を求めている。(現地の評価)} +%\item{ジャンルごとの検索機能、現地特化型レビュー機能を実装することにより既存のサイトとの情報の質の面での差別化を図る。} +%\item{eこのサイトは店舗従事者が編集管理することが可能である。} +%\end{itemize} +%山形県の飲食業界は産業大分類別就業人口資料(国勢調査)←これいずれ使いたい +%提案するサイトは,ジャンルごとの検索機能と現地特化型のレビュー機能を実装する。また,サイトの編集管理は店舗従事者が行うことができるようにし,専門的な知識がない者でも簡単にサイトを作成することができるようにCMSを活用する。これにより,旅行者はより地元の視点に基づいた情報を得ることができ,独自の体験を追求することができる。 + +% \section{小規模団体の定義} +% 本研究では第\ref{haikei}章で説明した小規模団体を,表\ref{syoukibo}の通りタイプ別に定義する。 + + +% \begin{table}[h] +% \begin{tabular}{|c|c|c|} +% \hline +% タイプ & 人数 & 規模\\ \hline +% 小規模飲食店 & 10人以下 & 1店舗経営 \\ \hline +% 小規模学生団体 & 25人以下 & インカレではない \\ \hline +% \end{tabular} +% \caption{本研究における小規模団体の定義}\label{syoukibo} +% \label{vol} +% \end{table} + +\section{小規模団体がWeb活用に抱える課題点}\label{kadaiten} + +\ref{haikei}で述べた飲食店お助けチームによる小規模団体へのWeb活用調査の結果を表\ref{kadai}に示す。 + +\begin{figure}[htbp] + \centering + \includegraphics[width=5cm]{../paper/jittai} + \caption{小規模団体がWeb活用に抱える課題点}\label{kadai} +\end{figure} + +本研究では,表\label{kadai}で高い割合を占める「知識がない」「自身の業種業態に適していない」「理解ができていない」の意見を本研究で解決を目指す課題点として定義する。 + + +\section{目的} +本研究では,小規模団体を対象にCMSを用いた簡易的な情報発信が可能なCMSを作成し,\ref{kadaiten}で挙げられた課題点の解決を目的とする。 + +\section{関連研究}\label{kanren} +% \subsection{食べログ} + +% 日本を中心に展開されている,飲食店の情報サイト。一般のユーザが飲食店のレビューや口コミを投稿し,他のユーザと情報を共有することができる。\cite{log}。 + + +\subsection{観光情報サイト構築のためのフレームワークの提案} + +永嶺,奥野らは運営団体の規模によらない効果的な観光情報の発信を支援するためのWebサイト構築フレームワークを作成した。オープンソースCMSのプラグインモジュールとして実装し,既存の観光サイトに対する優位点を示した\cite{naga}。 + +\subsection{観光情報配信のためのコンテンツ管理システムの開発} + +萩原らは観光地の多様なニーズに対すや特性に対応可能な観光情報発信のためにCMSの設計・開発を行い複数観光地における導入可能性について検証した\cite{hagiwara}。 + +\subsection{関連研究の課題点} + +\ref{kanren}で挙げた関連研究により,CMSを用いることで情報発信が容易になり,多様なニーズに対応することのできることが分かった。しかし,ユーザが操作する画面の情報量ツールの使い方を覚える必要がある上に,同時編集が可能ではないため,直感的な操作が可能で複数人で編集することができる機能を取り入れる必要がある。 + + + +\section{本研究での提案} + +本研究では小規模団体の現状や課題点を踏まえたうえで,簡易的な情報発信を行えるCMSを提案する。 +以下の要件定義を満たしたシステムを開発し,実験を行い定量的なデータから本システムの有用性を示す。 + +\section{要件定義}\label{youken} +本システムにおける前提条件と機能要件を以下に示す。 +\begin{description} + \item[前提1]専門知識の有無に関わらず利用可能である。 + \item[前提2]小規模団体の責任者または広報担当者を対象とする。 + % \item[前提3]ブラウザはGoogle Chromeを使用する。 + \item[前提3]編集作業はGoogleスプレッドシートとGoogleドライブで完結する。 +\end{description} + +\begin{description} + \item[要件1]ユーザにテンプレートを配布するメール送信機能 + \item[要件2]Googleスプレッドシートからデータを読み取る機能 + \item[要件3]Googleスプレッドシートから取得したデータをもとに動的にWebページ更新する機能 +\end{description} + + +\section{システム設計}\label{sekkei} + +\ref{youken}をもとに、システム設計を行う。本システムは\ref{flow}のフローを行うものである。機能要件別の説明を以下に示す。 + +\begin{figure}[htbp] + \centering + \includegraphics[width=7cm]{../paper/flowzu.pdf} + \caption{メールアドレス登録からWebページ作成までの流れ}\label{flow} +\end{figure} + +\subsection{メール送信機能の設計} + +ユーザが作成したいコンテンツの種類を選択し、メールアドレスを入力することで指定のメールを送信する機能を設計する。 + +\subsection{Googleスプレッドシートのデータ処理の設計} + +以下の機能を設計する。 +\begin{itemize} + \item Googleスプレッドシートのデータを取得する関数を作成し,セルや範囲からデータを抽出する機能の設計 + \item 取得したデータをJavaScriptと連携する機能 +\end{itemize} + +\subsection{動的なWebページ更新の設計} + +以下の機能を設計する。 +\begin{itemize} + \item GASと連携し,Googleスプレッドシートのデータを受け取る機能 + \item HTML要素を生成し,動的に内容を変更する機能 +\end{itemize} + +\section{システム開発} + +本システムでは,\ref{sekkei}をもとにシステム開発を行う。 +\subsection{開発環境} +開発環境を以下に示す。 +\begin{itemize} + \item 開発言語 + \begin{itemize} + \item サーバサイド + \begin{itemize} + \item Node.js(version 18.18.2) + \end{itemize} + \item クライアントサイド + \begin{itemize} + \item HTML Living Standard + \item CSS3 + \item JavaScript(ECMAScript 2023) + \item Google Apps Script + \end{itemize} + \end{itemize} + \item Webフレームワーク + \begin{itemize} + \item Express.js(version 4.18.2) + \end{itemize} + \item ライブラリ + \begin{itemize} + \item Nodemailer(version 6.9.7) + \end{itemize} + \item Webアプリケーション + \begin{itemize} + \item Googleスプレッドシート + \item Googleドライブ + \item GMail + \end{itemize} +\end{itemize} + +\subsection{メール送信機能} + +ユーザがテンプレートデータを取得するページである。Node.jsのNodemailerライブラリで実行環境内でSMTPトランスポートを使用する。ユーザのメールアドレスに送付されるすることが可能になる。Express.jsを使用してサーバーサイドの処理を行っている。 + + +\begin{itembox}[l]{mail.js 一部} + \begin{verbatim} + const express = require('express'); +const nodemailer = require('nodemailer'); +const bodyParser = require('body-parser'); +const app = express(); +app.use(bodyParser.json()); +app.use(express.static('public')); + +const smtpTransport = nodemailer.createTra +nsport({ + service: 'Gmail', + auth: { + user: '送信用メールアドレスを記載', + pass: 'アプリパスワードを記載' + } +}); + \end{verbatim} + \end{itembox} +\subsection{Googleスプレッドシートのデータ処理機能}\label{json} + +Googleスプレッドシートに書き込まれたテキストや画像をJSONデータでJavaScriptに送る機能である。getDataFromSpreadsheet関数内で指定されたスプレッドシートからデータを取得している。JavaScriptのHTTPリクエストに対して,JSONデータを生成している。 + +\begin{figure}[bp] + \centering + \includegraphics[width=8cm]{../paper/sscms_mail.pdf} + \caption{メール送信ページ画面}\label{mail} +\end{figure} + +\begin{itembox}[l]{spread.gs getDateFromSpreadsheet関数} + \begin{verbatim} +const app = SpreadsheetApp.openById(spread +sheetId); +const sheet = app.getSheetByName(sheetName); +const value = sheet.getDataRange().getValu +e(); +const data = []; + +for (let i = 1; i < value.length; i++) { + const param = {}; +for (let j = 0; j < value[i].length; j++) { + param[value[0][j]] = value[i][j]; + } + data.push(param); +} +return data; + \end{verbatim} + \end{itembox} + +% \begin{itembox}[l]{spread.gs createJsonResponse関数} +% \begin{verbatim} +% const result = ContentService.createTextOu +% tput(); +% result.setMimeType(ContentService.MimeType. +% JSON); +% result.setContent(JSON.stringify(data)); +% return result; +% \end{verbatim} + % \end{itembox} +\subsection{動的なWebページ更新機能} + +\ref{json}で取得したJSONデータをもとにHTML要素作成する機能である。fetchAndGenerateData関数内でGASに対してHTTPリクエストを送信している。動的にHTML要素を生成しDOMを使用して要素内の内容を変更している。条件分岐により,スGoogleプレッドシートで記載されていない,または内容の条件が満たされなかった場合はHTML要素が生成されない。 + +\begin{figure}[htbp] + \centering + \includegraphics[width=8cm]{../paper/mago} + \caption{生成したWebページ画面} +\end{figure} + +\begin{itembox}[l]{spread.gs createJsonResponse関数} + \begin{verbatim} + async function fetchAndGenerateData() { + const response = await fetch('URL'); + const jsonData = await response.json(); + const nameElement = document.getElementById + ('name'); + const eventContainer = document.getElement + ById('eventContainer'); + nameElement.textContent = jsonData[0].area + ID;//以降省略 + } + window.addEventListener('DOMContentLoaded', + fetchAndGenerateData); + \end{verbatim} + \end{itembox} + +\section{今後の展望} + +今後は本システムを用いた実験を行い,本システムの有用性を定量的な評価で示す。実験では本学学生を対象に,CMSでのWebページ編集操作,アンケート調査を行う。 + +CMSの編集操作では,t検定\footnote{統計学で用いられる仮設検定の手法。小規模なサンプルサイズでの平均値の差を評価するのに適している。}を用いて本システムの有用性を測定する。 +帰無仮説を「10分以内にWebページを作成することはできない」とし,対立仮説を「10分以内にWebページを作成することができる」とする。有意水準は0.5とし,p値を算出して比較する。 + +アンケート調査では表\ref{syoukibo}の内容で調査を行う。 +\begin{table}[h] + \begin{tabular}{|c|c|} + \hline + Web活用課題点 & アンケート内容\\ \hline + \hline + 理解が難しい & 直感的に扱うことができたか \\ \hline + 専門知識がない & 専門知識は必要だと感じたか \\ \hline + 業種業態に適していない & 実際に利用したいと感じたか \\ \hline + + \end{tabular} + \caption{課題・アンケート対応表}\label{syoukibo} + \label{vol} + \end{table} + +\begin{thebibliography}{5} +\bibitem{hakusyo}経済産業省中小企業庁. 2023年度版中小企業白書・小規模企業白書概要案. 2023-4-4.p30-35. (参照日 2023-11-10). +\bibitem{prtimes}株式会社ユニワーク. "ウェブ集客に取り組んでいる小規模飲食店は14.2\% 外注活用に「知識「手間」「コスト」の壁".PR TIMES.\url{https://prtimes.jp/main/html/rd/p/000000010.000047493.html}, 2023-1-20. (参照日 2023-11-10). +% \bibitem{word}WordPress.com.``WordPress''.\url{https://wordpress.com},(参照 2023-08-09). +% \bibitem{log}``食べログ''.\url{https://tabelog.com},(参照 2023-05-23). +\bibitem{hagiwara}萩原勇一,川本裕幣,市川尚,窪田諭,阿部昭博. 観光情報配信のためのコンテンツ管理システムの開発. 研究報告情報システムと社会環境(IS).2012-IS-122巻. 1号. p1-8. (参照 2023-10-30). +\bibitem{naga}永峰和弘,奥野拓. “観光情報サイト構築のためのフレームワークの提案”. (最終更新2022-06-29). \url{https://irdb.nii.ac.jp/01406/ 0005253530}, (参照2023-5-25). +% \bibitem{shop}産業創造振興課.``山形県産業の現状''.(2022-06).\url{https://www.pref.yamagata.jp/documents/30862/08_sankoushiryou.pdf},(参照 2023-08-03). + +\end{thebibliography} +\end{document} \ No newline at end of file