Skip to content

Design and Planning

ericagong edited this page Dec 6, 2021 · 54 revisions

Design and Planning

Document Revision History

Rev. 1.0 2021-10-30 - Initial version
Rev. 1.1 2021-11-04 - Remove match_id field in Report Model
Rev. 1.2 2021-11-10 - Add tag info
Rev. 1.3 2021-11-24 - Update model diagram
Rev. 1.4 2021-11-26 - Update UI design, system architecture, backend dependency, axios design
Rev. 1.5 2021-11-27 - Update Frontend Pages, Components, Reducer design and Description of pages
Rev. 1.6 2021-12-06 - Update Implementation plan

System Architecture

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-26 แ„‹แ…ฉแ„’แ…ฎ 1 33 37 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-10-28 แ„‹แ…ฉแ„’แ…ฎ 8 06 19
  • Frontend
    • Frontend Library: React.js
    • State Management Tool: Redux
  • Backend
    • Backend Framework: Django
    • Database: Mysql

Backend

Model

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-24 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 9 03 43

Above image describes a relation schema diagram for Django models of this service. It also shows the fields of each model. Each arrow indicates foreign key constraints and its relationship between two models.

Riot API

We will use Riot Games Official Api(document) to get in-game data such as summoners and matches.

We are going to use MATCH-V5 api to get matches data :

  • GET /lol/match/v5/matches/{matchId}
  • GET /lol/match/v5/matches/by-puuid/{puuid}/ids

We are going to use SUMMONER-V4 api to get summoner data :

  • GET /lol/summoner/v4/summoners/by-name/{summonerName}

We are going to use LEAGUE-V4 api to get summoner's detailed information data:

  • GET /lol/league/v4/entries/by-summoner/{encryptedSummonerId}

API Table

We can see the detailed information (ex.request and response) in this page.

Description API endpoint GET POST PUT DELETE
sign up /api/signup/ O
login /api/login/ O
logout /api/logout/ O
find id /api/forgot/id/ O
find password /api/forgot/password/ O
change password /api/change/password/ O
my page /api/mypage/ O
my reports /api/my/reports/ O
my received reports /api/my/received_reports/ O
report delete /api/reports/:id/ O
search /api/search/?summoners={} O
statistics /api/home/ O
report match authentication /api/reports/auth/ O O
report /api/reports/ O
update summoner name /api/update/summoner/ O
apology /api/apology/ O O O

Backend Dependency

์Šคํฌ๋ฆฐ์ƒท 2021-11-26 ์˜คํ›„ 1 32 48

Frontend

UI Requirements

wireframe-swpp-3

UI Design

final

Front Components

Pages

Pages_v2

Components

Component_v2

Frontend Description

All pages excluding [Authorization Related] pages described below include Header which includes logo image and text of Gaejosim, My Page button and Login out button by default.

[User Related]

  1. Sign in Page
  • Let a user login with his/her own account.
  • If the user clicks the Sign up button, redirect to the Sign Up Page.
  • If the user clicks the Find User Info button, redirects to the Find User Info Page.
  • If the user writes down โ€˜IDโ€™ and โ€˜Passwordโ€™ inputs and then clicks Login button, then it checks authentication with user inputs.
  1. Sign Up Page
  • Let user create new account.
  • Only if the user agrees with terms and services of this webpage, user can create new account.
  • If the user fills following inputs appropriately and clicks Sign up button, redirect to the Login Page.
  1. Find User Info Page
  • Let user find userID information with his/her own email.
  • Let user find userPassword with his/her own email and userID.
  • If the user clicks the Find ID button, and inputs his/her email then server sends email to the user with corresponding userID.
  • If the user clicks the Find Password button, and inputs his/her email and userID then server sends email to the user with corresponding user password.
  1. Change Password Page
  • Let user change his/her own password.
  • If the user clicks the Change button, user password change to new Password.

[Search Related]

  1. Search Page
  • User can search without login.
  • Let user search other LOL users by writing down summonerID and clicking Search button on the searchBar. <SearchBar/>
  1. Multi Search Result Page
  • Let user search other LOL users by writing down summonerID and clicking Search button on the searchBar. <SearchBar/>
  • Show all summoners' information the user searched for. <MultiSearch/>

[Report Related]

  1. Report Authentication Page
  • Let user write down or select other summoner who want to report.
  • If user choose one of the summoners name from the dropdown, then it automatically authenticated.
  • If user write down summonerID by himself/herself then user have to click Authentication button.
  • When authenticated, then user can clicks Next Button, redirects to Report Page.
  1. Report Action Page
  • Let user evaluate selected summoner's manner point.
  • Let user pick tags that describe selected summoner's behavior. <Tags/> (tags example - #abusing #dodging #intentionally_ruining_the_game #cursing #throwing)
  • Let user write down comments in detail only if user wants.
  • If user clicks Submit button, save report to server and redirects to My Page.
  • If user clicks Cancel button, redirects to Search Page.

