
A quick description of the service, what it used for, a list of user stories that will be needed based on game design document
DLC management allows game admin to freely manage the additional assets (DLC) and allows game client to get the download links.
How:
Read through the GDD and try to determine the following information:
Rules of thumb:

Data constraints:
Action constraints:
For each feature, we need to provide list of use stories
Then, draw 2 usecase diagrams, 1 for CMS and the other for Game.
Rules of thumb:
What should be discussed during Usecase review?
The assignee should be able to answer the following questions:



| # | Database | Collections | Description |
| 1 | dlc | dlc_item | • id: uuid • code: string • version: number • size_in_bytes: number • download_url: string • expiration_date: nu |
| 1 | internal/v1/items | Upload Item | POST | BODY: file: binary string group: string code: string version?: number isPublic: boolean | CODE: 200 BODY:{ "url": "string", "pathName": "string"} |
Each use case / user story can have its own diagram or grouped in one diagram


Does this service require any other service / internal call?
DLC is used for game setting, single page application, time-limited event and any other service that require to upload file to store in the backend
You need to outline all the test cases, unit test, performance test, integration test and their results
| TEST GROUP/NAME | REQUIREMENT | RELATED DIAGRAM/FLOW/API/CODE FUNCTION | TEST SAMPLE | EXPECTED RESULT | RESULT |
| E2E | |||||
| healthcheck-01 | The API healthcheck must return the version as text | GET /dlc/healthcheck | N/A | Response body is the content of file ./version | Success on Attached file / screenshots |
| Unit Test | |||||
| game-download-asset | Downloads item with a valid access token and gets the latest version | ItemApiController.downloadItems | • Input: {"code": "utest000000","version": 2} | • Response:Status Code: 302 Response Header:Location: url (the url to which the client is redirected) | Success on Attached file / screenshots |
| Downloads item with a valid access token and gets a specific version | • Input: {"code": "utest000000","version": 1} | • Response:Status Code: 302 Response Header:Location: url (the url to which the client is redirected) | Success on Attached file / screenshots | ||
| Download the item with the invalid access token | • Input: {"code": "utest000000"} | • Response: To throw AccessTokenUnauthorized | Success on Attached file / screenshots | ||
| Download Items that do not exist | • Input: {"code": "utest000001"} | • Response:To throw ItemNotFoundError | Success on Attached file / screenshots | ||
| Download item that expires | • Input: {"code": "utest000002", "expiredAt": now} | • Response:Status Code: 302 Response Header:Location: url (the url to which the client is redirected) | Success on Attached file / screenshots |
You need to answer these questions and outline here:
You need to answer these questions and outline here:
| Endpoint | Access | Authorization |
| /internal/* | service 2 service | api key |
| /cms/* | internet with whitelist IPs | cms user access token |
| /api/* | internet | user access token |
Provide the list of all global variables, API key of 3rd party provider, secrets for DevOps to setup in the pipeline

Xin chào các bạn, hôm nay mình sẽ chia sẻ với các bạn về Snowflake - một nền tảng dữ liệu đám mây mà mình đã có cơ hội làm việc và triển khai trong các dự án gần đây. Mình sẽ giải thích về Snowflake, lý do tại sao nó lại quan trọng trong môi trường production, và chia sẻ một số kinh nghiệm thực tế khi làm việc với Snowflake và AWS.
Beiryu
Contributor

So, we're gonna chat about whether AI (you know, artificial intelligence) can take over the jobs of newbie programmers. Sure, AI's pretty cool - it can handle the boring stuff, make your code look sharp, and even cut down on all that manual testing. But, can it fully take over? Nah, not really. Beginner programmers bring their own flair to coding, thanks to their learning journeys and their fresh-out-of-the-box ideas. Plus, they're really good at picking up new tech and working with their team. So, while AI's a great sidekick in coding, it's not about to steal the limelight from our entry-level programmers anytime soon.
Beiryu
Contributor