69
73

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.

PythonでQRコードが自動発行される顧客データベースを作ってみる

Last updated at Posted at 2020-01-12

##クリーニング屋さんへ行った

先日、近所のクリーニング屋さんに嫁さんの指示のもと服を出しに行きました。

お正月明けの土曜日。

おそらく一番お客さんが来るであろう日。

なのにそこには、パートのおばちゃんが一名。

image.png

お客さんはじゃんじゃんやってくる。

まあ、そうだよね。

そして、お客さんの対応をする後ろでりーんりーん。。ってめちゃくちゃ電話鳴っとるやないかーい。

でも忙しすぎて電話取れない。。

##人間は誰しもはマルチタスクが苦手

人間、誰しもあれもこれもいっしょにやることはできません。

image.png

そもそもこれって店のオーナーや、店長さんのシフトミスでは??

こんな状況をシステム的な改善で対応できないか考えてみました。

前回の記事でQRコードがPythonで簡単に発行できるよ。という記事を書いたので、それの応用編。

参照:PythonでQRコード作成。定期券発行の際に毎回同じこと書いて、並びたくない。。

##やりたいこと

・クリーニングができた段階でオプションで電話もしくはメール、SMSするサービスをつける。
(全員には無理だろううざいから、あくまでオプション)服にQRコードをつけてスマホでかざすとメール、SMS,電話でお客さんにコンタクトできるようにする。

・お客さんの情報を登録した時点で、QRコードが自動発行されるようにする。シンプルな管理を。

スクリーンショット 2020-01-12 15.12.34.png

##実行環境

Python 3.7.6
macOS Mojave 10.14.6

##ライブラリをインポート

最初に必要なライブラリをインポート。(入っていない場合はpipでインストール)

・QRコード作成のためのqrcode
・顧客登録時の日時を入れるためにdatetime
・CSVによるデータベース作成のためのcsv

customerdata.py
import qrcode
import datetime
import csv

##顧客登録時に必要な情報を入れる

顧客データベースに必要な情報を聞くように設定。
メールやSMS、電話ができるように必要情報を聞きます。
*登録時刻がデータベースに登録されるように設定。

customerdata.py
name=input('氏名は?')
address=input('住所は?')
age=input('年齢は?')
tel=input('電話番号は?')
mail=input('メールは?')

#日時、時刻がデータベースに登録されるよう設定
dt_now=datetime.datetime.now()
dt=dt_now.strftime('%Y年%m月%d日 %H時%M分')

##QRコード作成

QRコードは氏名、電話番号、メール、住所、登録日時が出てくるように設定。
自動発行されるimgファイルの名称はあとからテキスト検索(氏名、電話番号で)できるように本人の氏名と電話番号で出力します。

customerdata.py
img=qrcode.make( ' 電話番号: ' + str(tel) +'メール: ' +str(mail)+'氏名:'+str(name)  + '住所:'+ str(address)+'作成日時:'+ str(dt))
img.save(str(name)+str(tel))

#QRコードの名称はあとからテキスト検索できるように本人の氏名と電話番号で登録

##データベース登録

CSVに情報を登録。(customer_data.csv)

customerdata.py

with open('customer_data.csv','a') as f:
    writer = csv.writer(f)
    #次の行は初回登録のみ。2回目以降の登録時はコメントアウト!!
    writer.writerow(['氏名','年齢','住所','電話番号','メール','登録日'])
    writer.writerow([str(name),str(age),str(address),str(tel),str(mail),str(dt)])
    f.close()
  

コマンドラインで実行します。

commandline
(kyoto) MacBook-Air% python3 customerdata.py
氏名は?田中たろう
住所は?京都市A 町B通り
年齢は?40
電話番号は?090-000-0000
メールは?tanaka@gmail.com

データベースにはこんな感じで登録。

スクリーンショット 2020-01-12 11.48.43.png

同時にQRコードが自動発行されます。
スクリーンショット 2020-01-12 11.50.14.png

iPhoneにかざしてQRコードを読み込むと情報がでてきます。

IMG_2287.PNG

##ソースコード

customerdata.py


import qrcode
import datetime
import csv

name=input('氏名は?')
address=input('住所は?')
age=input('年齢は?')
tel=input('電話番号は?')
mail=input('メールは?')


dt_now=datetime.datetime.now()
dt=dt_now.strftime('%Y年%m月%d日 %H時%M分')

img=qrcode.make( ' 電話番号: ' + str(tel) +'メール: ' +str(mail)+'氏名:'+str(name)  + '住所:'+ str(address)+'作成日時:'+ str(dt))
img.save(str(name)+str(tel))


with open('customer_data.csv','a') as f:
    writer = csv.writer(f)
    #次の行は初回登録のみ。2回目以降の登録時はコメントアウト!!
    writer.writerow(['氏名','年齢','住所','電話番号','メール','登録日'])
    writer.writerow([str(name),str(age),str(address),str(tel),str(mail),str(dt)])
    f.close()

##いろいろ応用できそう

データベースの作成とQRコードの自動発行はほかにも色々応用できそう。
出前とか、痴呆老人の徘徊防止とか、アレルギーや薬剤の禁忌情報とか。

こんな感じで使えそうという拡張性と発展性のあるコメントをいただけると嬉しいです。

スクリーンショット 2020-01-12 15.12.34.png

2021年1月3日追記:Git Hubにコードを格納しました。

69
73
0

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
69
73

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?