Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

24-25-App-Assignment-09-권민석 #1

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

staralstjr
Copy link

Description

main.dart : 프로그램을 실행 할 메인 클래스
API.dart : http를 이용해서 Swagger의 uri를 통해 login을 할 수 있는 API클래스
login.dart : 로그인 페이지의 ui와 비동기, validate를 통해 로그인이 성공했을 때 goRouter의 go를 이용해서 home화면으로 이동할 수 있도록 구현
signUp.dart : 회원가입하는 페이지의 ui, Swagger의 register를 통해서 goRouter 기능으로 회원가입에 성공하면 login 페이지로 이동할 수 있도록 구현
home.dart : 회원가입 및 로그인에 성공하면 볼 수 있는 게시판 ui, 뒤로가기 버튼을 누르면 login 페이지로 이동하고, +버튼을 누르면CreateBoard.dart 페이지로 이동하여 게시물을 올릴 수 있도록 구현
CreateBoard.dart : 게시물 만들기 구현 (만들고나서의 게시물은 BoardDetails.dart 페이지로 이동)
EditBoard.dart : 게시물을 만들었을 때 삭제하는 기능과 수정하는 기능이 있는데 수정하는 기능을 눌렀을 때 생기는 페이지와 수정할 수 있도록 구현
BoardDetails.dart : 게시물을 추가하고 그 게시물의 우측에 수정, 삭제 기능을 사용자에게 보일 수 있도록 구현하는 페이지
goRouter.dart : 기본 메인 화면을 회원가입 화면으로 하고, 회원가입으로 이동, 로그인으로 이동, 홈 화면(게시판)으로 이동, 게시물 제작 페이지로 이동, 게시판 디테일 화면으로 이동, 게시판 수정 화면으로 이동할 수 있는 경로를 지정하는 파일

Question

‼️ 어느 부분에서 어려웠는지 자세하게 알려주세요

Swagger를 이용했지만 현재 프로그램을 실행했을 때 Swagger에서 구현 내용을 검증하는 과정에 대해서 아직 어떻게 하는지, 이해가 잘 안됩니다. 또한 CRUD를 제대로 적용한 것인지 잘 모르겠습니다.

Reference

ChatGPT에 도움을 받았습니다.

Picture

구현 사진입니다.
스크린샷 2024-12-21 오전 8 02 22
스크린샷 2024-12-21 오전 8 02 27
스크린샷 2024-12-21 오전 8 02 40
스크린샷 2024-12-21 오전 8 00 04
스크린샷 2024-12-21 오전 8 00 16
스크린샷 2024-12-21 오전 8 00 28
스크린샷 2024-12-21 오전 8 00 35
스크린샷 2024-12-21 오전 8 00 43

Copy link
Collaborator

@hyeminililo hyeminililo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전반적인 UI는 깔끔하고 적절하게 잘 배치한 것 같아요! 그런데 아직 사용하지 않은 api가 몇 개 있는 것 같아요 ! 코드 리뷰를 참고해서, 남은 api 활용해서 게시판을 만들어주세요 😊

Future<bool> login(String username, String password) async {
try {
final url =
Uri.parse('https://api.labyrinth30-tech.link/auth/login'); // 로그인 URL
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

api 주소가 공통되는 부분은 const를 이용해 상수화하면 가독성이 올라갑니다.

print('Login successful: ${responseBody}');
return true;
} else {
print('Login failed with status: ${response.statusCode}');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

상태코드를 이용해 에러에 접근한 것 좋아요 !

child: Text('Delete'),
),
ElevatedButton(
onPressed: () async {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분에 update와 관련된 api가 있으면 되겠죠?

import 'signUp.dart';
import 'home.dart'; // 홈 화면 추가

final GoRouter router = GoRouter(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GoRouter 관련 코드를 따로 파일로 나누어서 관리 한 것 좋은 것 같습니다 👍

path: '/CreateBoard',
builder: (context, state) => CreateBoard(),
),
GoRoute(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update , create api를 이용한다면 파라미터를 이용해 데이터를 넘겨주지 않아도 괜찮겠죠?

final username = usernameController.text;
final password = passwordController.text;

final success = await api.login(username, password);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

success보다는 결과를 나타낼 수 있는 변수 이름이 더 적절할 것 같아요. (ex. result, response)

final GoRouter router = GoRouter(
routes: [
GoRoute(
path: '/',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

보통은 들어갈 때, 회원가입을 하는 사용자보다는 로그인을 하는 사용자가 더 많으니, 만약 저라면 초기화면을 LoginPage()로 지정할 것 같아요 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants