SlideShare a Scribd company logo
1 of 36
Download to read offline
Node.jsで学生向け
e-learningサイト
を作った話
東京Node学園祭2013
2013/10/26

吉田徹生 @teyosh
自己紹介
名前:吉田徹生 よしだ てっせい
twitter:@teyosh
facebook:https://www.facebook.com/teyosh
所属:(株)シンドバッド・インターナショナル
2013年7月からJOIN
アジェンダ
・サイト紹介
・サーバ構成
・利用しているパッケージ
・質疑応答
サイト紹介
スタディ・タウン
2012年10月23日公開
中学受験生向け過去問映像授業
http://chugakujuken.studytown.jp/
サイト紹介
首都圏110校
平成22年度〜平成25年度分の過去問
解説映像授業
開発言語
PHPで作成
利用フレームワーク
・Fuel PHP
コンテンツを増やす!!
2013年8月24日
中学生、高校生向けコンテンツ開始
http://www.studytown.jp
http://jh.studytown.jp
http://hi.studytown.jp
サーバ構成 AWS
・EC2
・RDS
・SES
・Elasticache
・S3

・Route53
・DynamoDB
・VPC
・VPN Gateway
etc
サーバ
Webサーバ スタティック及びProxy
・nginx
ログ収集
・Tresure Data
node
・0.10.x
APサーバ
まずはフレームワーク(ミドルウェア)を探す
候補として
flatiron
Matador
express
flatiron
http://flatironjs.org/
nodejitsu社で公開されている
サーバ側とクライアント側で同一フレームワークで
作成
・情報が少ない
・選定時はアップデートが頻繁だった
Matador
http://obvious.github.io/matador/
Twitterを作成したObvious社が作成
Connect.jsを利用
ビューにはSoyNodeを利用している
・選定時は残念ながらベータだった
SoyNode
Closure Templates
GoogleのClosure toolsの一つ
https://developers.google.
com/closure/templates/
express
ほぼ、デファクト・スタンダード
情報豊富で調べやすい
ミドルウェアが豊富で設定しやすい
・expressで決定
利用パッケージ
mysql :
"MySQLに接続"
connect-memcached :
"セッションをElasticacheで共有"
connect-ltsv-logger :
"connectのログをltsvで出力"
connect-ltsv-logger
express2.xに最適化されている
addressの取得で落ちる
proxy利用のため、keep-aliveで対処
X-Forwarded-Forがres.getHeaderではなくてreq.
getに変更
利用パッケージ
stream-file-archive :
"ログの吐き出しをストリームでファイルに書き込み"
winston :
"ログ出力を制御"
ejs :
"View Templateをejsを利用"
stream-file-archive
Logをstreamで吐き出して、それをファイルに書き
込んでいます
logrotateができるようになる
利用パッケージ
validator :
"入力バリデート用"
config :
"$NODE_ENVによりconfigファイルの読み替え"
async :
"非同期処理を簡単に扱います"
async
callback地獄からの開放
DBへの接続がメインで利用
async.series();
async.each();
async.parallel();
利用パッケージ
dateformat :
"日時のフォーマットを簡単に整形"
moment :
"日時のパースもできるスグレモノ"
lodash :
"ライブラリとして利用、9割配列処理で利用"
利用パッケージ
pm2 :
"デーモン化、クラスタ起動もお手の物"
browser :
"クッキーを簡単に利用してくれるHTTPClient"
node-uuid :
"uuidを生成"
browser
・クッキーを利用しないといけない場合にとっても
便利
・after();で順アクセスが簡単にできる
利用パッケージ
aws-sdk :
"AWSを利用するため主にS3のSigned URL生成"
ua-parser-js :
"ユーザーエージェントでコードの出し分け"
nodemailer :
"SESでSMTPを利用"
nodemailer
SMTP
SES
Sendmailで簡単に利用できる
・unicodeでの利用がメイン
・Shift_JISやJISで送信にはiconvでゴニョゴニョ
利用パッケージ
"email-templates" :
"メール本文をejsでtemplate化"
"ssh2" :
"SFTPを簡単に利用"
"csv" :
"CSV読み込み"
ssh2
Pure JavaScriptのSSHクライアント
SFTPの利用がNodeで簡単に!!
・keyもuser passも思いのまま
・rmdirはあるのにrmが無い・・・
フロントエンド
バックオフィス系では
AngularJSを利用
Yeomanでひな形作成
AngularJS
・Google主導で開発
・双方向バインディング
・DI
・最近、人気急上昇中!!
・AngularJS Japan User Group募集中
https://groups.google.com/forum/#!forum/angularjs-jp
新卒・中途採用のご案内
システム関連の仕事に興味がある方
  下記までご連絡ください

  Mail career-si@sindbad-int.com
  TEL 03-5468-8835 採用担当 浜園まで
