このアプリは、タスク管理を効率的に行うための次世代のToDoリストアプリです。
- 音声認識
- 音声入力で手軽にタスクを追加できます。
- AIアドバイス
- Gemini APIを使用してタスクの優先順位や効率的なこなし方をアドバイスします。
- Gmail認証
- Gmailによる認証が可能です。
- Gmail連携
- Gmailによる認証を行い、タスクに関するリマインダーをGmailで送信できます。
- タスク管理
- タスクの追加、編集、削除、完了状態の切り替えができます。
- ソート機能
- タスクを期限や作成日でソートできます。
Dockerで環境構築を行い、バックエンドにFlaskを使用しています。
また、データベースはPostgreSQLを採用し、APIとの連携も行っています。
さらに、SpeechRecognitionによる音声入力を実現しました。
- Docker
- Python & Flask
- PostgreSQL
- Gemini API
- Gmail API
- SpeechRecognition
- SQLAlchemy
- Flask-Migrate
- JavaScript
音声認識ボタンを押して追加したいタスク名を言うだけで自動でタスクが追加されます。
期限が1週間以内のタスクのみ表示されます。 ※期限が過ぎているタスクは表示されません。
AIアドバイスボタンを押すことで、登録されているタスクの情報をGeminiに入力して、優先度の高いタスクを教えてくれます。
タスクをクリックすることでタスクの詳細画面に遷移します。
作成日順、期限日(昇順・降順)でタスクを並べ替えることができます。
また、完了マークにチェックを入れることでタスク名が薄く表示されます。
- リポジトリをクローンします。
リポジトリをクローンしたら、リポジトリ名にcdしてください。
git clone [URL]
cd docker-flask-todo-
環境変数を設定します。
./.envファイルを作成し、以下の内容を記述します。※Gemini APIキーは各自で取得してください。
https://aistudio.google.com/apikey
API_PORT=3000
DB_PORT=5432
POSTGRES_USER=your_postgres_user
POSTGRES_PASSWORD=your_postgres_password
POSTGRES_DB=your_postgres_db
POSTGRES_HOST=db
POSTGRES_PORT=5432
YOUR_API_KEY=your_gemini_api_key
-
OAuth 2.0 クライアントIDを取得する際に
credentials.jsonファイルをDLし、./app/credentials.jsonファイルを追加します。まず以下のURLにアクセスして、以下の順番で進めてください。
https://console.cloud.google.com/
APIとサービス > プロジェクトの作成 > プロジェクト構成を入力し、作成 > OAUTHクライアントを作成 > ウェブアプリケーションを選択 > 承認済みのリダイレクトにhttp://localhost:3000/google_callbackを追加し、作成 > クライアントに移動するので、OAuth 2.0 クライアントIDのDLアイコンをクリック > JSONをダウンロード > ファイル名をcredentials.jsonに変更し、./app/credentials.jsonに追加
※この際にGmailを検索し、有効化しておいてください。
※必要な場合はこのページの対象からテストユーザーを追加します。 -
Dockerコンテナをビルドして起動します。
docker-compose up --build-
ブラウザで
http://localhost:3000にアクセスします。 -
テストユーザーの追加
Google認証をする際にアクセスをブロックされた場合、「対象」からテストユーザーを追加する欄で認証するメアドを追加します。
※テストメールの送信に失敗する場合はGmail APIが有効化されていない可能性があります。
その場合は検索欄からgmailと検索し、Gmail APIを有効にしてください。 -
コードを編集したらCtrl+Cでstopして以下のコマンドを入力してください。
docker compose up --build -d
docker compose up
- Docker Desktopを起動
- とりあえずビルドしてみる
docker-compose build --no-cache - Ctrl+Cでstopして再度
docker compose up --build -d&docker compose up - ポート番号が3000であることに注意
.envファイルに追記する場合はcompose.ymlにも追記- compose upした後に別のターミナルで
docker exec -it docker-flask-todo-web-1 sh- #が表示されるので
flask db upgradeを入力
もしフォルダの名前がpy-todoならdocker exec -it py-todo-web-1 shのようにコマンドを変更
compose upした際に名前が表示されるのでそちらを確認
- #が表示されるので
./.envファイルと./app/credentials.jsonファイルを作成したかどうか確認- とりあえずAIにエラーメッセージを投げてみる
(トップへ)











