Pythonで作る。パスワードマネージャ。基本設計編

この記事の開発環境

  • バージョン: Python3.8
  • IDE: spacemacs
  • ライブラリ: まだ不明
  • 環境構築: pyenv、pyenv-virtualenv
  • OS: macOS

変更履歴

  • 新規作成:2020/02/15

パスワードマネージャの要件定義

  1. アカウントIDとパスワード、メモの3点セットで管理できる事。
  2. 管理機能はCRUDが満たされる事。
  3. アカウントIDとパスワードはボタン1つで、それぞれ1つがコピーできる事。
  4. アカウントI Dとパスワードはペーストできる事。
  5. アプリケーションはスタンドアローンであること。
  6. アプリケーションはデスクトップ上でのみ動作する事。
  7. アプリケーションはGUIによるインタフェースを有している事。
  8. パスワード、アカウント名生成機能がある事。
  9. ファイルはCSV、PDF、Excel形式で出力できる事。
  10. csv形式のファイルによるインポート機能がある事。
  11. アプリケーション自体にログイン、ログアウト機能がある事。
  12. 情報はアカウントごとに管理できる事。

といった要件を頂戴(思いつき)しましたので。こんな感じのものを作ってみます。アプリ自体にアカウント機能を持たせるにはどうしたらいいのか今のところ不明。

パスワードマネージャの基本設計

システム機能を一覧にしてみる。

  • ログイン画面(起動後の画面)
  • アカウント一覧画面
    • CRUDボタン
    • コピーボタン
  • アカウント追加画面
  • アカウント編集画面
  • アカウント削除画面
  • ファイル出力画面
    • 形式選択ボタン

システム機能定義書

ログイン画面: システム機能定義書

ログイン画面の機能概要:アプリ起動後の画面。アプリアカウントIDとアプリアカウントPWを入力しログインボタン押下でアカウント一覧画面へ遷移する。ログアウトボタンが押されればログアウトし、ログイン画面に返ってくる。アプリの終了は基本的にログアウトしログイン画面から終了ボタンを押した時に起こる。

  • ログイン画面
  • アカウント機能
  • ログイン/ログアウト機能

処理仕様

ログイン画面
  • IDとPWの入力フィールド
  • 決定ボタン
  • アプリ終了ボタン
アカウント機能
  • アカウント固有のID
  • アカウント固有のPW
  • アカウントに紐づいたパスワード情報
ログイン/ログアウト機能
  • ログインでアプリ機能開始
  • ログインでアカウントに紐づいたパスワードテーブルを呼び出し、表示する
  • ログアウトでログイン画面へ戻る

アカウント一覧画面: システム機能定義書

アカウント一覧画面の機能概要:ログイン画面から遷移してくる。この画面からアカウントの作成、参照、更新、削除ができる。いわゆるCRUDはそれぞれのボタン押下後に別の専用の小画面を出現させる。IDとPW、メモは非活性だがコピーボタンでクリップボードにコピーができる。スクロールができる。画面が最大化、最小化できる。

  • アカウント一覧画面
  • 共通メニュー(最上部)
  • アカウント情報(タイル状)
  • 生成ボタン(共通メニュー)
  • 作成ボタン(共通メニュー)
  • 出力ボタン(共通メニュー)
  • 更新ボタン(タイル)
  • 削除ボタン(タイル)
  • 詳細ボタン(参照、タイル)

処理仕様

アカウント一覧画面

上部に共通メニューと各ボタンを配置。その下に横長のタイル状のアカウント情報部配置。ログインしているアカウントに紐ずく情報のみ表示する。

共通メニュー

共通メニューにはボタンが並ぶ。ログアウトボタン、作成ボタン、生成ボタン

アカウント情報

横長のタイル状。縦長に配置していく。ID、PW、メモを表示。非活性で入力や削除はできない。コピーボタンでクリップボードにコピーできる。更新ボタン、削除ボタン、詳細ボタンを要する。

アカウント追加画面: システム機能定義書

カウント追加画面機能概要:アカウントを追加する。

処理仕様

アカウント一覧画面から追加ボタン押下後に画面遷移する。IDとPW、メモの入力フィールド。決定ボタン。

アカウント編集画面: システム機能定義書

アカウント編集画面機能概要:アカウント情報を変更できる。

処理仕様

アカウント一覧画面から更新ボタン押下後に画面遷移する。IDとPWとメモを編集可能。保存ボタンで更新処理。削除ボタンで削除処理。OKボタンでウィンドウを閉じる。

アカウント詳細画面: システム機能定義書

アカウント詳細画面機能概要:アカウント情報の詳細を参照できる。

処理仕様

アカウント一覧画面から詳細ボタン押下後に画面遷移する。IDとPWとメモの他に初回作成日時、変更履歴がみれる。

ランダム文字列生成画面: システム機能定義書

ランダム文字列生成画面機能概要:IDやPWのために文字列を生成する。

処理仕様

アカウント一覧画面、アカウント作成画面から生成ボタン押下後に新規ウィンドウを作成する。

  • 最小6文字、最大32文字
  • 英字、数字、記号、大文字、小文字を指定
  • 先頭文字の指定

出力画面: システム機能定義書

出力画面機能概要:アカウント情報を出力する。CSV、PDF、Excel形式。

処理仕様

アカウント一覧画面の共通メニューの出力ボタンから出力ボタン押下後に新規ウィンドウを作成する。形式を選択し決定ボタンを押す。出力場所を選んでOKを押して出力する。

コメントする