新卒採用イベントもやっております
  『失敗しない就活術と人事の本音・裏側』
11/6(水)、11/9(土) 18:00~20:30
@当社 渋谷オフィス
 ◎参加資格:現大学 3年生(15新卒採用生)
 TEL 03-5468-8835 採用担当 浜園まで

©2013 SINDBAD INTERNATIONAL CO.,LTD. ALL Rights Reserved.

More Related Content

Similar to Node.jsで学生向けe-learningサイトを作った話

ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-Nozomi Tsujii
 
CoderDojo福井の取り組み
CoderDojo福井の取り組みCoderDojo福井の取り組み
CoderDojo福井の取り組みtecking
 
MOOCのこれまでとこれから(世界の動向と日本の課題)
MOOCのこれまでとこれから(世界の動向と日本の課題)MOOCのこれまでとこれから(世界の動向と日本の課題)
MOOCのこれまでとこれから(世界の動向と日本の課題)Katsusuke Shigeta
 
Chrome Packaged Apps」の作り方を学んでみた  その1 ~ Chrome Packaged Appsって何ができるの? ~
Chrome Packaged Apps」の作り方を学んでみた   その1 ~ Chrome Packaged Appsって何ができるの? ~Chrome Packaged Apps」の作り方を学んでみた   その1 ~ Chrome Packaged Appsって何ができるの? ~
Chrome Packaged Apps」の作り方を学んでみた  その1 ~ Chrome Packaged Appsって何ができるの? ~Hiroki Ishizuka
 
勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bgDaisuke Kasuya
 
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...Developers Summit
 
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指してHaruo Sato
 
第20回 大学教育研究フォーラム 追加資料
第20回 大学教育研究フォーラム 追加資料第20回 大学教育研究フォーラム 追加資料
第20回 大学教育研究フォーラム 追加資料内田 啓太郎
 
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejsYusaku Kinoshita
 
Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会ko ty
 

Similar to Node.jsで学生向けe-learningサイトを作った話 (11)

ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
ただ勉強するだけの落とし穴-私が考えるワンランク上の自分になる3つの方法-
 
CoderDojo福井の取り組み
CoderDojo福井の取り組みCoderDojo福井の取り組み
CoderDojo福井の取り組み
 
MOOCのこれまでとこれから(世界の動向と日本の課題)
MOOCのこれまでとこれから(世界の動向と日本の課題)MOOCのこれまでとこれから(世界の動向と日本の課題)
MOOCのこれまでとこれから(世界の動向と日本の課題)
 
Chrome Packaged Apps」の作り方を学んでみた  その1 ~ Chrome Packaged Appsって何ができるの? ~
Chrome Packaged Apps」の作り方を学んでみた   その1 ~ Chrome Packaged Appsって何ができるの? ~Chrome Packaged Apps」の作り方を学んでみた   その1 ~ Chrome Packaged Appsって何ができるの? ~
Chrome Packaged Apps」の作り方を学んでみた  その1 ~ Chrome Packaged Appsって何ができるの? ~
 
勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg勉強会初心者向け勉強会 Study4bg
勉強会初心者向け勉強会 Study4bg
 
Jquery 140522
Jquery 140522Jquery 140522
Jquery 140522
 
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
 
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
 
第20回 大学教育研究フォーラム 追加資料
第20回 大学教育研究フォーラム 追加資料第20回 大学教育研究フォーラム 追加資料
第20回 大学教育研究フォーラム 追加資料
 
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs非エンジニアが MENstackでWebアプリをつくった話 #nodejs
非エンジニアが MENstackでWebアプリをつくった話 #nodejs
 
Nseg第32回勉強会
Nseg第32回勉強会Nseg第32回勉強会
Nseg第32回勉強会
 

Recently uploaded

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Recently uploaded (8)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

Node.jsで学生向けe-learningサイトを作った話