From 14dcba8ee3dd050061a8c0dde3ea4d1e4b725180 Mon Sep 17 00:00:00 2001 From: jihunchoi Date: Sat, 27 Apr 2024 16:06:47 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20#85-=EB=B0=94=EB=80=90=20=EC=84=9C?= =?UTF-8?q?=EB=B2=84=20=EC=9D=91=EB=8B=B5=20=EB=B0=8F=20=ED=9A=8C=EC=9B=90?= =?UTF-8?q?=EA=B0=80=EC=9E=85=20=EB=A1=9C=EC=A7=81=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B8=20signup=20api=20=EC=9A=94=EC=B2=AD=20=EC=9C=84?= =?UTF-8?q?=EC=B9=98=EC=99=80=20=EB=B0=A9=EB=B2=95=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/models/api_fail_response.dart | 9 ++++ ...esponse.dart => api_success_response.dart} | 6 +-- .../lib/screens/signup/signup_service.dart | 42 +++++++------------ .../lib/services/auth_service.dart | 25 ++++------- 4 files changed, 35 insertions(+), 47 deletions(-) create mode 100644 front/capstone_front/lib/models/api_fail_response.dart rename front/capstone_front/lib/models/{api_response.dart => api_success_response.dart} (67%) diff --git a/front/capstone_front/lib/models/api_fail_response.dart b/front/capstone_front/lib/models/api_fail_response.dart new file mode 100644 index 0000000000..91f9d2d62e --- /dev/null +++ b/front/capstone_front/lib/models/api_fail_response.dart @@ -0,0 +1,9 @@ +class ApiFailResponse { + final String success; + final String message; + + ApiFailResponse({ + required this.success, + required this.message, + }); +} diff --git a/front/capstone_front/lib/models/api_response.dart b/front/capstone_front/lib/models/api_success_response.dart similarity index 67% rename from front/capstone_front/lib/models/api_response.dart rename to front/capstone_front/lib/models/api_success_response.dart index d35147ec17..9d9ec37406 100644 --- a/front/capstone_front/lib/models/api_response.dart +++ b/front/capstone_front/lib/models/api_success_response.dart @@ -1,9 +1,9 @@ -class ApiResponse { +class ApiSuccessResponse { final String success; - final String? message; + final String message; final Map response; - ApiResponse({ + ApiSuccessResponse({ required this.success, required this.message, required this.response, diff --git a/front/capstone_front/lib/screens/signup/signup_service.dart b/front/capstone_front/lib/screens/signup/signup_service.dart index c14944484b..651fd50a12 100644 --- a/front/capstone_front/lib/screens/signup/signup_service.dart +++ b/front/capstone_front/lib/screens/signup/signup_service.dart @@ -1,5 +1,7 @@ +import 'dart:convert'; import 'dart:ui'; +import 'package:capstone_front/models/api_success_response.dart'; import 'package:capstone_front/screens/signup/college_department.dart'; import 'package:capstone_front/screens/signup/signup_email_screen.dart'; import 'package:capstone_front/screens/signup/signup_util.dart'; @@ -15,6 +17,7 @@ import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; Map userInfo = { + 'uuid': '', 'id': '', 'pw': '', 'pwRe': '', @@ -26,36 +29,20 @@ Map userInfo = { int selectedPageIndex = 0; Future signup() async { - try { - // UserCredential credential = - // await FirebaseAuth.instance.createUserWithEmailAndPassword( - // email: '${userInfo['id']}@kookmin.ac.kr', - // password: userInfo['pw']!, - // ); - // await credential.user!.sendEmailVerification(); - - // TODO 우리 서버에 signup 요청 여기서 - // signupInfo 에는 실제 유저에게 입력받은 정보가 들어가야함 - - // final Map signupInfo = { - // // "uuid": credential.user!.uid, - // "uuid": 'messi', - // "email": 'jihunchoi@kookmin.ac.kr', - // "name": 'jihun', - // "country": 'korea', - // "phoneNumber": '010-8276-8291', - // "major": "sw", - // }; - // var response = AuthService.signUp(signupInfo); - - // response의 결과에 따라 성공, 실패, 이유 띄워야함 + Map userData = { + 'uuid': userInfo['uuid'], + 'email': "${userInfo['id']}@kookmin.ac.kr", + 'name': 'messi', + 'country': userInfo['country'], + 'phoneNumber': '010-8276-8291', + 'major': userInfo['department'], + }; + var isSucceed = await AuthService.signUp(userData); + if (isSucceed) { return 'success'; - } on FirebaseAuthException catch (e) { - return e.code; - } catch (e) { - return e.toString(); } + throw Exception('there is something problem while signup'); } Future sendEmailAuth(String email, String pw) async { @@ -86,6 +73,7 @@ Future isEmailAuth(String email, String pw) async { if (user!.emailVerified) { user = credential.user; + userInfo['uuid'] = user!.uid; return "success"; } else { return "email"; diff --git a/front/capstone_front/lib/services/auth_service.dart b/front/capstone_front/lib/services/auth_service.dart index b2636dabd5..f4541cdd71 100644 --- a/front/capstone_front/lib/services/auth_service.dart +++ b/front/capstone_front/lib/services/auth_service.dart @@ -1,5 +1,7 @@ import 'dart:convert'; +import 'package:capstone_front/models/api_fail_response.dart'; +import 'package:capstone_front/models/api_success_response.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:http/http.dart' as http; import 'package:crypto/crypto.dart'; @@ -8,21 +10,10 @@ class AuthService { static String baseUrl = dotenv.get('BASE_URL'); static final List key = base64Decode(dotenv.get('HMAC_SECRET')); - static Future> signUp( - Map userInfo) async { + static Future signUp(Map userInfo) async { var hmacSha256 = Hmac(sha256, key); final url = Uri.parse('$baseUrl/user/signup'); - var dummy = { - "uuid": "string", - "email": "aㅁqazzaamclub4@kookmin.ac.kr", - "name": "string", - "country": "string", - "phoneNumber": "010-8276-8291", - "major": "string" - }; - - // var json = jsonEncode(dummy); var json = jsonEncode(userInfo); var bytes = utf8.encode(json); var digest = hmacSha256.convert(bytes); @@ -37,15 +28,15 @@ class AuthService { body: json, ); - final String decodedBody = utf8.decode(response.bodyBytes); - final Map res = jsonDecode(decodedBody); - if (response.statusCode != 201) { + final String decodedBody = utf8.decode(response.bodyBytes); + final ApiFailResponse apiFailResponse = jsonDecode(decodedBody); print('Request failed with status: ${response.statusCode}.'); - print('Request failed with status: ${response.body}'); + print('Request failed with status: ${apiFailResponse.message}'); + return false; } - return res; + return true; } static Future> signIn(Map info) async { From aff2f2d7e4c2e4060ef976b59a3d9ca2c8d0e6b6 Mon Sep 17 00:00:00 2001 From: jihunchoi Date: Sat, 27 Apr 2024 19:05:41 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20#85-=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=99=84=EB=A3=8C=20=EB=B0=8F=20?= =?UTF-8?q?token=20storage=EC=97=90=20=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/models/api_fail_response.dart | 9 +++++- .../lib/models/api_success_response.dart | 7 ++++- .../lib/screens/login/login_screen.dart | 13 ++++++-- .../lib/screens/signup/signup_service.dart | 2 ++ .../lib/services/auth_service.dart | 30 ++++++++++++++----- 5 files changed, 50 insertions(+), 11 deletions(-) diff --git a/front/capstone_front/lib/models/api_fail_response.dart b/front/capstone_front/lib/models/api_fail_response.dart index 91f9d2d62e..050e65f268 100644 --- a/front/capstone_front/lib/models/api_fail_response.dart +++ b/front/capstone_front/lib/models/api_fail_response.dart @@ -1,9 +1,16 @@ class ApiFailResponse { - final String success; + final bool success; final String message; + final String code; ApiFailResponse({ required this.success, required this.message, + required this.code, }); + + ApiFailResponse.fromJson(Map json) + : success = json['success'] as bool, + message = json['message'] as String, + code = json['code'] as String; } diff --git a/front/capstone_front/lib/models/api_success_response.dart b/front/capstone_front/lib/models/api_success_response.dart index 9d9ec37406..125b8fbfdd 100644 --- a/front/capstone_front/lib/models/api_success_response.dart +++ b/front/capstone_front/lib/models/api_success_response.dart @@ -1,5 +1,5 @@ class ApiSuccessResponse { - final String success; + final bool success; final String message; final Map response; @@ -8,4 +8,9 @@ class ApiSuccessResponse { required this.message, required this.response, }); + + ApiSuccessResponse.fromJson(Map json) + : success = json['success'] as bool, + message = json['message'] as String, + response = json['response']; } diff --git a/front/capstone_front/lib/screens/login/login_screen.dart b/front/capstone_front/lib/screens/login/login_screen.dart index ff32df4bcb..07d79f34cb 100644 --- a/front/capstone_front/lib/screens/login/login_screen.dart +++ b/front/capstone_front/lib/screens/login/login_screen.dart @@ -1,3 +1,4 @@ +import 'package:capstone_front/services/auth_service.dart'; import 'package:capstone_front/services/login_service.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:firebase_auth/firebase_auth.dart'; @@ -58,12 +59,20 @@ class _LoginScreenState extends State { '${_userInfo[0]}@kookmin.ac.kr', _userInfo[1]); switch (result) { case "success": - makeToast("로그인에 성공하였습니다"); await storage.write(key: 'isLogin', value: 'true'); await storage.write( key: 'userEmail', value: '${_userInfo[0]}@kookmin.ac.kr'); - context.go('/'); + var uuid = await storage.read(key: 'uuid'); + var isLogined = await AuthService.signIn({ + "uuid": uuid, + "email": '${_userInfo[0]}@kookmin.ac.kr', + }); + if (isLogined) { + makeToast("로그인에 성공하였습니다"); + context.go('/'); + } + case "email": makeToast("이메일이 인증되지 않았습니다"); case "invalid-credential": diff --git a/front/capstone_front/lib/screens/signup/signup_service.dart b/front/capstone_front/lib/screens/signup/signup_service.dart index 651fd50a12..25dab5e2f4 100644 --- a/front/capstone_front/lib/screens/signup/signup_service.dart +++ b/front/capstone_front/lib/screens/signup/signup_service.dart @@ -63,6 +63,7 @@ Future sendEmailAuth(String email, String pw) async { } Future isEmailAuth(String email, String pw) async { + FlutterSecureStorage storage = const FlutterSecureStorage(); try { UserCredential credential = await FirebaseAuth.instance .signInWithEmailAndPassword(email: email, password: pw); @@ -74,6 +75,7 @@ Future isEmailAuth(String email, String pw) async { if (user!.emailVerified) { user = credential.user; userInfo['uuid'] = user!.uid; + await storage.write(key: 'uuid', value: user.uid); return "success"; } else { return "email"; diff --git a/front/capstone_front/lib/services/auth_service.dart b/front/capstone_front/lib/services/auth_service.dart index f4541cdd71..876405581c 100644 --- a/front/capstone_front/lib/services/auth_service.dart +++ b/front/capstone_front/lib/services/auth_service.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'package:capstone_front/models/api_fail_response.dart'; import 'package:capstone_front/models/api_success_response.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:http/http.dart' as http; import 'package:crypto/crypto.dart'; @@ -39,7 +40,8 @@ class AuthService { return true; } - static Future> signIn(Map info) async { + static Future signIn(Map info) async { + FlutterSecureStorage storage = const FlutterSecureStorage(); var hmacSha256 = Hmac(sha256, key); final url = Uri.parse('$baseUrl/user/signin'); @@ -58,14 +60,28 @@ class AuthService { ); final String decodedBody = utf8.decode(response.bodyBytes); - final Map res = jsonDecode(decodedBody); - - if (response.statusCode != 200) { - print('Request failed with status: ${response.statusCode}.'); - print('Request failed with status: ${response.body}'); + final Map jsonMap = jsonDecode(decodedBody); + if (response.statusCode == 200) { + final ApiSuccessResponse apiSuccessResponse = + ApiSuccessResponse.fromJson(jsonMap); + print('apiSuccessResponse'); + print(apiSuccessResponse); + await storage.write( + key: 'accessToken', + value: apiSuccessResponse.response['accessToken'], + ); + await storage.write( + key: 'refreshToken', + value: apiSuccessResponse.response['refreshToken'], + ); + } else { + final ApiFailResponse apiFailResponse = ApiFailResponse.fromJson(jsonMap); + print(response.statusCode); + print(apiFailResponse.message); + throw Exception("fail to get toekns"); } - return res; + return true; } static Future> reissue( From b4ba8aabd0fd7526f5031e28061fa7eea60d0a46 Mon Sep 17 00:00:00 2001 From: jihunchoi Date: Sat, 27 Apr 2024 19:10:51 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20#85-reissue=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/services/auth_service.dart | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/front/capstone_front/lib/services/auth_service.dart b/front/capstone_front/lib/services/auth_service.dart index 876405581c..be5ba516d3 100644 --- a/front/capstone_front/lib/services/auth_service.dart +++ b/front/capstone_front/lib/services/auth_service.dart @@ -84,25 +84,42 @@ class AuthService { return true; } - static Future> reissue( - Map refreshTokenObj) async { + static void reissue() async { + FlutterSecureStorage storage = const FlutterSecureStorage(); + final url = Uri.parse('$baseUrl/auth/reissue'); + final refreshToken = storage.read(key: 'refreshToken'); final response = await http.post( url, headers: { 'Content-Type': 'application/json; charset=UTF-8', }, - body: jsonEncode(refreshTokenObj), + body: jsonEncode({ + "refreshToekn": refreshToken, + }), ); final String decodedBody = utf8.decode(response.bodyBytes); - final Map res = jsonDecode(decodedBody); - - if (response.statusCode != 200) { - print('Request failed with status: ${response.statusCode}.'); + final Map jsonMap = jsonDecode(decodedBody); + if (response.statusCode == 200) { + final ApiSuccessResponse apiSuccessResponse = + ApiSuccessResponse.fromJson(jsonMap); + print('apiSuccessResponse'); + print(apiSuccessResponse); + await storage.write( + key: 'accessToken', + value: apiSuccessResponse.response['accessToken'], + ); + await storage.write( + key: 'refreshToken', + value: apiSuccessResponse.response['refreshToken'], + ); + } else { + final ApiFailResponse apiFailResponse = ApiFailResponse.fromJson(jsonMap); + print(response.statusCode); + print(apiFailResponse.message); + throw Exception("fail to get toekns"); } - - return res; } } From 798bba0226408fc27bdadabee37bb6e52f35a9f9 Mon Sep 17 00:00:00 2001 From: jihunchoi Date: Sat, 27 Apr 2024 22:54:30 +0900 Subject: [PATCH 4/6] =?UTF-8?q?refactor:=20#85-print=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/capstone_front/lib/services/auth_service.dart | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/front/capstone_front/lib/services/auth_service.dart b/front/capstone_front/lib/services/auth_service.dart index be5ba516d3..2eaaa982b7 100644 --- a/front/capstone_front/lib/services/auth_service.dart +++ b/front/capstone_front/lib/services/auth_service.dart @@ -64,8 +64,6 @@ class AuthService { if (response.statusCode == 200) { final ApiSuccessResponse apiSuccessResponse = ApiSuccessResponse.fromJson(jsonMap); - print('apiSuccessResponse'); - print(apiSuccessResponse); await storage.write( key: 'accessToken', value: apiSuccessResponse.response['accessToken'], @@ -105,8 +103,6 @@ class AuthService { if (response.statusCode == 200) { final ApiSuccessResponse apiSuccessResponse = ApiSuccessResponse.fromJson(jsonMap); - print('apiSuccessResponse'); - print(apiSuccessResponse); await storage.write( key: 'accessToken', value: apiSuccessResponse.response['accessToken'], @@ -119,7 +115,7 @@ class AuthService { final ApiFailResponse apiFailResponse = ApiFailResponse.fromJson(jsonMap); print(response.statusCode); print(apiFailResponse.message); - throw Exception("fail to get toekns"); + throw Exception("fail to reissue"); } } } From 650a40fdb68a6fec0253727956b7845bb58074f8 Mon Sep 17 00:00:00 2001 From: kevinmj12 Date: Sun, 28 Apr 2024 00:11:46 +0900 Subject: [PATCH 5/6] =?UTF-8?q?refactor:#100/=EC=95=B1=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=20=EC=84=A4=EC=A0=95=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 3085 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 1888 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 4400 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 7402 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 10386 bytes .../assets/images/app_logo_icon.png | Bin 0 -> 19081 bytes .../assets/translations/ko-KR.json | 10 +- .../flutter_launcher_icons.yaml | 5 + .../AppIcon.appiconset/Contents.json | 123 +----------------- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 0 bytes .../AppIcon.appiconset/_/100.png | Bin 0 -> 4621 bytes .../AppIcon.appiconset/_/1024.png | Bin 0 -> 62755 bytes .../AppIcon.appiconset/_/114.png | Bin 0 -> 5469 bytes .../AppIcon.appiconset/_/120.png | Bin 0 -> 5953 bytes .../AppIcon.appiconset/_/144.png | Bin 0 -> 7402 bytes .../AppIcon.appiconset/_/152.png | Bin 0 -> 7918 bytes .../AppIcon.appiconset/_/167.png | Bin 0 -> 8758 bytes .../AppIcon.appiconset/_/180.png | Bin 0 -> 9563 bytes .../AppIcon.appiconset/_/20.png | Bin 0 -> 673 bytes .../AppIcon.appiconset/_/29.png | Bin 0 -> 999 bytes .../AppIcon.appiconset/_/40.png | Bin 0 -> 1503 bytes .../AppIcon.appiconset/_/50.png | Bin 0 -> 1969 bytes .../AppIcon.appiconset/_/57.png | Bin 0 -> 2285 bytes .../AppIcon.appiconset/_/58.png | Bin 0 -> 2342 bytes .../AppIcon.appiconset/_/60.png | Bin 0 -> 2447 bytes .../AppIcon.appiconset/_/72.png | Bin 0 -> 3085 bytes .../AppIcon.appiconset/_/76.png | Bin 0 -> 3340 bytes .../AppIcon.appiconset/_/80.png | Bin 0 -> 3543 bytes .../AppIcon.appiconset/_/87.png | Bin 0 -> 3856 bytes front/capstone_front/lib/main.dart | 16 ++- .../lib/screens/chatbot/chatbot.dart | 25 ++-- .../helper_board/helper_board_screen.dart | 76 ++++++----- .../helper_board/helper_writing_card.dart | 78 +++++------ .../helper_chatting/helper_chatting_card.dart | 11 +- .../helper_chatting_screen.dart | 7 +- .../lib/screens/home/home_screen.dart | 10 +- .../lib/screens/main_screen.dart | 20 +++ .../screens/signup/signup_college_screen.dart | 13 +- .../screens/signup/signup_country_screen.dart | 29 +++-- .../signup/signup_email_auth_screen.dart | 108 +++++++-------- .../lib/screens/signup/signup_name.dart | 61 +++++++++ .../lib/screens/signup/signup_service.dart | 32 ++--- .../signup/singup_password_screen.dart | 44 ++++++- .../speech_custom_sentence.dart | 4 +- .../speech_practice_card.dart | 2 +- .../speech_select_sentence_screen.dart | 4 +- .../speech_sentence_card.dart | 2 +- .../speech_practice_screen.dart | 7 +- .../speech_practice/speech_screen.dart | 4 +- .../lib/utils/bubble_painter1.dart | 2 +- 64 files changed, 349 insertions(+), 344 deletions(-) create mode 100644 front/capstone_front/assets/images/app_logo_icon.png create mode 100644 front/capstone_front/flutter_launcher_icons.yaml delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/100.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/1024.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/114.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/120.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/144.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/152.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/167.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/180.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/20.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/29.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/40.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/50.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/57.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/58.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/60.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/72.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/76.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/80.png create mode 100644 front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/87.png create mode 100644 front/capstone_front/lib/screens/signup/signup_name.dart rename front/capstone_front/lib/screens/speech_practice/{ => speech_custom_sentence}/speech_custom_sentence.dart (95%) rename front/capstone_front/lib/screens/speech_practice/{ => speech_custom_sentence}/speech_practice_card.dart (98%) rename front/capstone_front/lib/screens/speech_practice/{ => speech_example_sentences}/speech_select_sentence_screen.dart (84%) rename front/capstone_front/lib/screens/speech_practice/{ => speech_example_sentences}/speech_sentence_card.dart (99%) diff --git a/front/capstone_front/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/front/capstone_front/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..cc6e33219d0ff34ec6954b9f32c3969b78af7f67 100644 GIT binary patch literal 3085 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 AQ2+n{ diff --git a/front/capstone_front/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/front/capstone_front/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..6765be7ad2b9c6db320135f043281959f6aedb82 100644 GIT binary patch delta 1884 zcmV-i2c!791K2 zDTbwBLbQT{s1ZRngVKU@nR)v)=e(IZ5T?ZmVW{^0Y3I#*cYn_EopZi(-W8G;AOv{r z|IWkK_g(D$#zRfDgzp8{v$Yfz$h%me%k?U59;V@n9x98Hlv((`lq9_803Vmys952^ zic9E*fJ*l!6w8(Zkbvg_t|g&I1a2L!W8kC^G(Dk&=Sk_iz`}7RzFFfUFJFMPmVR)< zg|NuLLIHdqsDC*oaoyb-9+@A8q5*;c^wBIEtLNFcsJ(z|UkDZ+DfpCn!_Sv$7&^RzF&uUp>Msc z{#`=VDYTn|_(5W!q(hJw6MELkY^Tah%|@OO<9pOK7k|5-QO_0yGIjsCdalI-=gN|q z?$hFdOf7e=p8NlJfY@NNXGmqLbe$?V^Ya9sO2@#d;Lx+Qk_NWu1y}Q4*AG!D{x6C1@$K-jvtXI z=&Hbo0BR`cDX7$QZy^EdIciTx9R1bjE{}LjK^FzlJi+%-6IFFk;?Pe%cVO+WQgHZ3 zAF&$AygwaJYtjQ`<)SGDZW^S)s+TZw1pnB=v40kh{On=Ywj5NfbWk?l!sK-kbnY3n zeCZbT9-Egtn7%QJRu_o?dW@++$kL)X@-G({IXjHGMREM{wTDP{#z2+B!o8YO5ti&Nk3{ zu#V^Mj4^&)TVh~|fq^9<%pMl!-juGByHyQvk}YW>E0HpEEs_hov_1zrzHk{rQ_G|5 ziBC!`R-k=Xg_T+ zkf1X+M^SZHVru^w22Bc~Q+JgiM1S}v=uvvzy~X3_Y*XUopAw(GV&ldE8VCHvmjxNi ztOpM5@v-_18@=w;@X!o{A<7E0$pAt@G6%Psu^J$p3(Vb~gReev*fQ-pC@dsFq56o# zoMAEa8y(`*N_D|?z(N{PV9QFE^F2Yba*c~)2Yn2F(m=E|uSZ)&q1DU#M5XRr46Y#k>yB`*LLP&>j!}Xtw>N^VCI%UftQEGP_mq|(?1ZR z`aoHTGLxzahS1lmUCevfMCtY%{ye6zj_*lUaWWbeM@rRgFIBj(C9C(DQgd1bXhXAB z;`Wg`y4|928oQ>Cikd2kpMSpc*sU9vIT$s^K=mOX)9#CNFjCz}T8l?DiK5{Fg7baZMi$C;yQ6c#efgVl;CK7a~sMfrXg3G{VX+d)7j~(SJI657N;pKQY2g zF)zW7YR8I~Z0xCUGb?0C!ezxMAZ3CUh=#&MRwitcaIBPZ7GoJAYl-AQ&}&xma*fM+o;X;OiIBUCo-ZBZZ_ zRzC%bEt9z{yPzcovVZJ=mg#i19q=D`!SQ_GdPz-mvwX!=ARyj*#+1bIo7+o1YDaqy z)ggY{<;hZd&DzNDDC+lIp)G?1dMs$!)J$5oWj=&%RD>H=8QrqVo$ z8YnukGWZFDryV?&JpH)Mz8xMa=(tU#$5VvH8tU_*8#O*OL#5+3w+z#8<+Z0CxA`04 Wvx-GQTB4x<0000Vk literal 442 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 diff --git a/front/capstone_front/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/front/capstone_front/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..a379f5916cc339d94f6bb1509f9c57f81baf6aec 100644 GIT binary patch literal 7402 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 diff --git a/front/capstone_front/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/front/capstone_front/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..77e05b900bd439fdab284bbc99605e9c7db0b563 100644 GIT binary patch literal 10386 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 HB;@}9QIY&@ literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/front/capstone_front/assets/images/app_logo_icon.png b/front/capstone_front/assets/images/app_logo_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..57a668b40deae23d0f7ddd6c3b4533bad0280a74 GIT binary patch literal 19081 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 KC7!u)_x}TWvyis{ literal 0 HcmV?d00001 diff --git a/front/capstone_front/assets/translations/ko-KR.json b/front/capstone_front/assets/translations/ko-KR.json index 6fe40e09eb..96d6467f5c 100644 --- a/front/capstone_front/assets/translations/ko-KR.json +++ b/front/capstone_front/assets/translations/ko-KR.json @@ -13,20 +13,26 @@ "kmu_email": "국민대 이메일", "password": "비밀번호", "password_re": "비밀번호 재입력", + "weak_password": "비밀번호는 6자리 이상이어야 합니다", + "duplicated_email": "이미 사용된 아이디입니다", + "password_not_same": "비밀번호가 일치하지 않습니다", "country": "국가", "college": "단과대학", "department": "학부ㆍ학과", + "name": "이름", "student_number": "학번", + "enter_name": "이름, 학번을 입력해주세요", "enter_kmuemail": "국민대 이메일을 입력해주세요", "enter_password": "비밀번호를 입력해주세요", - "auth_email": "이메일 인증을 완료해주세요", "enter_college_department": "단과대학 및 학과를 입력해주세요", "enter_college": "단과대학을 골라주세요", "enter_department": "학부ㆍ학과를 골라주세요", "enter_country": "국가를 입력해주세요", "select_country": "국가를 골라주세요", + "auth_email": "인증 메일이 발송되었습니다", "detail_auth_email": "메일 내 인증 링크를 통해 인증을 완료해주세요\n메일이 보이지 않는다면 스펨메일함을 확인해주세요", - "complete_signup": "회원가입 완료" + "complete_signup": "회원가입 완료", + "ok": "확인" }, "mainScreen": { "home": "홈", diff --git a/front/capstone_front/flutter_launcher_icons.yaml b/front/capstone_front/flutter_launcher_icons.yaml new file mode 100644 index 0000000000..5a8035140f --- /dev/null +++ b/front/capstone_front/flutter_launcher_icons.yaml @@ -0,0 +1,5 @@ +flutter_icons: + ios: true + android: true + image_path: "assets/images/app_logo_icon.png" + remove_alpha_ios: true diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index d36b1fab2d..65b74d7ef1 100644 --- a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} +{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]} \ No newline at end of file diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada4725e9b0ddb1deab583e5b5102493aa332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10932 zcmeHN2~<R zh`|8`A_PQ1nSu(UMFx?8j8PC!!VDphaL#`F42fd#7Vlc`zIE4n%Y~eiz4y1j|NDpi z?<@|pSJ-HM`qifhf@m%MamgwK83`XpBA<+azdF#2QsT{X@z0A9Bq>~TVErigKH1~P zRX-!h-f0NJ4Mh++{D}J+K>~~rq}d%o%+4dogzXp7RxX4C>Km5XEI|PAFDmo;DFm6G zzjVoB`@qW98Yl0Kvc-9w09^PrsobmG*Eju^=3f?0o-t$U)TL1B3;sZ^!++3&bGZ!o-*6w?;oOhf z=A+Qb$scV5!RbG+&2S}BQ6YH!FKb0``VVX~T$dzzeSZ$&9=X$3)_7Z{SspSYJ!lGE z7yig_41zpQ)%5dr4ff0rh$@ky3-JLRk&DK)NEIHecf9c*?Z1bUB4%pZjQ7hD!A0r-@NF(^WKdr(LXj|=UE7?gBYGgGQV zidf2`ZT@pzXf7}!NH4q(0IMcxsUGDih(0{kRSez&z?CFA0RVXsVFw3^u=^KMtt95q z43q$b*6#uQDLoiCAF_{RFc{!H^moH_cmll#Fc^KXi{9GDl{>%+3qyfOE5;Zq|6#Hb zp^#1G+z^AXfRKaa9HK;%b3Ux~U@q?xg<2DXP%6k!3E)PA<#4$ui8eDy5|9hA5&{?v z(-;*1%(1~-NTQ`Is1_MGdQ{+i*ccd96ab$R$T3=% zw_KuNF@vI!A>>Y_2pl9L{9h1-C6H8<)J4gKI6{WzGBi<@u3P6hNsXG=bRq5c+z;Gc3VUCe;LIIFDmQAGy+=mRyF++u=drBWV8-^>0yE9N&*05XHZpPlE zxu@?8(ZNy7rm?|<+UNe0Vs6&o?l`Pt>P&WaL~M&#Eh%`rg@Mbb)J&@DA-wheQ>hRV z<(XhigZAT z>=M;URcdCaiO3d^?H<^EiEMDV+7HsTiOhoaMX%P65E<(5xMPJKxf!0u>U~uVqnPN7T!X!o@_gs3Ct1 zlZ_$5QXP4{Aj645wG_SNT&6m|O6~Tsl$q?nK*)(`{J4b=(yb^nOATtF1_aS978$x3 zx>Q@s4i3~IT*+l{@dx~Hst21fR*+5}S1@cf>&8*uLw-0^zK(+OpW?cS-YG1QBZ5q! zgTAgivzoF#`cSz&HL>Ti!!v#?36I1*l^mkrx7Y|K6L#n!-~5=d3;K<;Zqi|gpNUn_ z_^GaQDEQ*jfzh;`j&KXb66fWEk1K7vxQIMQ_#Wu_%3 z4Oeb7FJ`8I>Px;^S?)}2+4D_83gHEq>8qSQY0PVP?o)zAv3K~;R$fnwTmI-=ZLK`= zTm+0h*e+Yfr(IlH3i7gUclNH^!MU>id$Jw>O?2i0Cila#v|twub21@e{S2v}8Z13( zNDrTXZVgris|qYm<0NU(tAPouG!QF4ZNpZPkX~{tVf8xY690JqY1NVdiTtW+NqyRP zZ&;T0ikb8V{wxmFhlLTQ&?OP7 z;(z*<+?J2~z*6asSe7h`$8~Se(@t(#%?BGLVs$p``;CyvcT?7Y!{tIPva$LxCQ&4W z6v#F*);|RXvI%qnoOY&i4S*EL&h%hP3O zLsrFZhv&Hu5tF$Lx!8(hs&?!Kx5&L(fdu}UI5d*wn~A`nPUhG&Rv z2#ixiJdhSF-K2tpVL=)5UkXRuPAFrEW}7mW=uAmtVQ&pGE-&az6@#-(Te^n*lrH^m@X-ftVcwO_#7{WI)5v(?>uC9GG{lcGXYJ~Q8q zbMFl7;t+kV;|;KkBW2!P_o%Czhw&Q(nXlxK9ak&6r5t_KH8#1Mr-*0}2h8R9XNkr zto5-b7P_auqTJb(TJlmJ9xreA=6d=d)CVbYP-r4$hDn5|TIhB>SReMfh&OVLkMk-T zYf%$taLF0OqYF?V{+6Xkn>iX@TuqQ?&cN6UjC9YF&%q{Ut3zv{U2)~$>-3;Dp)*(? zg*$mu8^i=-e#acaj*T$pNowo{xiGEk$%DusaQiS!KjJH96XZ-hXv+jk%ard#fu=@Q z$AM)YWvE^{%tDfK%nD49=PI|wYu}lYVbB#a7wtN^Nml@CE@{Gv7+jo{_V?I*jkdLD zJE|jfdrmVbkfS>rN*+`#l%ZUi5_bMS<>=MBDNlpiSb_tAF|Zy`K7kcp@|d?yaTmB^ zo?(vg;B$vxS|SszusORgDg-*Uitzdi{dUV+glA~R8V(?`3GZIl^egW{a919!j#>f` znL1o_^-b`}xnU0+~KIFLQ)$Q6#ym%)(GYC`^XM*{g zv3AM5$+TtDRs%`2TyR^$(hqE7Y1b&`Jd6dS6B#hDVbJlUXcG3y*439D8MrK!2D~6gn>UD4Imctb z+IvAt0iaW73Iq$K?4}H`7wq6YkTMm`tcktXgK0lKPmh=>h+l}Y+pDtvHnG>uqBA)l zAH6BV4F}v$(o$8Gfo*PB>IuaY1*^*`OTx4|hM8jZ?B6HY;F6p4{`OcZZ(us-RVwDx zUzJrCQlp@mz1ZFiSZ*$yX3c_#h9J;yBE$2g%xjmGF4ca z&yL`nGVs!Zxsh^j6i%$a*I3ZD2SoNT`{D%mU=LKaEwbN(_J5%i-6Va?@*>=3(dQy` zOv%$_9lcy9+(t>qohkuU4r_P=R^6ME+wFu&LA9tw9RA?azGhjrVJKy&8=*qZT5Dr8g--d+S8zAyJ$1HlW3Olryt`yE zFIph~Z6oF&o64rw{>lgZISC6p^CBer9C5G6yq%?8tC+)7*d+ib^?fU!JRFxynRLEZ zj;?PwtS}Ao#9whV@KEmwQgM0TVP{hs>dg(1*DiMUOKHdQGIqa0`yZnHk9mtbPfoLx zo;^V6pKUJ!5#n`w2D&381#5#_t}AlTGEgDz$^;u;-vxDN?^#5!zN9ngytY@oTv!nc zp1Xn8uR$1Z;7vY`-<*?DfPHB;x|GUi_fI9@I9SVRv1)qETbNU_8{5U|(>Du84qP#7 z*l9Y$SgA&wGbj>R1YeT9vYjZuC@|{rajTL0f%N@>3$DFU=`lSPl=Iv;EjuGjBa$Gw zHD-;%YOE@<-!7-Mn`0WuO3oWuL6tB2cpPw~Nvuj|KM@))ixuDK`9;jGMe2d)7gHin zS<>k@!x;!TJEc#HdL#RF(`|4W+H88d4V%zlh(7#{q2d0OQX9*FW^`^_<3r$kabWAB z$9BONo5}*(%kx zOXi-yM_cmB3>inPpI~)duvZykJ@^^aWzQ=eQ&STUa}2uT@lV&WoRzkUoE`rR0)`=l zFT%f|LA9fCw>`enm$p7W^E@U7RNBtsh{_-7vVz3DtB*y#*~(L9+x9*wn8VjWw|Q~q zKFsj1Yl>;}%MG3=PY`$g$_mnyhuV&~O~u~)968$0b2!Jkd;2MtAP#ZDYw9hmK_+M$ zb3pxyYC&|CuAbtiG8HZjj?MZJBFbt`ryf+c1dXFuC z0*ZQhBzNBd*}s6K_G}(|Z_9NDV162#y%WSNe|FTDDhx)K!c(mMJh@h87@8(^YdK$&d*^WQe8Z53 z(|@MRJ$Lk-&ii74MPIs80WsOFZ(NX23oR-?As+*aq6b?~62@fSVmM-_*cb1RzZ)`5$agEiL`-E9s7{GM2?(KNPgK1(+c*|-FKoy}X(D_b#etO|YR z(BGZ)0Ntfv-7R4GHoXp?l5g#*={S1{u-QzxCGng*oWr~@X-5f~RA14b8~B+pLKvr4 zfgL|7I>jlak9>D4=(i(cqYf7#318!OSR=^`xxvI!bBlS??`xxWeg?+|>MxaIdH1U~#1tHu zB{QMR?EGRmQ_l4p6YXJ{o(hh-7Tdm>TAX380TZZZyVkqHNzjUn*_|cb?T? zt;d2s-?B#Mc>T-gvBmQZx(y_cfkXZO~{N zT6rP7SD6g~n9QJ)8F*8uHxTLCAZ{l1Y&?6v)BOJZ)=R-pY=Y=&1}jE7fQ>USS}xP#exo57uND0i*rEk@$;nLvRB@u~s^dwRf?G?_enN@$t* zbL%JO=rV(3Ju8#GqUpeE3l_Wu1lN9Y{D4uaUe`g>zlj$1ER$6S6@{m1!~V|bYkhZA z%CvrDRTkHuajMU8;&RZ&itnC~iYLW4DVkP<$}>#&(`UO>!n)Po;Mt(SY8Yb`AS9lt znbX^i?Oe9r_o=?})IHKHoQGKXsps_SE{hwrg?6dMI|^+$CeC&z@*LuF+P`7LfZ*yr+KN8B4{Nzv<`A(wyR@!|gw{zB6Ha ziwPAYh)oJ(nlqSknu(8g9N&1hu0$vFK$W#mp%>X~AU1ay+EKWcFdif{% z#4!4aoVVJ;ULmkQf!ke2}3hqxLK>eq|-d7Ly7-J9zMpT`?dxo6HdfJA|t)?qPEVBDv z{y_b?4^|YA4%WW0VZd8C(ZgQzRI5(I^)=Ub`Y#MHc@nv0w-DaJAqsbEHDWG8Ia6ju zo-iyr*sq((gEwCC&^TYBWt4_@|81?=B-?#P6NMff(*^re zYqvDuO`K@`mjm_Jd;mW_tP`3$cS?R$jR1ZN09$YO%_iBqh5ftzSpMQQtxKFU=FYmP zeY^jph+g<4>YO;U^O>-NFLn~-RqlHvnZl2yd2A{Yc1G@Ga$d+Q&(f^tnPf+Z7serIU};17+2DU_f4Z z@GaPFut27d?!YiD+QP@)T=77cR9~MK@bd~pY%X(h%L={{OIb8IQmf-!xmZkm8A0Ga zQSWONI17_ru5wpHg3jI@i9D+_Y|pCqVuHJNdHUauTD=R$JcD2K_liQisqG$(sm=k9;L* z!L?*4B~ql7uioSX$zWJ?;q-SWXRFhz2Jt4%fOHA=Bwf|RzhwqdXGr78y$J)LR7&3T zE1WWz*>GPWKZ0%|@%6=fyx)5rzUpI;bCj>3RKzNG_1w$fIFCZ&UR0(7S?g}`&Pg$M zf`SLsz8wK82Vyj7;RyKmY{a8G{2BHG%w!^T|Njr!h9TO2LaP^_f22Q1=l$QiU84ao zHe_#{S6;qrC6w~7{y(hs-?-j?lbOfgH^E=XcSgnwW*eEz{_Z<_xN#0001NP)t-s|Ns9~ z#rXRE|M&d=0au&!`~QyF`q}dRnBDt}*!qXo`c{v z{Djr|@Adh0(D_%#_&mM$D6{kE_x{oE{l@J5@%H*?%=t~i_`ufYOPkAEn!pfkr2$fs z652Tz0001XNklqeeKN4RM4i{jKqmiC$?+xN>3Apn^ z0QfuZLym_5b<*QdmkHjHlj811{If)dl(Z2K0A+ekGtrFJb?g|wt#k#pV-#A~bK=OT ts8>{%cPtyC${m|1#B1A6#u!Q;umknL1chzTM$P~L002ovPDHLkV1lTfnu!1a diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 797d452e458972bab9d994556c8305db4c827017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index 6ed2d933e1120817fe9182483a228007b18ab6ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cd7b0099ca80c806f8fe495613e8d6c69460d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index fe730945a01f64a61e2235dbe3f45b08f7729182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index 502f463a9bc882b461c96aadf492d1729e49e725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 0ec303439225b78712f49115768196d8d76f6790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index e9f5fea27c705180eb716271f41b582e76dcbd90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1674 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 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 0467bf12aa4d28f374bb26596605a46dcbb3e7c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/100.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/100.png new file mode 100644 index 0000000000000000000000000000000000000000..f4aa617fb45a839ddd73b71349606d7cb8391de9 GIT binary patch literal 4621 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 literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/114.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/114.png new file mode 100644 index 0000000000000000000000000000000000000000..3adfc86fc73a50988c73567469531f0edfbf454c GIT binary patch literal 5469 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 literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/120.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/120.png new file mode 100644 index 0000000000000000000000000000000000000000..ce98eb078c0f4c7b6ec7fc8040b3458ccafd3e9e GIT binary patch literal 5953 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 literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/144.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/144.png new file mode 100644 index 0000000000000000000000000000000000000000..a379f5916cc339d94f6bb1509f9c57f81baf6aec GIT binary patch literal 7402 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 literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/167.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/167.png new file mode 100644 index 0000000000000000000000000000000000000000..676f70a4d21f9693b14630a7471ca652244c3df1 GIT binary patch literal 8758 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 YmaiM@HITxWMi3+w1r7NcIrHHE0VT8R#Q*>R literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/180.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/180.png new file mode 100644 index 0000000000000000000000000000000000000000..c15a23775e988bd28f785147a2cf3e68f8af46b6 GIT binary patch literal 9563 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 Hu0mjfn@lr9 literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/29.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/29.png new file mode 100644 index 0000000000000000000000000000000000000000..3a66bf948bd8bb2b5cf4261d7abc44b8fb4f3c4c GIT binary patch literal 999 zcmVPx&p-DtRR7gwhmu+a4RT#&A=YDzaXKEojEU>Z{Bv@iEpqVj8g@w>C7LA!7+QiT= zEwX|j3n?nHK8U?QFStGw(iSO;J`_o4YfL``Svs~z8*G(@LT!8Y+;8W^b?!a(Je%%I zd)61PFXz7RbD#4+*LD4`m!q^cMk)B_SwTdd|@H zT7Y`7v0#4xS>pxO0W1ejLb&332le=^W2PF~UCc>V>-L++#Hw>Dmq4p(?hBe%oNYzC zEnJ@*C9oZtD`$bqST6~t^w~a3=#|DPDog{F1yRwECg8f*?Bx0iof=$E5f+REu!ot9 z>tLQD4*&fwfL>0a6NAjjVaufgR5Xkx;OaVu#`YY!Jbcv=lSEK^jbiwuwpm3)Im&`h z{B7vo8?m;@5Mu3y{6^)fZ>6Z zg-aCso(#EhjcX4knvVZvXni%$(StFo8a)oY9#I@KY}ysjcQE0$`#fH0Do}Iz#X!aW zDfoHV*1oFmpJZmOt9RIO*ElUt$mtg9xPwwa_YO3bH5pD)`o{Y`g=7$e4SV#E?MTVY=y(%F`ZSeGBQ zvF>DM&{8Z3E6*nc4StXXzfiv--Xvs3jrF6}8L@0Px)nMp)JR9HvtS!rxkRTTd2+vd#zr5K>bNTHw&vK6eNA%H}&3lNP&K%*#1QZ_Xp zMz)GAsS-4TqAUgyAq5M@)I*Wi=inR}S&RXJEQTHfB@CaSBCkM( zhl$xX=aK|$T@lBY7TfnRhey}w&4Zin# z6aIEgpl=O}$coLCVA2clsPCcFPf!U@%LQ?a6VH9v!@0Y(Fd87CyJv$6{KLkzJf7oO@t zmbS&F1xSEm5sqGi6$~hn5eWl7Z!&T5tb@M86~r1i&L4A7FhYSI1Z0KSbj1d-Omgki zejAt1bL2lJBe$<4Kv^coA156g*>0m}p(K>kZ*?|QUuqqY5+H?;m?aCAfnR(k*Dl@g$3x{Z2KT>z`58`%A=DU{Bvul*v7;mZ!X7szIxnCkISg3jN|@Z5}tfj#V0RE@#ts;Jqu+l92Lcw*&2NRuuF=A!cO@|?04xdiM-rY z6~o-x08SsU@#jfLFg37P!Lrv440u{b-T)aDrMC+(Da^%_HH>&oMfftu#;O>0)mWIm zT1Reg36%u!T@6{Cn7HYEpOB&Iz=3TxY>R_r+|G4YBM{B+=I4du4t`o4$JAARWals} zC~{M!MIlbk0V)sIFLHc(ID|d5Cf1k75XxpK`&>tEA4#w|X{j!5plt$OACe%e3}+76 zBJ4+YTKMrx6EmxIoZ9DL?d+Ji43y{O$bI>eV4rSvx_X+r%y59oKwf_tw#_kViH;L{ zZEXL_6g9APnuc!uBvh70F=V`w@QI1CM2jxW;O7-|?JeVtKJ{3nB-P^?r;H?4xoLieW^l2 z2T^xWGze$t(vibtD|r!Kh#muFp@b;q{ss~wu$OY5MojPx+Ye_^wRA@u(T6t^~RUH1_TsyOc7OH?yKtY0{pvWD;f?xF>=>sZC3l5@c)ol1=uS zH}Cs>zxVx)d5m+;0f0LIlYoL#9DCPC@XMYkF6KLkgz48?KU5!(nkJ!Tx{NMQt4M9Y ziq}l5V+6zl@y(hDb}WwI(m4l;#vrQzW49iJFf<3E5x}-MQtC>`7^R}?vuZII7PUE- zWMJbQ3p*BDNUFu4Xf8u8SBW#osN^-a1qA-$=rc;gfGHZBXpE7(+z39L5Js(fOnjMW z07{#Z0Fm(v&u|Qz=R^8n6|CU2!*luv5xl}7D~S)n14Uq>Hel3Xn7Y{j+qxjkw=cBd zPjT6(N`qK2FL69RS_8}OXY!MW9FQs`x=WSiVx+2R_efylI}~v%lsM{iy&gfvClc6e z4;CeuHeD|i_y5&EDrdKwcU3hbH_x_}o4J~i%GvGaT~*D<&9iOgW{#T?NusE8^(J1L z@1@q>XUcyn8pYR2WoHx=t?57BT=C?9aRH$kAXLO*N3LS=B{7j2SV6!Fap*}*+}OO# z-JGqQe1Ycj`Q4f)5~Axl9Oo)@`d!l*G~Jzx45im(<<3`}4Of(+&_tmCM~lufI`mbM zQkUV_Pf_e!Z=>LpgF9QvxVw#npLa(QDCB7WxB>!63ngIQi-3_Ku3X^wbzc-0PdaGW zLKdZKtvkpl3{jh-@H7`?_KAa0bbL~U&kyX~U_-8e>1#4V?qpu!==F+*eiJlNvz$G~ zao2;AC~9W)HPJpp!Qd<(mX8kM$Iooc*_VWrI<5~AGonz7S==j~5ABa)-ZMdD?ee2h z3kjFcyDZX+io0`vI>_o7#9MiOVUWpPOi?RcYm^Iwn4lE-_C^ddKl9_rfhZQg6vCAP zj(a=Fn3QYayDc^jY_~CLxsFxS!`QPXf_hCQ;RaNWIt~{g$aM%BlNcuD>QHVJF@!);WOOYV$4cIus^PC0I#pqQKzwl>5rN29JEi%bJ_A-i(G>0;(tzQ8eZnT}T76pVSu1(McWLS{EpG#(ha*L4GtfM5|vvvx8j ztTFKEdluGYg`pWtG$@EA^7Ae4SQx+Bz^1ttb}q4?_}p%XcSB)CxU3L6Q#Kfa>7~O% z$jS5L!U-!5vK{EEpCT zj9=vf`FuqLJ)T#E!bpnCCN0KXWjR`fP zl!78R-K_A8gDr1c7?|l3u0S!+hveJc`N|p> zPBJ_!Lz>s1@*izq3U|800000NkvXXu0mjf DJEOJZ literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/57.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/57.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4b7fb6ee9b45b2ccf34b1072958bf5d77d3554 GIT binary patch literal 2285 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 M07*qoM6N<$f@vRMUjP6A literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/60.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/60.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7322b86f3a6a5581909bc6dc9e4a14d081de74 GIT binary patch literal 2447 zcmV;A32^p_P)Px;Nl8RORA@u(TYGR+)fxYtyZ7$i-GqmcXNp#Y=-9`Au`t-N2!aJAP#_u^ihxrJ z7AP=SdDwwqd4$APEdj+^C*VLG6-pgIgQP7et@J^mKBy?QQ;>iyph$M_?%jLu>3rYa zyICV)H#0kQBYXbYWcKbk-|zcBu3(hhnh(ZEhHrtQVkt+XBSZE08Na;wI*J^{+y~QnGSCrF4IsQt(DPo?zX%OvA7Mn6yqW(ONZ{u2D!N>)prAA0^SMf(HIDzo!Jl5TxL!4QqQ=keTxaqeY!zujt^kgGz|YF0cW9~utA21v_p!+a|Nro=5aLmZMS~+OMD-s+%v>hp;HwrMofO5? zngE7P)mr_@uPS5Mzs=-uCk1bY^jRjjcpbRItw&?EOFapjVqA9-4MstY7^D_LMSW}_{pdU zP9K-h0$Bh|rg#3V#P|pOxO1i-_3KSM_pphgVgf;a2P~_1SzI|Tg89z|(Xp$*vXK#- z{!nt+$hM?g2p7Vw=O=2%q|9g-xcaLKmhK4R)CUeKM?^5|DINWWt9W8Y6bI@puBLu^ zT4LzE8tz>gKto*|FRqHAdS3xLcXt7w`XI9+WLky^aMM|d2}=XGZHk7?l`-ty9Os2> z3Q}R9^5r19_f~k}nd^0Qxk|zE(FRT)b)Xl1*00#b5`IRmLci}*s$l-6AhWc1a2T_H z=`#G}%qR{uSnQ_+c<=-blU4-K@Jt*ptcqdv>jkX%6=MuEzVBpIb*zF9`^x*?)_A zx>5U+k0dL?j>|+N3|KqO;2<^ZK0mr$BT&>+aZ{KB4qV3$I}DbB=c+v+&i6?l*0T__ zJXQ!al{#tB0c9Gd*9LI(uQnc^5@q#M(6Vh{@zx-E_Eqr61Ovwo+bAyaar7jiy&cr# zDxFhU-H)Oi5D82)B5~@dYADZ>6;RG5rnEks`ZHoR8kXogK*juLbrxpbbc0PcZn`XZfUC+4M9xVpZ*bF8x^CoQG65=XuIm} zxydT1Vde$Di($?f@R)gi-1=QDxeulwMp~t)NiPi~94$;rDK1g)=p+LlpG-u~R`$1E z9=^6z!Q8rFA|@Ez5}97B^M0LnX%`y=w5B40#tgfkX#snSky#Pj-o~H6vL7Y3iJr-O zF9(#PGZ{3m<_9`-5u6EVljChWDR_~av@};z0eJ2$D7}zJcs4n?WXJt4)1sanR3>A_%kb|0&MvvmMT?hgvo?v zcbm;4HLYX{B3&v<6`@TGXDEA4Kb8la)AVFPxIDvIP-0F`k!Luk>B)j{d4{u~#GIZY z&u~uDlLg@}zk_KH4GBxC`Cc|h57*5wo?GV?ecCz5pjU!9$RZn z?5zD_Uh)_<%a8I!-X)KeYdl+4o2Y-vgkKljwf|fVtF7w2)X#g@c(_SNcO4`~&d_kz z;z08?9=@oRD3nnR>A)-QMJ;M|CNFBW;b6+8#+bUEdwjyZs737_x~N4r)VxAI7aA{k z70&?vvNMi@uiD&(q?Sor3T6Kf&_qs%uHu!@RXiVeH3K2{9!F{g^?&%Cp4;q7gdG3? N002ovPDHLkV1jn3i(3Ey literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/72.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/72.png new file mode 100644 index 0000000000000000000000000000000000000000..cc6e33219d0ff34ec6954b9f32c3969b78af7f67 GIT binary patch literal 3085 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 ReGC8q002ovPDHLkV1lz6sNnzr literal 0 HcmV?d00001 diff --git a/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/87.png b/front/capstone_front/ios/Runner/Assets.xcassets/AppIcon.appiconset/_/87.png new file mode 100644 index 0000000000000000000000000000000000000000..58d1ca9d837b36785a39aef788ba84b5da5befbd GIT binary patch literal 3856 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 PCDKyUeOjkt_wxS$pzu_~ literal 0 HcmV?d00001 diff --git a/front/capstone_front/lib/main.dart b/front/capstone_front/lib/main.dart index 928a87f356..945e426dc3 100644 --- a/front/capstone_front/lib/main.dart +++ b/front/capstone_front/lib/main.dart @@ -13,6 +13,7 @@ import 'package:capstone_front/screens/signup/signup_college_screen.dart'; import 'package:capstone_front/screens/signup/signup_country_screen.dart'; import 'package:capstone_front/screens/signup/signup_email_screen.dart'; import 'package:capstone_front/screens/signup/signup_email_auth_screen.dart'; +import 'package:capstone_front/screens/signup/signup_name.dart'; import 'package:capstone_front/screens/signup/signup_service.dart'; import 'package:capstone_front/screens/main_screen.dart'; import 'package:capstone_front/screens/notice/notice_screen.dart'; @@ -23,13 +24,14 @@ import 'package:capstone_front/screens/qna/qna_write/qna_write_screen.dart'; import 'package:capstone_front/screens/signup/singup_password_screen.dart'; import 'package:capstone_front/screens/speech_practice/speech_practice_screen.dart'; import 'package:capstone_front/screens/speech_practice/speech_screen.dart'; -import 'package:capstone_front/screens/speech_practice/speech_select_sentence_screen.dart'; +import 'package:capstone_front/screens/speech_practice/speech_example_sentences/speech_select_sentence_screen.dart'; import 'package:capstone_front/utils/page_animation.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; @@ -138,18 +140,18 @@ final GoRouter router = GoRouter( GoRoute( name: 'signup', path: '/signup', - builder: (context, state) => const SignupEmailScreen(), + builder: (context, state) => const SignupNameScreen(), routes: [ + GoRoute( + name: 'email', + path: 'email', + builder: (context, state) => const SignupEmailScreen(), + ), GoRoute( name: 'password', path: 'password', builder: (context, state) => const SignupPasswordScreen(), ), - GoRoute( - name: 'emailAuth', - path: 'emailAuth', - builder: (context, state) => const SignupEmailAuthScreen(), - ), GoRoute( name: 'college', path: 'college', diff --git a/front/capstone_front/lib/screens/chatbot/chatbot.dart b/front/capstone_front/lib/screens/chatbot/chatbot.dart index 0288449950..303ad142c5 100644 --- a/front/capstone_front/lib/screens/chatbot/chatbot.dart +++ b/front/capstone_front/lib/screens/chatbot/chatbot.dart @@ -37,16 +37,9 @@ class _ChatbotScreenState extends State { return Scaffold( resizeToAvoidBottomInset: true, appBar: AppBar( - iconTheme: const IconThemeData( - color: Colors.white, - ), - backgroundColor: Theme.of(context).primaryColor, + scrolledUnderElevation: 0, title: Text( tr('chatbotScreen.chatbot'), - style: const TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - ), ), ), body: Column( @@ -77,8 +70,10 @@ class _ChatbotScreenState extends State { painter: BubblePainter(), child: Padding( padding: const EdgeInsets.all(10.0), - child: - Text(_messages[_messages.length - 1 - index]), + child: Text( + _messages[_messages.length - 1 - index], + style: const TextStyle(color: Colors.white), + ), ), ), ), @@ -87,12 +82,12 @@ class _ChatbotScreenState extends State { ), ), ), - const Divider( - height: 0.0, - color: Colors.white, - ), + // const Divider( + // height: 0.0, + // color: Colors.white, + // ), Padding( - padding: const EdgeInsets.all(10.0), + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10), child: Container( decoration: BoxDecoration( color: const Color(0xFFDFE7EE), diff --git a/front/capstone_front/lib/screens/helper/helper_board/helper_board_screen.dart b/front/capstone_front/lib/screens/helper/helper_board/helper_board_screen.dart index 9ca020e7dd..a3cb42fabb 100644 --- a/front/capstone_front/lib/screens/helper/helper_board/helper_board_screen.dart +++ b/front/capstone_front/lib/screens/helper/helper_board/helper_board_screen.dart @@ -20,41 +20,36 @@ class _HelperBoardState extends State { tr('helper.need_helpee'), ]; int _selectedHelperIndex = 0; - final int _selectedPageIndex = 0; @override Widget build(BuildContext context) { return Scaffold( body: Stack( children: [ - Column( - children: [ - Container( - height: 5, - color: Colors.white, - ), - selectWritingType(context), - Container( - color: Colors.white, - height: 10, - ), - // Container( - // height: 1, - // decoration: const BoxDecoration( - // color: Color(0xffd2d7dd), - // ), - // ), - Expanded( - child: ListView.builder( - itemBuilder: (BuildContext context, int index) { - return HelperWritingCard( - index: index, - ); - }, - itemCount: helperWriting.length, + Padding( + padding: const EdgeInsets.symmetric(horizontal: 15.0), + child: Column( + children: [ + selectWritingType(context), + Container( + color: Colors.white, + height: 10, ), - ), - ], + Expanded( + child: ListView.builder( + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: const EdgeInsets.only(bottom: 10), + child: HelperWritingCard( + index: index, + ), + ); + }, + itemCount: helperWriting.length, + ), + ), + ], + ), ), Positioned( bottom: 20, @@ -114,7 +109,7 @@ class _HelperBoardState extends State { scrollDirection: Axis.horizontal, itemBuilder: (context, index) { return Padding( - padding: EdgeInsets.only(left: index == 0 ? 20 : 10), + padding: EdgeInsets.only(left: index == 0 ? 0 : 10), child: GestureDetector( onTap: () { setState(() { @@ -123,18 +118,21 @@ class _HelperBoardState extends State { }, child: Container( padding: const EdgeInsets.symmetric( - horizontal: 15, + horizontal: 10, ), decoration: BoxDecoration( - color: _selectedHelperIndex == index - ? const Color(0xb4000000) - : Colors.white, - borderRadius: BorderRadius.circular(16), - border: _selectedHelperIndex == index - ? Border.all(color: const Color(0x00000000)) - : Border.all( - color: const Color(0xffE4E7EB), - )), + color: _selectedHelperIndex == index + ? const Color(0xb4000000) + : Colors.white, + borderRadius: BorderRadius.circular(16), + border: _selectedHelperIndex == index + ? Border.all( + color: const Color(0x00000000), + width: 1.5, + ) + : Border.all( + color: const Color(0xffE4E7EB), width: 1.5), + ), child: Align( alignment: Alignment.center, child: Text( diff --git a/front/capstone_front/lib/screens/helper/helper_board/helper_writing_card.dart b/front/capstone_front/lib/screens/helper/helper_board/helper_writing_card.dart index 1b360cf7d0..18a8a3ebc9 100644 --- a/front/capstone_front/lib/screens/helper/helper_board/helper_writing_card.dart +++ b/front/capstone_front/lib/screens/helper/helper_board/helper_writing_card.dart @@ -16,54 +16,44 @@ class HelperWritingCard extends StatefulWidget { class _HelperWritingCardState extends State { @override Widget build(BuildContext context) { - return Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 10), - child: Container( - decoration: const BoxDecoration( - border: Border( - top: BorderSide( - color: Color(0xffd2d7dd), - width: 1, - ), - ), - ), + return InkWell( + onTap: () { + context.push('/helper/writing', extra: widget.index); + }, + child: Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + border: Border.all( + color: const Color(0xffd2d7dd), + width: 1.5, ), + borderRadius: BorderRadius.circular(16), ), - InkWell( - onTap: () { - context.push('/helper/writing', extra: widget.index); - }, - child: Container( - width: double.infinity, - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - helperWriting[widget.index][0], - style: Theme.of(context).textTheme.titleMedium, - overflow: TextOverflow.ellipsis, - maxLines: 1, - ), - Text( - '${helperWriting[widget.index][1]} | ${helperWriting[widget.index][2]}', - style: const TextStyle( - fontFamily: 'pretendard', - fontSize: 14, - fontWeight: FontWeight.w400, - color: Color(0xff868e96), - ), - overflow: TextOverflow.ellipsis, - maxLines: 1, - ), - ], + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + helperWriting[widget.index][0], + style: Theme.of(context).textTheme.titleMedium, + overflow: TextOverflow.ellipsis, + maxLines: 1, ), - ), + Text( + '${helperWriting[widget.index][1]} | ${helperWriting[widget.index][2]}', + style: const TextStyle( + fontFamily: 'pretendard', + fontSize: 14, + fontWeight: FontWeight.w400, + color: Color(0xff868e96), + ), + overflow: TextOverflow.ellipsis, + maxLines: 1, + ), + ], ), - ], + ), ); } } diff --git a/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_card.dart b/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_card.dart index 325ccc88c6..13fe85be80 100644 --- a/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_card.dart +++ b/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_card.dart @@ -22,7 +22,14 @@ class _HelperChattingCardState extends State { onTap: () {}, child: Container( width: double.infinity, - padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 20), + padding: const EdgeInsets.symmetric(vertical: 15), + decoration: const BoxDecoration( + // border: Border( + // bottom: BorderSide( + // color: Color(0xffd2d7dd), + // ), + // ), + ), child: Row( children: [ SizedBox( @@ -33,7 +40,7 @@ class _HelperChattingCardState extends State { child: Image.asset('assets/images/carrot_profile.png'), ), ), - const SizedBox(width: 20), + const SizedBox(width: 15), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_screen.dart b/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_screen.dart index 93ab509a54..5bcfc96e9f 100644 --- a/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_screen.dart +++ b/front/capstone_front/lib/screens/helper/helper_chatting/helper_chatting_screen.dart @@ -16,8 +16,11 @@ class _HelperChattingScreenState extends State { return Scaffold( body: ListView.builder( itemBuilder: (BuildContext context, int index) { - return HelperChattingCard( - index: index, + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 15), + child: HelperChattingCard( + index: index, + ), ); }, itemCount: helperChatting.length, diff --git a/front/capstone_front/lib/screens/home/home_screen.dart b/front/capstone_front/lib/screens/home/home_screen.dart index 53da3f362f..fccd712527 100644 --- a/front/capstone_front/lib/screens/home/home_screen.dart +++ b/front/capstone_front/lib/screens/home/home_screen.dart @@ -59,7 +59,7 @@ class _HomeScreenState extends State { color: Theme.of(context).colorScheme.primary, ), Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), + padding: const EdgeInsets.symmetric(horizontal: 15), child: Transform.translate( offset: const Offset(0, -80), child: Column( @@ -79,7 +79,7 @@ class _HomeScreenState extends State { ), ], ), - SizedBox(height: 20), + SizedBox(height: 15), Text("소프트웨어융합대학 소프트웨어학부"), Text( "20191557", @@ -89,7 +89,7 @@ class _HomeScreenState extends State { ], ), ), - const SizedBox(height: 20), + const SizedBox(height: 15), WhiteBox( content: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -161,7 +161,7 @@ class _HomeScreenState extends State { ), ), const SizedBox( - height: 20, + height: 15, ), WhiteBox( content: Column( @@ -355,7 +355,7 @@ class _HomeScreenState extends State { children: [ Text(tr('mainScreen.language_setting')), const SizedBox( - height: 20, + height: 15, ), Row( children: [ diff --git a/front/capstone_front/lib/screens/main_screen.dart b/front/capstone_front/lib/screens/main_screen.dart index ca28db64f1..7c6bfa7e93 100644 --- a/front/capstone_front/lib/screens/main_screen.dart +++ b/front/capstone_front/lib/screens/main_screen.dart @@ -5,6 +5,8 @@ import 'package:capstone_front/screens/qna/qna_list_screen/qna_list_screen.dart' import 'package:capstone_front/screens/speech_practice/speech_screen.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:fluttertoast/fluttertoast.dart'; class MainScreen extends StatefulWidget { const MainScreen({super.key}); @@ -23,6 +25,8 @@ class _MainScreenState extends State { ]; int selectedPageIndex = 2; @override + DateTime? backButtonPressedTime; + @override Widget build(BuildContext context) { return Scaffold( body: screenList.elementAt(selectedPageIndex), @@ -68,4 +72,20 @@ class _MainScreenState extends State { ), ); } + + // void _goBack(BuildContext context) async { + // DateTime currentTime = DateTime.now(); + + // if (backButtonPressedTime == null || + // currentTime.difference(backButtonPressedTime!) > + // const Duration(seconds: 2)) { + // backButtonPressedTime = currentTime; + // Fluttertoast.showToast( + // msg: "뒤로가기 버튼을 한번 더 누르면 종료됩니다.", + // gravity: ToastGravity.BOTTOM, + // ); + // } else { + // SystemNavigator.pop(); + // } + // } } diff --git a/front/capstone_front/lib/screens/signup/signup_college_screen.dart b/front/capstone_front/lib/screens/signup/signup_college_screen.dart index 037a802069..13186986dd 100644 --- a/front/capstone_front/lib/screens/signup/signup_college_screen.dart +++ b/front/capstone_front/lib/screens/signup/signup_college_screen.dart @@ -1,6 +1,5 @@ import 'package:capstone_front/screens/signup/college_department.dart'; import 'package:capstone_front/screens/signup/signup_service.dart'; -import 'package:capstone_front/screens/signup/signup_util.dart'; import 'package:capstone_front/utils/basic_button.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; @@ -50,7 +49,6 @@ class _SignupCollegeScreenState extends State { fontWeight: FontWeight.w600, ), ), - const SizedBox(height: 5), Row( children: [ Expanded( @@ -88,7 +86,10 @@ class _SignupCollegeScreenState extends State { }); }, child: Ink( - child: Text(_college), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: Text(_college), + ), ), ), ), @@ -102,7 +103,6 @@ class _SignupCollegeScreenState extends State { fontWeight: FontWeight.w600, ), ), - const SizedBox(height: 5), Row( children: [ Expanded( @@ -136,7 +136,10 @@ class _SignupCollegeScreenState extends State { }); }, child: Ink( - child: Text(_department), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0), + child: Text(_department), + ), ), ), ), diff --git a/front/capstone_front/lib/screens/signup/signup_country_screen.dart b/front/capstone_front/lib/screens/signup/signup_country_screen.dart index b41eb5e226..070dacdba5 100644 --- a/front/capstone_front/lib/screens/signup/signup_country_screen.dart +++ b/front/capstone_front/lib/screens/signup/signup_country_screen.dart @@ -102,24 +102,25 @@ class _SignupCountryScreenState extends State { const SizedBox(height: 5), const Spacer(), BasicButton( - text: tr('signup.complete_signup'), + text: tr('signup.next'), onPressed: () async { if (_country != tr('signup.select_country')) { userInfo['country'] = _country; - print(userInfo['id']); - print(userInfo['pw']); - print(userInfo['college']); - print(userInfo['department']); - print(userInfo['country']); + context.push('/signup/email'); + // print(userInfo['id']); + // print(userInfo['pw']); + // print(userInfo['college']); + // print(userInfo['department']); + // print(userInfo['country']); - String result = await signup(); - switch (result) { - case "success": - context.go('/login'); - makeToast("회원가입에 성공하였습니다"); - default: - makeToast("에러: $result"); - } + // String result = await signup(); + // switch (result) { + // case "success": + // context.go('/login'); + // makeToast("회원가입에 성공하였습니다"); + // default: + // makeToast("에러: $result"); + // } } }, ), diff --git a/front/capstone_front/lib/screens/signup/signup_email_auth_screen.dart b/front/capstone_front/lib/screens/signup/signup_email_auth_screen.dart index 033b5f6963..df8ed3eb06 100644 --- a/front/capstone_front/lib/screens/signup/signup_email_auth_screen.dart +++ b/front/capstone_front/lib/screens/signup/signup_email_auth_screen.dart @@ -1,57 +1,57 @@ -import 'package:capstone_front/screens/signup/signup_service.dart'; -import 'package:capstone_front/screens/signup/signup_util.dart'; -import 'package:capstone_front/utils/basic_button.dart'; -import 'package:easy_localization/easy_localization.dart'; -import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; +// import 'package:capstone_front/screens/signup/signup_service.dart'; +// import 'package:capstone_front/screens/signup/signup_util.dart'; +// import 'package:capstone_front/utils/basic_button.dart'; +// import 'package:easy_localization/easy_localization.dart'; +// import 'package:flutter/material.dart'; +// import 'package:go_router/go_router.dart'; -class SignupEmailAuthScreen extends StatefulWidget { - const SignupEmailAuthScreen({super.key}); +// class SignupEmailAuthScreen extends StatefulWidget { +// const SignupEmailAuthScreen({super.key}); - @override - State createState() => _SignupEmailAuthScreenState(); -} +// @override +// State createState() => _SignupEmailAuthScreenState(); +// } -class _SignupEmailAuthScreenState extends State { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - automaticallyImplyLeading: false, - ), - body: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - tr('signup.auth_email'), - style: const TextStyle( - fontSize: 24, - fontWeight: FontWeight.w600, - ), - ), - const SizedBox(height: 10), - Text('${tr('signup.kmu_email')}: ${userInfo['id']}@kookmin.ac.kr'), - const SizedBox(height: 10), - Text(tr('signup.detail_auth_email')), - const Spacer(), - BasicButton( - text: tr('signup.next'), - onPressed: () async { - String result = await isEmailAuth( - '${userInfo['id']}@kookmin.ac.kr', userInfo['pw']!); - print(result); - if (result == "success") { - context.push('/signup/college'); - } else { - makeToast("이메일이 인증되지 않았습니다"); - } - }), - const SizedBox(height: 20), - ], - ), - ), - ); - } -} +// class _SignupEmailAuthScreenState extends State { +// @override +// Widget build(BuildContext context) { +// return Scaffold( +// appBar: AppBar( +// automaticallyImplyLeading: false, +// ), +// body: Padding( +// padding: const EdgeInsets.symmetric(horizontal: 20.0), +// child: Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Text( +// tr('signup.auth_email'), +// style: const TextStyle( +// fontSize: 24, +// fontWeight: FontWeight.w600, +// ), +// ), +// const SizedBox(height: 10), +// Text('${tr('signup.kmu_email')}: ${userInfo['id']}@kookmin.ac.kr'), +// const SizedBox(height: 10), +// Text(tr('signup.detail_auth_email')), +// const Spacer(), +// BasicButton( +// text: tr('signup.next'), +// onPressed: () async { +// String result = await isEmailAuth( +// '${userInfo['id']}@kookmin.ac.kr', userInfo['pw']!); +// print(result); +// if (result == "success") { +// context.push('/signup/college'); +// } else { +// makeToast("이메일이 인증되지 않았습니다"); +// } +// }), +// const SizedBox(height: 20), +// ], +// ), +// ), +// ); +// } +// } diff --git a/front/capstone_front/lib/screens/signup/signup_name.dart b/front/capstone_front/lib/screens/signup/signup_name.dart new file mode 100644 index 0000000000..f810b6df1b --- /dev/null +++ b/front/capstone_front/lib/screens/signup/signup_name.dart @@ -0,0 +1,61 @@ +import 'package:capstone_front/screens/signup/signup_service.dart'; +import 'package:capstone_front/screens/signup/signup_util.dart'; +import 'package:capstone_front/utils/basic_button.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; + +class SignupNameScreen extends StatefulWidget { + const SignupNameScreen({super.key}); + + @override + State createState() => _SignupNameScreenState(); +} + +class _SignupNameScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + ), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + tr('signup.enter_name'), + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 10), + SignupTextField( + context: context, + label: tr('signup.name'), + info: 'name', + isObscure: false, + userInfo: userInfo), + SignupTextField( + context: context, + label: tr('signup.student_number'), + info: 'studentNum', + isObscure: false, + userInfo: userInfo), + const Spacer(), + BasicButton( + text: tr('signup.next'), + onPressed: () { + if (userInfo['name'] != '' && userInfo['studentNum'] != '') { + context.push('/signup/college'); + } + }), + const SizedBox(height: 20), + ], + ), + ), + ); + } +} diff --git a/front/capstone_front/lib/screens/signup/signup_service.dart b/front/capstone_front/lib/screens/signup/signup_service.dart index c14944484b..69a2de1bf1 100644 --- a/front/capstone_front/lib/screens/signup/signup_service.dart +++ b/front/capstone_front/lib/screens/signup/signup_service.dart @@ -14,10 +14,13 @@ import 'package:fluttertoast/fluttertoast.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; +late UserCredential credential; + Map userInfo = { 'id': '', 'pw': '', 'pwRe': '', + 'name': '', 'studentNum': '', 'college': '', 'department': '', @@ -58,34 +61,31 @@ Future signup() async { } } -Future sendEmailAuth(String email, String pw) async { +Future sendEmailAuth(String email, String pw) async { try { - UserCredential credential = - await FirebaseAuth.instance.createUserWithEmailAndPassword( + credential = await FirebaseAuth.instance.createUserWithEmailAndPassword( email: '${userInfo['id']}@kookmin.ac.kr', password: userInfo['pw']!, ); - await credential.user!.sendEmailVerification(); - User? user = credential.user; - await user!.reload(); - user = FirebaseAuth.instance.currentUser; + await credential.user?.sendEmailVerification(); + + return "success"; } on FirebaseAuthException catch (e) { - print(e.code); + return e.code; } } Future isEmailAuth(String email, String pw) async { try { - UserCredential credential = await FirebaseAuth.instance - .signInWithEmailAndPassword(email: email, password: pw); - - User? user = credential.user; - await user!.reload(); - user = FirebaseAuth.instance.currentUser; + // UserCredential credential = await FirebaseAuth.instance + // .signInWithEmailAndPassword(email: email, password: pw); - if (user!.emailVerified) { - user = credential.user; + // User? user = credential.user; + // await user!.reload(); + // user = FirebaseAuth.instance.currentUser; + if (credential.user!.emailVerified) { + // user = credential.user; return "success"; } else { return "email"; diff --git a/front/capstone_front/lib/screens/signup/singup_password_screen.dart b/front/capstone_front/lib/screens/signup/singup_password_screen.dart index 1fd21b5d5a..326aa3d7f4 100644 --- a/front/capstone_front/lib/screens/signup/singup_password_screen.dart +++ b/front/capstone_front/lib/screens/signup/singup_password_screen.dart @@ -48,11 +48,45 @@ class _SignupPasswordScreenState extends State { BasicButton( text: tr('signup.next'), onPressed: () async { - // Todo: 비밀번호 조건 적용 필요(6자 이상 등) - if (userInfo['pw'] != '' && - userInfo['pw'] == userInfo['pwRe']) { - await sendEmailAuth(userInfo['id']!, userInfo['pw']!); - context.push('/signup/emailAuth'); + if (userInfo['pw'] != userInfo['pwRe']) { + makeToast(tr('signup.password_not_same')); + } else if (userInfo['pw'] != '') { + // 파이어베이스에 계정 생성을 시도하면서 인증 메일 전송 + String result = + await sendEmailAuth(userInfo['id']!, userInfo['pw']!); + // 파이어베이스에 계정 생성 완료, 인증 메일 전송 완료 + if (result == "success") { + print(userInfo['id']); + print(userInfo['pw']); + print(userInfo['name']); + print(userInfo['studentNum']); + print(userInfo['college']); + print(userInfo['department']); + print(userInfo['country']); + + // Todo: 서버로 회원가입된 내역 전송 + + showDialog( + context: context, + builder: (BuildContext context) => AlertDialog( + title: Text(tr('signup.auth_email')), + content: Text(tr('signup.detail_auth_email')), + actions: [ + ElevatedButton( + onPressed: () => context.go('/login'), + child: Text(tr('signup.ok'))), + ], + ), + ); + } + // 파이어베이스에 계정 생성 실패 + else { + if (result == "weak-password") { + makeToast(tr('signup.weak_password')); + } else if (result == "email-already-in-use") { + makeToast(tr('signup.duplicated_email')); + } + } } }), const SizedBox(height: 20), diff --git a/front/capstone_front/lib/screens/speech_practice/speech_custom_sentence.dart b/front/capstone_front/lib/screens/speech_practice/speech_custom_sentence/speech_custom_sentence.dart similarity index 95% rename from front/capstone_front/lib/screens/speech_practice/speech_custom_sentence.dart rename to front/capstone_front/lib/screens/speech_practice/speech_custom_sentence/speech_custom_sentence.dart index e8ff27a38b..ff99079126 100644 --- a/front/capstone_front/lib/screens/speech_practice/speech_custom_sentence.dart +++ b/front/capstone_front/lib/screens/speech_practice/speech_custom_sentence/speech_custom_sentence.dart @@ -22,7 +22,7 @@ class _SpeechCustomSentenceScreenState }, child: Scaffold( body: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), + padding: const EdgeInsets.symmetric(horizontal: 15), child: Column( children: [ Container( @@ -58,7 +58,7 @@ class _SpeechCustomSentenceScreenState context.push('/speech/practice', extra: [_textController.text, '']); }), - const SizedBox(height: 20), + const SizedBox(height: 15), ], ), ), diff --git a/front/capstone_front/lib/screens/speech_practice/speech_practice_card.dart b/front/capstone_front/lib/screens/speech_practice/speech_custom_sentence/speech_practice_card.dart similarity index 98% rename from front/capstone_front/lib/screens/speech_practice/speech_practice_card.dart rename to front/capstone_front/lib/screens/speech_practice/speech_custom_sentence/speech_practice_card.dart index f10df79286..560dd34b81 100644 --- a/front/capstone_front/lib/screens/speech_practice/speech_practice_card.dart +++ b/front/capstone_front/lib/screens/speech_practice/speech_custom_sentence/speech_practice_card.dart @@ -32,7 +32,7 @@ class _SpeechPracitceCardState extends State { borderRadius: BorderRadius.circular(16), border: Border.all( color: const Color(0xffd2d7dd), - width: 2, + width: 1.5, ), ), child: Padding( diff --git a/front/capstone_front/lib/screens/speech_practice/speech_select_sentence_screen.dart b/front/capstone_front/lib/screens/speech_practice/speech_example_sentences/speech_select_sentence_screen.dart similarity index 84% rename from front/capstone_front/lib/screens/speech_practice/speech_select_sentence_screen.dart rename to front/capstone_front/lib/screens/speech_practice/speech_example_sentences/speech_select_sentence_screen.dart index 5bb1c2ee04..4bade1e913 100644 --- a/front/capstone_front/lib/screens/speech_practice/speech_select_sentence_screen.dart +++ b/front/capstone_front/lib/screens/speech_practice/speech_example_sentences/speech_select_sentence_screen.dart @@ -1,4 +1,4 @@ -import 'package:capstone_front/screens/speech_practice/speech_sentence_card.dart'; +import 'package:capstone_front/screens/speech_practice/speech_example_sentences/speech_sentence_card.dart'; import 'package:capstone_front/screens/speech_practice/utils/example_sentences.dart'; import 'package:flutter/material.dart'; @@ -14,7 +14,7 @@ class _SpeechSentenceScreenState extends State { Widget build(BuildContext context) { return Scaffold( body: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), + padding: const EdgeInsets.symmetric(horizontal: 15), child: ListView.builder( itemBuilder: (BuildContext context, int index) { return Padding( diff --git a/front/capstone_front/lib/screens/speech_practice/speech_sentence_card.dart b/front/capstone_front/lib/screens/speech_practice/speech_example_sentences/speech_sentence_card.dart similarity index 99% rename from front/capstone_front/lib/screens/speech_practice/speech_sentence_card.dart rename to front/capstone_front/lib/screens/speech_practice/speech_example_sentences/speech_sentence_card.dart index fec2f68289..0c5e71a9a4 100644 --- a/front/capstone_front/lib/screens/speech_practice/speech_sentence_card.dart +++ b/front/capstone_front/lib/screens/speech_practice/speech_example_sentences/speech_sentence_card.dart @@ -46,7 +46,7 @@ class _SpeechSentenceCardState extends State { borderRadius: BorderRadius.circular(16), border: Border.all( color: const Color(0xffd2d7dd), - width: 2, + width: 1.5, ), ), child: Padding( diff --git a/front/capstone_front/lib/screens/speech_practice/speech_practice_screen.dart b/front/capstone_front/lib/screens/speech_practice/speech_practice_screen.dart index 4d69b8640e..c4d577ac97 100644 --- a/front/capstone_front/lib/screens/speech_practice/speech_practice_screen.dart +++ b/front/capstone_front/lib/screens/speech_practice/speech_practice_screen.dart @@ -1,4 +1,4 @@ -import 'package:capstone_front/screens/speech_practice/speech_practice_card.dart'; +import 'package:capstone_front/screens/speech_practice/speech_custom_sentence/speech_practice_card.dart'; import 'package:capstone_front/screens/speech_practice/utils/example_sentences.dart'; import 'package:capstone_front/screens/speech_practice/utils/simple_recorder.dart'; import 'package:easy_localization/easy_localization.dart'; @@ -32,7 +32,7 @@ class _SpeechScreenState extends State { child: Column( children: [ Padding( - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), + padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), child: SpeechPracticeCard( sentence1: sentenceList[0], sentence2: sentenceList[1], @@ -51,7 +51,8 @@ class _SpeechScreenState extends State { borderRadius: BorderRadius.circular(25), ), child: Padding( - padding: const EdgeInsets.all(30.0), + padding: const EdgeInsets.symmetric( + vertical: 30.0, horizontal: 20), child: Column( children: [ dividerWithText(" 정확도 총점 "), diff --git a/front/capstone_front/lib/screens/speech_practice/speech_screen.dart b/front/capstone_front/lib/screens/speech_practice/speech_screen.dart index 0680f1a162..e0a8d63ecb 100644 --- a/front/capstone_front/lib/screens/speech_practice/speech_screen.dart +++ b/front/capstone_front/lib/screens/speech_practice/speech_screen.dart @@ -1,5 +1,5 @@ -import 'package:capstone_front/screens/speech_practice/speech_custom_sentence.dart'; -import 'package:capstone_front/screens/speech_practice/speech_select_sentence_screen.dart'; +import 'package:capstone_front/screens/speech_practice/speech_custom_sentence/speech_custom_sentence.dart'; +import 'package:capstone_front/screens/speech_practice/speech_example_sentences/speech_select_sentence_screen.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; diff --git a/front/capstone_front/lib/utils/bubble_painter1.dart b/front/capstone_front/lib/utils/bubble_painter1.dart index 8925a29bb8..0e7a1465ff 100644 --- a/front/capstone_front/lib/utils/bubble_painter1.dart +++ b/front/capstone_front/lib/utils/bubble_painter1.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; class BubblePainter extends CustomPainter { final Color bubbleColor; - BubblePainter({this.bubbleColor = Colors.yellow}); + BubblePainter({this.bubbleColor = const Color(0xff6E2FF4)}); @override void paint(Canvas canvas, Size size) { From bebff669bcaf0a97f1df784da3ac586064b90751 Mon Sep 17 00:00:00 2001 From: jihunchoi Date: Sun, 28 Apr 2024 00:59:25 +0900 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20#85-signup=20=EC=9C=84=EC=B9=98=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20uuid=20=EC=96=BB=EB=8A=94=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/screens/signup/signup_service.dart | 6 +++++- .../lib/screens/signup/singup_password_screen.dart | 11 ++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/front/capstone_front/lib/screens/signup/signup_service.dart b/front/capstone_front/lib/screens/signup/signup_service.dart index ddcb324c2b..f30e0f09f9 100644 --- a/front/capstone_front/lib/screens/signup/signup_service.dart +++ b/front/capstone_front/lib/screens/signup/signup_service.dart @@ -35,7 +35,7 @@ Future signup() async { Map userData = { 'uuid': userInfo['uuid'], 'email': "${userInfo['id']}@kookmin.ac.kr", - 'name': 'messi', + 'name': userInfo['name'], 'country': userInfo['country'], 'phoneNumber': '010-8276-8291', 'major': userInfo['department'], @@ -49,12 +49,16 @@ Future signup() async { } Future sendEmailAuth(String email, String pw) async { + FlutterSecureStorage storage = const FlutterSecureStorage(); + try { credential = await FirebaseAuth.instance.createUserWithEmailAndPassword( email: '${userInfo['id']}@kookmin.ac.kr', password: userInfo['pw']!, ); + userInfo['uuid'] = credential.user!.uid; + await storage.write(key: 'uuid', value: credential.user!.uid); await credential.user?.sendEmailVerification(); return "success"; diff --git a/front/capstone_front/lib/screens/signup/singup_password_screen.dart b/front/capstone_front/lib/screens/signup/singup_password_screen.dart index 326aa3d7f4..1b7cdf81b4 100644 --- a/front/capstone_front/lib/screens/signup/singup_password_screen.dart +++ b/front/capstone_front/lib/screens/signup/singup_password_screen.dart @@ -56,15 +56,8 @@ class _SignupPasswordScreenState extends State { await sendEmailAuth(userInfo['id']!, userInfo['pw']!); // 파이어베이스에 계정 생성 완료, 인증 메일 전송 완료 if (result == "success") { - print(userInfo['id']); - print(userInfo['pw']); - print(userInfo['name']); - print(userInfo['studentNum']); - print(userInfo['college']); - print(userInfo['department']); - print(userInfo['country']); - - // Todo: 서버로 회원가입된 내역 전송 + // 우리 서버로 회원가입 요청 + await signup(); showDialog( context: context,