ENGINEER BACKBONE

プログラミングで学んだ内容の備忘録

割り勘シェアハウス ポートフォリオ解説

はじめに

はじめまして、転職活動中の大木と申します。

記事を読んで頂き、ありがとうございます。

 

この記事では、ポートフォリオとして利用している

「割り勘シェアハウス」の概要について、お話させて頂きます。

 

ポートフォリオのURL

http://ikizama-design.com/demo01/

http://ikizama-design.com/demo01/login.php

 

デモ用のアカウント(所属グループも用意済)は、

ログイン画面から

ID:demo01@gmail.com

PASS:demo01

で入れます。

 

一般公開をする場合、外部から互いのユーザーが覗けないように

パスワード機能を備えた、グループの追加/選択機能が必要ですが、

現在は未実装の為、最初から用意された1グループ内での運用に

機能を限定しています。

 

主な機能

PHPを用いた、ユーザー管理に関する機能

・ユーザー新規登録機能

・ユーザープロフィール編集機能

・ユーザーログイン/ログアウト機能

・ユーザーパスワード変更機能

・ユーザー退会機能

 

PHPを用いた、会計の割り勘に関する機能

・割り勘申請機能(する側/される側)

・割り勘一覧表示機能

・割り勘詳細表示機能

・割り勘月間集計機能

・割り勘グラフ表示機能

 

ポートフォリオの概要

【機能】

スマホやPC上の入力により、割り勘の積算/集計を行う

 

【目標】

・月間数十回以上発生する、料理の食品・調味料や、

公共場の清掃用品・消耗品代の清算を「みなし金額」として

積算/集計することで、割り勘の清算回数を削減する

 

【目的】

共同生活における食材や消耗品を入居者同士で

割り勘する場合に発生する、特有の課題を解決する

 

 

何故作ろうと思ったのか

 

共同生活では、一緒にご飯を作って食べたり、

消耗品を買ったり、住人や外部の人を呼んでパーティーをしたりと、

日々細かい出費が色々な人の財布から発生する機会は多いです。

 

しかし、実際に住んでみて、会計上の様々な課題を感じます。

 

1.面倒臭い

わずか数百円の金を毎回小銭で割り勘をする場合、

4人や5人で均等に割り勘をすることは現実的では無いですし、

かける労力や工数を考えても、現実的ではありません。

 

すると当然、売掛金や買掛金のような

「みなしの収支」が色々と発生し、処理が面倒になります。

 

割り勘シェアハウスを使うと、金の直接の受け渡しをせず、

「みなしの収支」を一ヶ月かけてサーバー上で積算していく為、

直接お金の受け渡しをする時間は、月一回に削減されます。

 

2.後から頼み辛い

仮に商取引をする際、基本的には必ず自分から価格を提示し、

前払いで一括でお金を貰うのが、一番理想的な流れです。

 

何故かというと、お金を請求する話を

相手に切り出すのは、誰にとっても嫌な事だからです。

 

割り勘を都度行うということは、小さな金額と言えど、

毎日毎日、そういう生々しい金の話を切り出す空気を

何度も他の住人に味合わせてしまうことになります。

 

割り勘シェアハウスを使うと、月締めで受け渡しをするまでは

メンバーがお金のことを常時頭の中で考える必要が無くなるので、

お互いに気を遣わせる要因を減らして生活をする事ができます。

 

3.ざっくりとした会計になる

私は現在シェアハウスに入居していますが、

入居して最初の週に、上記のリスクを感じ、

最初の2カ月間、全ての食費を最初に自分が負担して、

後日まとめて割り勘をしようと試みました。

 

しかし、やはり全てを集計するのは面倒だったので諦め、

結局大体の金額をざっくりと支払うことになりました。

 

実際にやってみて思いますが、あれは誰が多く払った、

これは誰が多く払ったなど一々覚えるのも億劫になります。

 

ただでさえ、年代も性格もバラバラなメンバーが集まって

共同生活をしている以上、お金の話で不信感を募らせたり

