アドベントカレンダーを作ってみた

Node.js と MongoDB を使ってOpenStreetMapアドベントカレンダーを作ってみました。継続的に利用する(される)かどうかはともかく「オープンベータ」とかいう逃げの言葉を使って公開しています。
例年のちゃんと安定したアドベントカレンダーは Qiita に作成されるので真面目に記事を公開される方はもうしばらくお待ちください。

http://osm.eu-4.evennode.com/

なぜ作ったのか

今まで既存のサーバーサイドプロダクトを設定したり公開したりというのはありましたが、自分で組み上げてみる試みをしてなかったので「ちょっとやってみたかった」というのが一番の動機です。「ちょっとやってみたかった」を「やってみた」に後押しした部分としては次のような感じです。

いわゆるアドベントカレンダーを作成できるサービスとしては QiitaAdventar が有名だと思います(他に既存のシステムを上手く使ったサイトもあります)が、それらのサービスはログインに OpenStreetMap で使っているアカウント以外のアカウントを必要とします。そこで OSM アカウントだけで登録できるアドベントカレンダーを用意したら参加者が増えるかなという思いつきです。
そして大手(?)のQiitaは基本的に「プログラマのための技術情報共有」やその記録を目的としているため、OpenStreetMapマッピングに関する話では記事が非公開にされる可能性もあります。OSM アカウントを作成すると使うことのできる日記機能でその代替もできるんじゃね? っていう思いつきです。

前者で言えば OSM のアカウントを作るような人が GitHub はともかく Twitter にも Google にも Facebook にもアカウントを持っていないということは考えにくいですし、後者で言えば OSM のユーザー日記で記事を書いて Qiita に用意したアドベントカレンダーに登録すれば問題ありません。まさに「やってみたかった」だけの話です。

どう作ったか

昨年から「作りたいな~」とは思っていたものの、そのとき自分の扱える範囲の IT 技術ではどうにもならないだろうと諦めました。今年は早めにその考えを思い出したこともあり、10月に入ってから(遅い)どういった仕組みを使えば作れるかを考え始めました。
フロントエンドとバックエンドの連携させる方法を探していて実は Node.js がそういった仕組みを持っていることを知り(Rails とかもそうかな)、とりあえず Node.js で作れば VPS 上で動かしても PaaS 上で動かしてもいいかなと思いました。

10月7日に Node.js 超入門という本で Node.js に入門して10月16日に evennode に乗せて動かしました。多分動いています。

Node.js超入門

Node.js超入門

なお、「テスト」というものが存在することは理解してますが具体的に何をどう「テスト」すんの?っていう疑問を解決できるサイトを見つけられなかったので手動でできる範囲をなんとか試しただけです。

何で作ったか

環境の話ですね。
Windows 10 Pro 上に nodist で Node.js と npm を入れて VSCode で書きました。MongoDB は Windows Subsystem for Linux 上にインストールし、GitHub や evennode へのプッシュは WSL 上から行っています。
OneDrive 上にコードを置いておいて、会社でも自宅でも編集していました。仕事しろ。

これから

反響があれば evennode の有料プランに切り替えてドメイン取ってSSL化して継続するつもりです。
金銭面もまぁ心配ではありますが、evennode の一番安いプランは $6/mo くらいですしドメインもまぁなんとかなるでしょう。
需要が心配ですね、需要。あとはコードに致命的な問題がないこととか、GitHub で公開していてもいただいたフィードバックをちゃんと反映できるかもわかりません。

というかコードの中にデバッグで使ってたアレコレが残ってますね。