Task Description
Your task in this part of the workshop is to extend the existing solution to allow logged-in users to manage their shortened links. The system should enable users to add, update and delete their own shortened links. Each of these actions requires the user to be logged in. Links are associated with user accounts.
Requirements Summary
- The system must support user login via Cognito.
- After logging in, the user must be able to:
- Add new links.
- View the history of for each of their links.
- Delete and update their links.
- Added links can be visible by anyone but managed only by their owner.
- The user must be logged in to add, update or delete their links. Adding links without login is not allowed.
Technical Requirements
- User Login – Use Cognito to enable user login. Each user has their own unique account where their links are stored.
- User Data Management – Each link must be associated with the logged-in user, and access to links should only be available to the owner.
- API – The system will continue to operate as an API, and each operation (adding, deleting, updating links) must be authorized based on the user’s account.
- Serverless – The solution should be based on serverless architecture, preferring AWS services already used in the company, such as Cognito.
Task
Draw your solution on paper using AWS service icons provided. Your solution should include:
- The architecture of the extended system
- Use case diagrams showing the user’s interaction with the system, such as:
- Viewing the history of their shortened links.
- Adding a new link.
- Deleting a selected link.
- Data access patterns or schema diagrams
Common solution

Data table
| PK | GSI1_PK | GSI1_SK | Link | ClientId |
|---|---|---|---|---|
| short_id#abc | client_id#001 | short_id#abc | workshop.lambdapeople.pl | 001 |
| short_id#def | client_id#002 | short_id#def | aws.amazon.com | 002 |
Functionless solution
