大幅変更&環境バージョンアップ
This commit is contained in:
176
README.md
176
README.md
@ -1,16 +1,160 @@
|
||||
# rogapp
|
||||
|
||||
A new Flutter project.
|
||||
|
||||
## Getting Started
|
||||
|
||||
This project is a starting point for a Flutter application.
|
||||
|
||||
A few resources to get you started if this is your first Flutter project:
|
||||
|
||||
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
|
||||
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
|
||||
|
||||
For help getting started with Flutter, view our
|
||||
[online documentation](https://flutter.dev/docs), which offers tutorials,
|
||||
samples, guidance on mobile development, and a full API reference.
|
||||
# gifunavi
|
||||
|
||||
A new Flutter project.
|
||||
|
||||
## Getting Started
|
||||
|
||||
This project is a starting point for a Flutter application.
|
||||
|
||||
A few resources to get you started if this is your first Flutter project:
|
||||
|
||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
|
||||
|
||||
For help getting started with Flutter development, view the
|
||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
||||
samples, guidance on mobile development, and a full API reference.
|
||||
|
||||
# 更新履歴
|
||||
|
||||
0. flutter_compass は pub.dev cache で 34 に変更。キャッシュをクリアしたら修正が必要。
|
||||
|
||||
1. 2024-8-17
|
||||
・新規にプロジェクトを作り直し。
|
||||
・ユーザー登録で13歳以上でないと登録できない様にした。
|
||||
・生年月日の選択カレンダーを導入。
|
||||
・エントリーカテゴリはメンバー構成によって自動修正できる様にした。(修正中)
|
||||
・イベントの締め切りフィールドを追加し、この日以降のイベントの修正はできない様にした。
|
||||
・エントリーに参加し、ゴールしたら、イベントの修正はできない様にする。必然的にチーム構成を変更する際には、エントリーが終了していれば、変更ができない様にして、新規追加を促す。
|
||||
2.
|
||||
|
||||
|
||||
#Server
|
||||
# API仕様変更案
|
||||
|
||||
## 1. イベントAPI
|
||||
|
||||
### GET /api/events
|
||||
- 変更点: レスポンスに `deadline_datetime` フィールドを追加
|
||||
- レスポンス例:
|
||||
```json
|
||||
{
|
||||
"id": 1,
|
||||
"event_name": "サマーマラソン2024",
|
||||
"start_datetime": "2024-07-01T09:00:00Z",
|
||||
"end_datetime": "2024-07-01T17:00:00Z",
|
||||
"deadline_datetime": "2024-06-15T23:59:59Z"
|
||||
}
|
||||
```
|
||||
|
||||
### POST /api/events
|
||||
- 変更点: リクエストボディに `deadline_datetime` フィールドを追加
|
||||
- リクエスト例:
|
||||
```json
|
||||
{
|
||||
"event_name": "ウィンターラン2025",
|
||||
"start_datetime": "2025-01-15T08:00:00Z",
|
||||
"end_datetime": "2025-01-15T16:00:00Z",
|
||||
"deadline_datetime": "2025-01-01T23:59:59Z"
|
||||
}
|
||||
```
|
||||
|
||||
## 2. エントリーAPI
|
||||
|
||||
### PUT /api/entries/{id}
|
||||
- 変更点:
|
||||
1. エントリー更新前にイベントの締め切り日時をチェック
|
||||
2. 締め切りを過ぎている場合、400 Bad Requestを返す
|
||||
- エラーレスポンス例:
|
||||
```json
|
||||
{
|
||||
"error": "entry_update_closed",
|
||||
"message": "エントリーの締め切りが過ぎているため、更新できません。",
|
||||
"deadline": "2024-06-15T23:59:59Z"
|
||||
}
|
||||
```
|
||||
|
||||
## 3. チームAPI
|
||||
|
||||
### GET /api/teams/{id}/entries
|
||||
- 新規エンドポイント: 指定されたチームの全エントリーを取得
|
||||
- レスポンス例:
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"team_id": 5,
|
||||
"event": {
|
||||
"id": 1,
|
||||
"event_name": "サマーマラソン2024",
|
||||
"start_datetime": "2024-07-01T09:00:00Z",
|
||||
"end_datetime": "2024-07-01T17:00:00Z",
|
||||
"deadline_datetime": "2024-06-15T23:59:59Z"
|
||||
},
|
||||
"category": {
|
||||
"id": 3,
|
||||
"category_name": "一般-5時間"
|
||||
},
|
||||
"date": "2024-07-01T09:00:00Z",
|
||||
"zekken_number": "A-123"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### PUT /api/teams/{id}
|
||||
- 変更点: チーム更新時に関連するエントリーの締め切りをチェック
|
||||
- エラーレスポンス例:
|
||||
```json
|
||||
{
|
||||
"error": "team_update_restricted",
|
||||
"message": "締め切りを過ぎたエントリーが存在するため、チームの更新が制限されています。",
|
||||
"closed_entries": [1, 2, 3]
|
||||
}
|
||||
```
|
||||
|
||||
## 4. 共通エラーレスポンス
|
||||
|
||||
- すべてのエンドポイントで、より詳細なエラー情報を提供
|
||||
- エラーレスポンス構造:
|
||||
|
||||
{
|
||||
"error": "error_code",
|
||||
"message": "人間が読める詳細なエラーメッセージ",
|
||||
"details": {
|
||||
## エラーに関する追加情報(オプション)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
## 5. 認証・認可
|
||||
|
||||
- すべてのエンドポイントで適切な認証・認可チェックを実施
|
||||
- 権限不足の場合は403 Forbiddenを返す
|
||||
|
||||
マニュアル編集が必要な部分:
|
||||
1. flutter_compass プラグインの build.gradle ファイルを直接編集します:
|
||||
ファイルパス: /Volumes/PortableSSD1TB/main/flutter/.pub-cache/hosted/pub.dev/flutter_compass-0.8.0/android/build.gradle
|
||||
このファイルを開き、jcenter() を mavenCentral() に置き換えます:
|
||||
$ ./gradlew clean
|
||||
$ ./gradlew clean build
|
||||
2. image_gallery_saver の build.gradle ファイルを編集
|
||||
/Volumes/PortableSSD1TB/main/flutter/.pub-cache/git/image_gallery_saver-24fd8207a4491c42ed907060bb5bf40c2430131f/android/build.gradle ファイル
|
||||
ext.kotlin_version = '1.8.22' #'1.7.10'
|
||||
$ ./gradlew clean
|
||||
$ ./gradlew clean build
|
||||
3. qr_code_scanner の問題解決:
|
||||
/Volumes/PortableSSD1TB/main/flutter/.pub-cache/hosted/pub.dev/qr_code_scanner-[version]/android/build.gradle
|
||||
ext.kotlin_version = '1.8.22' //'1.7.10'
|
||||
4. flutter_keyboard_visibility:
|
||||
vi /Volumes/PortableSSD1TB/main/flutter/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/android/build.gradle
|
||||
minSDK = 21 ,SDKversion=34 にする。
|
||||
5. device_info_plus は使用不可
|
||||
6. geolocator_android:
|
||||
vi /Volumes/PortableSSD1TB/main/flutter/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/android/build.gradle
|
||||
minSdkVersion 21
|
||||
|
||||
|
||||
テスト用位置情報:
|
||||
大垣駅: 35.36701369466119, 136.61783662683948
|
||||
大垣城: 35.36182698266251, 136.61558088722234
|
||||
関ケ原駅:35.36365422752628, 136.47061844402452
|
||||
Reference in New Issue
Block a user