- Serivce 는 Server 내의 각 기능에 대한 서비스를 말한다.
Actor | Actor's Goal (목표) | Use Case Name |
---|---|---|
User | 웹에 접속해서 웹 앱을 서버에서 받아오고, 로그인 여부를 체크 | Landing(UC-0) |
User | 사용자가 기본적인 정보를 입력해 가입을 하기 위함 | AddUser(UC-1) |
User | 가입 할 때 해당 기관의 교수자, 학생임을 인증을 받기 위함 | AddUser(UC-1) |
User | 가입 후 플랫폼에 본인의 계정으로 접속하기 위함 (로그인) | Login (UC-2) |
User | 플랫폼에서 로그아웃 하기 위함 | Logout (UC-3) |
User | 로그인 상태에서 자신의 개인정보를 입력, 수정하기위함 | ModifyUser (UC-4) |
User | 로그인 상태에서 회원탈퇴를 하기 위함(탈퇴) | RemoveUser (UC-5) |
VerificationService/ via External API |
Verify authority (사용자 기관 인증) 사용자를 인증할때 쓰는 이메일 전송용 외부 서비스 포함 |
UC-1 |
AuthService | Authenticate User (회원 가입, 로그인 - 토근 발급, 토근확인 및 토큰삭제) | Uc-0, UC-1, UC-2, UC-3 |
UserService | 유저를 modify 하고 삭제 하기위함 | UC-4, UC-5 |
WAS 혹은 CDN | Inital web page 를 사용자에게 전달 | UC-0 |
- Requirements : link
Requirements | Points | UC-0 | UC-1 | UC-2 | UC-3 | UC-4 | UC-5 |
---|---|---|---|---|---|---|---|
ST-1 | 10 | X | |||||
ST-2 | 25 | X | |||||
ST-3 | 10 | X | X | ||||
ST-4 | 8 | X | |||||
ST-5 | 5 | X | |||||
Max PW | 10 | 25 | 10 | 10 | 8 | 5 | |
Total PW | 10 | 25 | 10 | 10 | 8 | 5 |
Use Case | UC-0 (Landing) |
---|---|
Related Requirements | ST-1 |
Initiating Actor | 사용자(교수자/학생) - User(Instructor/Student) |
Actor's Goal | 웹에 접속해서 웹 앱을 서버에서 받아오고, 로그인 여부를 체크하기 위함 |
Participating Actors | CDN, Authentication Service |
Preconditions |
|
Postconditions | - 로그인이 안되어 있을시 route를 로그인 화면으로 변경 - 로그인이 되어있을 시, 사용자에 따라 수업 목록 화면을 다르게 보여준다. - 로그인이 되어있을 시 recentLoginAt 접속 기록이 남는다. |
Flow of Events for Main Success Scenario | 밑에 참조 |
- 브라우저의 주소창에 주소를 친다.
- CDN(Content Delivery Network) 혹은 WAS(Web Applicaiton Server) 에서 initial html 로딩, 및 해당 scripts 및 style tag를 읽어 css 및 js contents 로딩을 한다.
- 컨텐츠 로딩이 되면 logged in 여부를 체크 하는 함수가 실행 되어 서버에게 token값을 가지고 물어본다.
HTTP STATUS CODE 401:
로그인이 안되어 있으면 로그인 페이지로 route가 변경 된다.HTTP STATUS CODE 200:
로그인이 되어 있으면 수업 목록 화면으로 route가 변경 된다.
Use Case | UC-1 (AddUser) |
---|---|
Related Requirements | ST-2 |
Initiating Actor | 사용자(교수자/학생) - User(Instructor/Student) |
Actor's Goal | 가입 할 때 기본 정보를 입력 하기 위함 (회원가입) |
Participating Actors | Verfication Service, User Service |
Preconditions |
|
Postconditions | 회원 가입시 기입된 정보가 UserService에 의해 DB에 저장되며 로그인이 자동으로 완료 |
Flow of Events for Main Success Scenario | 밑에 참조 |
- 사용자(User)는 회원 가입 버튼을 클릭한다.
- 버튼 클릭 시 회원 가입 페이지로 넘어간다.
- 기관에 소속된 이메일 앞에 ID를 입력하고 전송을 누른다. Verification Service에 의해 이메일 id값 검증
HTTP STATUS CODE 409:
이미 가입된 이메일이거나 탈퇴한 이메일 이라 가입을 못한다는 팝업창이 뜨고 머무른다.HTTP STATUS CODE 200:
정상 - External email 발송 API에 의해 해당 이메일로 회원가입 완료 고유 링크가 전송이 된다.
- 이메일에서 해당 링크로 접속해서 인증 완료시 개인정보 및, 비밀번호를 작성한다.
- 기입된 정보가 User Service에 의해 db에 저장한다.
- 회원가입 완료 알림창이 나온다.
- 알림창이 꺼지면 자동으로 UC-2의 Flow 2번으로 넘어간다.
Use Case | UC-2 (Login) |
---|---|
Related Requirements | ST-3 |
Initiating Actor | 사용자(교수자/학생) - User(Instructor/Student) |
Actor's Goal | 가입 후 플랫폼에 본인의 계정으로 접속하기 위함 (로그인) |
Participating Actors | Authentication Service |
Preconditions |
|
Postconditions | - 사용자는 로그인을 한 번 할 때마다 로그인 유지가 된다. (max-age: 90일) - MainPage 화면으로 이동한다. |
Flow of Events for Main Success Scenario | 밑에 참조 |
- 사용자(User)는 id(email)/password를 입력하고, 로그인 버튼을 클릭한다.
- 입력받은 user의 id/pw를 Authentication Service가 hash를 통해 db와 대조한다.
(i)HTTP status Code: 200
: MainPage 로 이동 한다.
(ii)HTTP Status code: 400
:로그인 실패 알림창이 나온뒤 계속 동일 페이지에 머무른다. - 해당 브라우저에 토큰이 발급되어 쿠키에 담긴다.
Use Case | UC-3 (Logout) |
---|---|
Related Requirements | ST-4 |
Initiating Actor | 사용자(교수자/학생) - User(Instructor/Student) |
Actor's Goal | 플랫폼에서 로그아웃 하기 위함 |
Participating Actors | Authentication Service |
Preconditions | 로그아웃 버튼은 로그인시 보이는 모든 페이지 상단 헤더 에 항상 위치한다. |
Postconditions | 로그아웃 완료 시, 첫 화면(BeforeLogin page)으로 돌아간다. |
Flow of Events for Main Success Scenario |
|
- 사용자는 로그아웃 버튼을 클릭한다.
- 로그아웃 완료 시, 첫 화면(LoginPage)으로 돌아간다.
Use Case | UC-4 (ModifyUser) |
---|---|
Related Requirements | ST-5 |
Initiating Actor | 사용자(교수자/학생) - User(Instructor/Student) |
Actor's Goal | 로그인 상태에서 자신의 개인정보를 입력,수정하기위함 |
Participating Actors | User Service |
Preconditions |
|
Postconditions | 개인정보 수정시 수정된 정보가 DB에 저장 및 route 가 ProfilePage로 이동 |
Flow of Events for Main Success Scenario | 밑에 참조 |
-
사용자는 개인정보수정 버튼을 클릭하면 ModifyProfilePage 로 이동
-
개인정보 수정 화면에서 개인 정보를 수정 한다.
-
수정 혹은 취소 버튼을 클릭한다.
(i)수정: flow 4번으로 이동(ii)취소: ProfilePage로 route가 돌아간다.
-
Client validation: 입력된 정보가 모두 validate 한지 확인 (예를 들면 이름이 제대로 쓰였는지 등)
- Fail 시 해당 input 빨간색으로 오류 표시
-
Server validation: 입력된 정보 서버에서 2차 검증 및 완료시 User Service에 의해 db에 저보저장
status code: 400
문제가 있다고 팝업
-
완료 되었다고 표시 뒤 route 가 개인정보 화면 (UserProfilePage) 로 이동
Use Case | UC-5 (RemoveUser) |
---|---|
Related Requirements | ST-6 |
Initiating Actor | 사용자(교수자/학생) - User(Instructor/Student) |
Actor's Goal | 로그인 상태에서 회원탈퇴를 하기 위함(탈퇴) |
Participating Actors | User Service |
Preconditions | 회원탈퇴 버튼은 로그인시 보이는 모든 페이지 상단에 항상 위치한다. |
Postconditions | User의 정보가 DB에 removedAt 이 탈퇴 시점으로 업데이트 된다. |
Flow of Events for Main Success Scenario |
|
- 사용자는 회원탈퇴 버튼을 클릭한다.
- 탈퇴 페이지로 이동한다.
- '탈퇴하시겠습니까? 탈퇴 시 모든 정보가 삭제됩니다.'라는 문구와 함께 하단에 '계속 진행','취소'버튼이 뜬다.
(i)계속 진행:수정된 개인정보를 동일한 id(email)값을 갖는 DB를 삭제시킨 뒤 탈퇴 완료 알림창이 나온다.
(ii)취소:기본 페이지로 돌아간다.