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年度分の過去問
解説映像授業
Node.jsで学生向けe-learningサイトを作った話
開発言語
PHPで作成
利用フレームワーク
・Fuel PHP
コンテンツを増やす!!
2013年8月24日
中学生、高校生向けコンテンツ開始
http://www.studytown.jp
http://jh.studytown.jp
http://hi.studytown.jp
Node.jsで学生向けe-learningサイトを作った話
Node.jsで学生向けe-learningサイトを作った話
Node.jsで学生向けe-learningサイトを作った話
サーバ構成 AWS
・EC2
・RDS
・SES
・Elasticache
・S3

・Route53
・DynamoDB
・VPC
・VPN Gateway
etc
Node.jsで学生向けe-learningサイトを作った話
サーバ
Webサーバ スタティック及びProxy
・nginx
ログ収集
・Tresure Data
node
・0.10.x
Node.jsで学生向けe-learningサイトを作った話
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

PDF
Sola勉強会 vagrant入門 ver.2
PDF
好感度をアップさせるための表情トレーニング【男性編】 先生:内田 佳代
PDF
LOVOTの気持ちをチラ見する体験の作り方@UX JAM Online#04
PDF
【再放送】生放送の前にJQueryについて復習しよう!
PDF
レスポンシブなサイトにあっという間にjQueryを実装する 先生:田中 晶子
DOCX
MILLER_WILLIAM_THE VALUE OF UNDERSTANDING COSTS IN HEALTH CARE_HCM598A2
PPT
The oberoi hotels
PPTX
PPT on Oberoi Hotels.
Sola勉強会 vagrant入門 ver.2
好感度をアップさせるための表情トレーニング【男性編】 先生:内田 佳代
LOVOTの気持ちをチラ見する体験の作り方@UX JAM Online#04
【再放送】生放送の前にJQueryについて復習しよう!
レスポンシブなサイトにあっという間にjQueryを実装する 先生:田中 晶子
MILLER_WILLIAM_THE VALUE OF UNDERSTANDING COSTS IN HEALTH CARE_HCM598A2
The oberoi hotels
PPT on Oberoi Hotels.
Ad

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