揉めたりすることは、極力無くしたいものです。

 

割り勘シェアハウスを使えば、少なくとも金銭面では

クリーンな管理ができるので、風通しが良くなります。

 

4.「支払う/支払ってもらう」という構図が明確だと互いに気を遣う

 

年長者としては本来、一回り以上若い子に飯代を払わせること自体

有り得ないことだと思うので、外食や居酒屋で飲むとなったら

毎回全額払うのが筋だろうと思っています。

 

ですが、日々の食事の場合、毎回「驕るよ」「払うよ」と宣言したり、

逆に金額を伏せて淡々と率先して一人の人間が金を負担し続ける構図は、

ただの恩着せがましい行為になり、驕られる側が余計に気を遣ったり、

割り勘の主導権を握る人の立場を強めてしまう可能性があります。

 

ですが、このサイト上で割り勘をする場合、

みなし収支の移動は全て端末上で行う為、

 

・割り勘の申請を負担者がしないだけで、実質的な驕りが成立する

・相手に何かを負担してもらうこと自体を拒否して

 会計をお返しする意思表示も、支払い申請機能を使ってサイト上で行える

 

という点から、同じ結果でも気持ちの上での摩擦を減らすことができたり、

お金に関するコミュニケーションの幅を広げられないかと思っています。

 

 

住んでいる家のメンバーに協力してもらい、

試験的に実験している段階なので、実用性はまだ何とも言えませんが、

このサイトが、上記の課題解決に少しでも繋がればという可能性を探ってます。

 

詳細機能

1.中間テーブルを用いた、割り勘申請後のメンバー毎積算/集計機能の実装

2.割り勘一覧画面では、グループ内に閲覧を制限する機能、

 ページネーション機能を実装

3.マイページ上で集計結果をグラフで一覧表示する機能

4.ユーザー登録・削除・編集、パスワードリマインダー、退会機能

5.セキュリティ対策(SQLインジェクション対策、サニタイズ

 

制作にかかった時間

制作前準備

・機能の洗い出し:30分

・画面遷移図作成:30分~1時間

・テーブル設計:1時間

 

ワイヤーフレーム

ゼロベースの画面書き起こし:1時間~1時間半

コピペ→微調整で済む画面:15分

 

合計約12時間

 

HTML/CSS書き起こし

ゼロベースの画面書き起こし:2時間前後

コピペ→微調整で済む画面:30分~1時間

合計約15~20時間

 

PHPによる機能搭載

・一般的な機能の搭載:約50時間

・固有の機能のコーディング:約100時間

(作業時間と日数からの概算)

合計約150時間

 

 

制作の流れ

1.制作前準備

・必要な機能の洗い出し

マインドマップ

・画面遷移図作成(Photoshop

ワイヤーフレーム作成(Photoshop

・テーブル設計

 

2.制作

・HTML/CSS書き起こし

・必須機能のページ(会員登録、ログイン、パスワード変更、商品登録)を作成

・マイページと商品一覧ページを作成→欲しいデータを抜いて表示の繰り返し

 

3.デバッグ

・各種エラーログの端末&ログファイルでの表示→ググって検索

・全ページの条件分岐を全て辿り、全エラー発生要因のフラグを立てて挙動確認

・実際に使ってみてもらい、想定外のエラーが無いかを確認

 

 

今後の課題

 

機能的課題

・入力後データの再編集機能

・グループの新規作成・閲覧と加入のパスワード制限機能

・各年月毎のデータ抜粋機能

・数字入力時の、自動入力機能や電卓表示機能

・コードのリファクタリングによる高速化

CSS設計による保守性向上

SQL文/条件分岐や関数のリファクタリング

・JS各機能による操作の簡略化

 

技術的課題

・sassによるCSS運用

・レスポンシブ対応

CSS設計

PHPフレームワークの採用

 

スペック

HTML5

・CSS3

・jQuery2.2.2

・ローカル環境 MAMP/MySQL

・本番環境 MySQL