208
111

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【おうちハック】開発合宿で3人でシェアハウスの鍵管理システムを作った【チーム開発】

Last updated at Posted at 2020-01-04

こんにちわ。れとるときゃりー(@retoruto_carry)です。

私が住んでいるシェアハウスの同居人たちで、去年の7月に開発合宿に行きました。

そのときに @wamisnet@fukubaka0825 と作った、シェアハウスの鍵管理システムが先日完成したので紹介します。

全体の流れと、自分の担当した領域について解説します。

作ったもの

鍵を開けるデバイス

@wamisnet@fukubaka0825 が担当

Image

こちらに関して、各自の記事があるので、後ほど是非合わせてお読みください!

Raspberry pi とGoとMackerelでシェアハウスの運用しやすい鍵システムを作る - Qiita
Suicaで開けられるスマートロックを作ってみた - Qiita

ICカードの管理システム

私が担当しました。
本記事で詳しく解説します

  • ユーザー(住人)を追加
    Image

ICカードを追加
Image

ICカードと住人の削除もできます

システム構成図

image.png

開発のきっかけ

ファイル名
  • 「いちいちスマホアプリで操作するのがめんどくさいよね」
  • 開けるの5秒くらいかかります
  • 「ICカードで入れたら、楽じゃね?」
  • 「お、それ作ろうぜ」

何をしたか

仕様の決定

家の中で雑談から、企画と設計がその場のノリで始まりました。
Image

その場で仕様を紙に書きはじめました。

3人ですり合わせていきました。
Image

3人のイメージを合わせるために絵とかも書いています。

見にくいので、雰囲気だけ感じてくださいw

DB設計

Image

画面設計

このあたりは私の得意領域なので、私が中心になって考えたました。

Image
Image
Image
Image

途中で出前でピザを注文したりして、楽しかったです。
Image

家に貼ってみたらめっちゃ頑張った感ありました。
Image

続きは、一ヶ月後にシェアハウス全体で開催する、開発合宿で行おうということになりました。

開発合宿

箱根でゲストハウスを借りて、3日間行いました。

Image

一日観光したので、作業時間は2日間
Image

自分のやったこと

私の担当箇所

ICカードの情報の管理システムを作りました
Image

できること

  • 住人を登録する
  • ICカードを追加したり削除したりする
  • イベントを発行して、一時的なQRコードの鍵を発行できる(未実装)

構成

  • ラズパイ
  • nginx
  • Laravel
  • Nuxt.js
  • Mysql
  • Unbound

Image

やったこと

インフラを作成

インフラを整えるのに1日半かかりました💦

Unboundを使って、お家DNSサーバーを立てた

作業メモ → お家でラズパイを使ってDNSサーバーを作ってみる

家のwifiに接続しているときは、「key.home」にアクセスすると、ラズパイのサーバに接続するようになります
Image

ラズパイにnginx、mysql、php、laravel、nuxt.jsを入れた

作業メモ → ラズパイでサーバーを立てる

[Image]
(https://gyazo.com/8e2f178cac5fa2ac09a666976a5f769e)
Image

そもそもこのとき、nginxを初めて触ったのでめっちゃ詰まりました。

アプリを作成

アプリは、残り半日で雑に突貫で作りました

設計をもとにAPI(Laravel)を作成
  • APIリソース を使うと簡潔にかけました
  • -rオプションを使うと、Resourcefulなアクションを自動で定義したコントローラーを生成してくれます。
    時短になります。
bash
$ php artisan make:controller HogeController -r
設計をもとにフロント(nuxt.js)を作成

採用技術

  • moment
    • 日付の計算に使用
  • buefy
    • UIフレームワーク

最後はみんなで発表しあって、合宿は終了

Image

感想

  • 開発合宿楽しい
  • チーム開発楽しい

最初に、仕様を決めて、担当範囲を切り分けて、インターフェースを決めておいたのがとても良かったです。
実装中のコミュニケーションがほとんど必要なく、各自が黙々と作業をすすめることが出来ました。

ツイートにも書いてありますが、普段はVPSやAWSなどでサービスを運用しているので、実機で運用するサービスを作ってみたかったのです。
実際に、今現在、シェアハウス内で運用されています。
物理的にものがあると、実感が湧きます。とても満足しています。

今後やりたいこと

  • 適当に作ったせいで、UIがわかりにくいので、ユーザーフレンドリーにしたいです
      • ユーザーやICカードの追加のボタンの位置を調整
      • 説明をトップページに乗せる

ここまで読んでくれた方へ

ここまで読んでくださりありがとうございます。

他のメンバーが自分の担当した領域を解説した記事があるので、是非あわせてお読みください!

@fukubaka0825 【担当】Suica認証、Sesame開錠指示
Raspberry pi とGoとMackerelでシェアハウスの運用しやすい鍵システムを作る - Qiita

@wamisnet【担当】Sesame開錠デバイス作成、ハードウエア
Suicaで開けられるスマートロックを作ってみた - Qiita

いいねやコメント、SNSでの共有等をしてくださると、今後の励みになります。よろしくお願いします。

良かったらツイッター(@retoruto_carry)もフォローしてね

208
111
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
208
111

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?