
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

In today's digital age, remote work has become increasingly popular, offering flexibility and new opportunities for professionals. In this blog post, I want to share my personal experience of finding a remote job, the challenges I faced, and how I manage to balance my work and personal life effectively.
Beiryu
Contributor

This article provides a detailed overview of the deployment process, infrastructure. It covers everything from Git branching strategies to AWS infrastructure, CI/CD pipelines, database setup, and security considerations.
Beiryu
Contributor