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, view, and delete their own shortened links. Each of these actions requires the user to be logged in. Links are associated with user accounts, and each user has access only to their own links.
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 their shortened links.
- Delete their links.
- Links added by one user must not be visible to other users.
- The user must be logged in to add, view, 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, viewing, deleting 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 diagrams