簡単な顧客管理システムの作成
インストールするCakeは2.9.5
顧客管理システム
仕様書に従い、顧客管理システムを実装していただきます。
基本的なルールは下記になります。
- DBは最低、指示されたテーブルは使用すること
- 仕様書に沿って作成すること
- デザインや細かい言葉は問わない
- ただし、仕様書上注釈が入っているものは実装すること
- 削除機能は論理削除とする
- scaffoldを使用したソースコードでの提出は認めない
- 仕様書以上のものの実装は大歓迎
データベース名
DBの名前は自由です。
ただし、CakePHPの設定は各自で行ってください。
文字コードがUTF-8になっていないと、日本語が文字化けする可能性があるので、注意してください。
テーブル
テーブルは最低、下記の3つをそれぞれの役割に応じて使用してください。
users
ログインユーザーを管理します。
カラム名 | 型 | その他 | 備考 |
---|---|---|---|
id | INTEGER | NULLは許可しない。オートインクリメント | ID |
username | VARCHAR(50) | デフォルトはNULL | ユーザーの名前 |
password | VARCHAR(255) | デフォルトはNULL | パスワード |
role | VARCHAR(20) | デフォルトはNULL | 権限 |
created | DATETIME | デフォルトはNULL | 作成日 |
modified | DATETIME | デフォルトはNULL | 更新日 |
deleted | INTEGER | デフォルトは0 | 削除フラグ |
customers
顧客情報を管理します。
カラム名 | 型 | その他 | 備考 |
---|---|---|---|
id | INTEGER | NULLは許可しない。オートインクリメント | ID |
name | VARCHAR(50) | デフォルトはNULL | 顧客の名前 |
line_type | INTEGER | デフォルトはNULL | 回線タイプ(1: Type-A、2:Type-D) |
contract_type | INTEGER | デフォルトはNULL | 契約タイプ(下記参照) |
agency_id | INTEGER | デフォルトはNULL | 代理店のID |
status | INTEGER | デフォルトはNULL | 契約状況(1:契約中、2:解約済み) |
contract_day | DATETIME | デフォルトはNULL | 契約日 |
created | DATETIME | デフォルトはNULL | 作成日 |
modified | DATETIME | デフォルトはNULL | 更新日 |
deleted | INTEGER | デフォルトは0 | 削除フラグ |
契約タイプは下記の通りです。
- データのみ3GB、データのみ6GB、データのみ10GB
- SMS付き3GB、SMS付き6GB、SMS付き10GB
- 音声通話プラン3GB、音声通話プラン6GB、音声通話プラン10GB
agencies
代理店の名前を管理します。
カラム名 | 型 | その他 | 備考 |
---|---|---|---|
id | INTEGER | NULLは許可しない。オートインクリメント | ID |
agency_name | VARCHAR(50) | デフォルトはNULL | 代理店の名前 |
created | DATETIME | デフォルトはNULL | 作成日 |
modified | DATETIME | デフォルトはNULL | 更新日 |
deleted | INTEGER | デフォルトは0 | 削除フラグ |
仕様書に関して
添付された仕様書を自分のPCにダウンロードして、閲覧してみてください。
顧客管理システムの仕様書
認証とページングに関して
カリキュラムでは触れておりませんが、本課題では認証機能とページング機能を実装していただきます。
CakePHPには、非常に便利なComponentが用意されています。
ぜひ公式ドキュメントを読んで実装してみましょう。
CakePHP公式ドキュメント-シンプルな認証と認証のアプリケーション-
CakePHP公式ドキュメント-ページ制御-
課題
作成が終わり、提出する際は、「crriculum」ディレクトリ直下に「6-1」という名前のファイルを作成し、その中へプロジェクトをコピペしてコミットしてください。
仕様書の画面遷移図で言うと、下記のようにログインと管理ユーザーの部分を作成しましょう。