SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
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.

Contenu connexe

Similaire à 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
 

Similaire à 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回勉強会
 

Dernier

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Dernier (9)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

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