[Apology Related]

  1. My Page
  • Only login user can access My Page.
  • Show all user related information such as 'summonerName', 'email', 'userName', 'MannerPoint'.
  • Show reports the user wrote and the user received.
  1. Reporting Log List Page
  • Show all reports that user wrote.
  • Let user delete written reports by clicking Delete button.
  • Let user check written apologies related to report by clicking Check button.
  1. Reported Log List Page
  • Show all reports that user received.
  • Let user write down apology for recived reports by clicking Write button.
  1. Write Apology Page
  • Let user write down own apology to his/her received report.
  • By clicking Submit button, user can check the validity of written apology.
  1. Check Apology Page
  • Let user check received apology that he/she reported before.
  • By clicking Confirm button, user can redirect to My Page.

States of Reducer

Reducer State Description
User user Contains user information

Actions of Reducer

Reducer Action Function
User signin() Sign in user
signout() Sign out user

Axios Design

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-26 แ„‹แ…ฉแ„’แ…ฎ 1 28 07

Implementation Plan

Feature-task difficulties & sprint

Page Feature Tasks Priority Time(days) Sprint Assignees etc
User sign up POST signup medium 1 3 ๋ฏธ์Šน
Login POST login medium 1 3 ์œค์ˆ˜
Signup Page medium 1 4 ์€์ฑ„
Signin Page medium 1 4 ์€์ฑ„
Header Container medium 1 4 ์€์ฑ„
User Reducer medium 1 4 ์€์ฑ„
Find user info Find user Id medium 1 3 ๋ฏธ์Šน
SMTP setting hard 1 3 ๋ฏธ์Šน
Find user password medium 1 3 ๋ฏธ์Šน
Find user info Page medium 1 4 ์€์ฑ„
Change user password medium 1 3 ๋ฏธ์Šน
Change user password Page medium 1 4 ์€์ฑ„
MyPage Get User Info medium 1 4 ๋ฏธ์Šน
Get my reports medium 1 4 ๋ฏธ์Šน
MyPage Page medium 1 4 ์šฐ์ง„
Search Single search result Get Summoner Info medium 3 4 ๋ฏธ์Šน
Get User Recent Match Logs hard 3 4 ๋ฏธ์Šน
Logs Pagination hard 3 4 ๋ฏธ์Šน
Get Summoner Manner Info medium 3 4 ๋ฏธ์Šน
Multi search result Get Each User's User Info high 2 4 ์œค์ˆ˜
Get Each User's match logs high 2 4 ์œค์ˆ˜
Get Each User's Manner Info high 2 4 ์œค์ˆ˜
Search Page high 2 3 ์€์ฑ„
Multi Search Result Page high 2 3 ์€์ฑ„
Report Make a report POSTreport high 2 3 ์œค์ˆ˜
Update Manner Statistics high 2 3 ์œค์ˆ˜
Statistics Component medium 1 4 ์€์ฑ„
report match authentication Get Recent Team players medium 1 3 ๋ฏธ์Šน
Autenticate the report medium 1 3 ๋ฏธ์Šน
Report Auth Page medium 1 3 ์€์ฑ„
Report Action Page medium 1 3 ์€์ฑ„
my reports Get My Report medium 1 4 ์œค์ˆ˜
My Report Logs Pagination medium 1 4 ์œค์ˆ˜
UX Design and CSS medium 20 3,4 ์šฐ์ง„

Testing Plan

Unit Test

We force every commit to pass the unit test and to accomplish over 90% coverage.

  • Django: Python unit test
  • React: Jest, Enzyme

Functional Test

All APIs should be tested completely.

  • Django: Python unit test
  • React: Jest, Enzyme

Functional Test will be performed at Sprint 4

Acceptance & Integrity Testing

  • Integrity Test: Travis CI
  • Acceptance Test: Cucumber

Tag info

์–ธํ–‰ : [๊ณผ๊ฒฉํ•œ ์–ธํ–‰] [๋น„์†์–ด ์‚ฌ์šฉ]
๊ฒŒ์ž„ ํญํŒŒ : [๊ณ ์˜์„ฑ ๊ฒŒ์ž„ ๋˜์ง] [ํƒˆ์ฃผ/๋‹ท์ง€] 
๊ฒŒ์ž„ ์ „ : [๋Œ€๋ฆฌ ๊ฒŒ์ž„] [ํ”ฝ ์ƒํ™ฉ ๊ฐ‘์งˆ]
๊ฒŒ์ž„ ์ค‘ : [cs ์Šคํ‹ธ] [ํŒ€ํ‚ฌ]
๊ธฐํƒ€ : [์ •์น˜] [๋ผ์ธ ๊ฑฐ๋ถ€]

Acceptance & Integrity Test will be performed at Sprint 5

Clone this wiki locally