Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Completed Assessment #18

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Completed Assessment #18

wants to merge 1 commit into from

Conversation

vskliam
Copy link

@vskliam vskliam commented Jul 14, 2023

Task 2:

The Undo stack consists of web services mainly in Azure, Web API, Admin panel & Xamarin.Forms application. Take a look at the home tab of the Undo application, read through the letter from the client and write us a proposed solution and prepare questions that will help you understand the task better in detail and to make better choices when deciding for the solution.

Letter from client: “We want to have a new feature in the application’s home tab – a news section. The news section’s goal will be providing news to users using the application, where we would be posting content weekly or fortnightly.”

Answer:

News content is static and rarely gets updated, efficient way to set up backend infrastructure would be a DocumentDB and a serverless function which will be triggered on the update event to notify our clients.

Assuming our client is Xamarin.Forms application, we would need to build a listview-based custom control for our news feed.

Assuming UI is not provided, let's form a list of questions that will help to narrow down the use cases of our control:

Will we split the news on the preview and detailed?
Will the preview include the image?
Will be there any other media content? (video/music/embedded streams)
How many news items to display?

We cannot display everything, so pagination is crucial, we can load the next content by scrolling.

Our control needs to know when new content is available, PullToRefresh would be a bad solution as our content is posted rarely. A better way would be a PubSub system, our control will subscribe to messages sent from a serverless function and load the data when messages arrive.

Implementation details could be different here, for example:

  1. We can use a message just for simple notification and query the data from our WebAPI or DocumentDB.
  2. Or we can have a payload inside a message, then we don't need to query everything.

The second option is more appealing, however, it can be constrained by message size and might need other infrastructure adjustments. Also on top of internal messaging, we can use native Push Notifications.

In order to not query the data each time our application is opened, we need to cache it. It also allows us to use the application offline. We can use something simple like Akavache or even a db like SQLite if needed.

Another question: Can users search or filter the news?

In case of yes, we might extend our WebAPI or even introduce ElasticSearch.

To sum up - news structure and content is crucial for our control.

@ZZzzoooo
Copy link
Owner

can you please contact me [email protected] to apply for the job? Who did you receive this task from?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants