KITA Eng.

北海道でサーバー技術者として歩み出したひとが綴るblog。

PyCon JP 2019でポスター発表しました——「Djangoで業務改善 〜子どもの福祉・教育に関わるNPOでの挑戦〜」

PyCon JP 2019でポスター発表しました。 諸般の都合によりがっつりポスターではなく、スライド資料をA3で8枚印刷したものを掲示しました。 (Slideshareで、掲示したスライド+αのものを公開しています)

www.slideshare.net

技術的なこと

今回の発表ではあまり技術的なバックグラウンドの事を盛り込んでいなかったので、いくつか技術的な部分をご紹介しておきます。

フロントエンド

Djangoのデフォルトテンプレートエンジンを使用し、CSSフレームワークとしてBootstrap3系を使用しています。
活動予定のカレンダー表示には、FullCalendarを使用しています。

プロジェクト構成

基本的に大まかな機能単位で、アプリ分割しています。
アプリを横断するようなものは、ひとまずcoreアプリにまとめる方針としています。
これらを一つのDockerコンテナの中で稼働させています。

.
├── Dockerfile
├── Dockerfile-development
├── bbs
├── chiebukuro
├── contribution
├── core
├── enquete
├── entrypoint.sh
├── gakubora_report
├── juken
├── kacomen
├── kacotabu
├── kacotam
├── manage.py
├── news_banner
├── requirements.in
├── requirements.txt
├── scheduler
├── sensei
├── static
├── sutasapo_report
├── tasks.sh
└── yurukichi

2017年の初期リリースから、適宜要望に応じて機能を追加し続けてきたので、だんだんカオスになってきています......。

RDB

RDBには、PostgreSQLを採用しています。特に深い採択理由はありません。

未来図の実現に向けて

未来図に向けて、ポータルの改修作業をちまちまと進めています。 その中で、単純に外に出せるcore部分を以下で順次公開しています。 github.com

ポータルで使っている、Djangoからチャットワークに通知したり、タスク追加したりするためのユーティリティは、django-chatworkとして、PyPiで公開しています。Issue、プルリク大歓迎です!!

pypi.org

github.com

FAQ

Q: 2015、2016年頃Djangoでゼロから作るのしんどくなかったですか?

A: Railsには浮気できない訳がありまして...、やり抜きました。bottle.pyを途中少し触って雰囲気をつかんだ感があります。

Q: インフラどうしてるんですか?

A: Cloud Garage の Develpper Assist Plan(開発者支援の無償利用プラン)を利用してきました(が、サービス終了を迎えるので、IDCFクラウドにお引っ越しします。月額3千円ほどでの構成になる予定)。

Q: サービスとして提供しているのですか?

A: 今はまだしていません。上述の未来図の通り後々にはしていきたいと思っています。コアのソースはOSSとして、カスタマイズや運用保守周りをサポートするようなモデルを想定しています。

Q: 実際どのくらい使ってますか?

A: 「もう無い頃には戻れない」というぐらいに使ってます。特に出欠集約周りは、自動のリマインドや月次集計レポート通知など人力から自動化された部分は、事務作業軽減に大きく寄与しています。