15% off membership for Easter! Learn more. Close

Design some time management or universal calendar kind of app.

Time given 15 minutes.

explain high use cases,

Differentiaotr features and then
Block diagram.
Asked at Microsoft
732 views
eye 732 views eye 732 views
Answers (1)
crownAccess expert answers by becoming a member

You'll get access to over 3,000 product manager interview questions and answers

badge Platinum PM

 

 
  1. Clarifications:
    1. What is meant by universal & time management over here?
      1. Can I assume, an application that can be used by a user for both is personal and professional needs.
      2. Also user can send an invite event to any email id and then the other user can add the event in their calendar.
    2. Question mentions, app by this do we specifically mean a web application or calendar application? you decide. Ok. Now since it is a universal time management app would assume it to be a mobile application as now-er days mobile is a device which the user keeps with him/her all the time.
    3. Also would want to understand that this question is more from system design or product design perspective? System design. Ok so will assume that the application similar to an apple or android default mobile calendar app.
  2. Product description:
    1. Google calendar is a time management application that helps users to organize their time.
    2. It allows users to:
      1. Block time on any user's calendar including your own self.
      2. Users can control visibility of the details of the calendar events to self or public.
      3. Also can decide to hide or show their calendar to participants.
      4. Users can create invite , add recipients, add attachments, description, time, subject. Edit invites, accept, decline or tentatively accept the invites.
    3. Hope this covers the main functionalities of the application? Yes.
  3. Users of the application:-
    1. Young professionals : Who have to multi task and thus looking for a single calendar application that suffices for all purposes.
    2. Middle aged and slightly senior population: looking for a application that can remind them of things they have to do since with age they are often forgetful and miss out on imp things that had to be done.
  4. Based on the size of the segment and propensity to use the app, I would like to select first user group i.e. professionals.
  5. Pain points of professionals:-
    1. Availability of a calendar app: at times the application fails to load and thus they are unable to add events, other users are unable to see who is free at what time.
    2. Sync across applications: Instant/Quick syncing of all the calendars which have been configured with the application, so that users know what meeting are coming up and don't miss out on imp meetings and events.
    3. Battery consumption : As a mobile app the battery consumption is always something which the user is concerned about.
    4. Visibility controls: to decide who is able to view what
    5. Success rate: of successfully creating invitees.
  6. Goal: As a user of the product, I want to quickly block time for various tasks based on participants's availability, see my schedule and get reminded of my upcoming events on time so that I can efficiently manage my tasks and my time.
  7. Out of the above pain points, based on the goal I think the most imp pain points are:-
    1. Availability of the calendar app
    2. Sync across applications
    3. Success rate
  8. Based on this the technical design :-
    1. To keep high availability & success rates we need a fault tolerant system thus:
      1. Build redundancy into the system by having multiple databases & servers so that if one server/database is unavailable.. other can takeover.
      2. Retry mechanisms: To handle API failures , retry mechanisms in place. tHis will help both to keep availability high and success rate also high.
      3. Caching: To keep the app light but still availability high, we shd have a caching mechanism on the device so that everytime when the user opens the app, all the events need not be repulled from database.
        1. We should keep track on the last time when the app was synced with the database, all the events that have been updated/created after the sync time only those should be repulled.. this will help in improving performance and improve availability of the app.
    2. Sync across calendars: so user will configure the calendars which he wants to keep synced with this universal calendar app via logging into the respective mailboxes. 
      1. Polling mechanism: Poll the respective calendars/email ids to keep the calendars synced.
      2. Retry mechanisms:- in case on polling a specific app we are getting error response.
      3. Notifications : to inform the user if the app in unable to sync a specific calendar along with the error reason: like incorrect credentials, system down/unavailable even after trying multiple times. Notifications also required to inform the user of an upcoming event, also about the responses on the invites and if the user's data connection is not working for a specific time threshold then informing the user so that user knows that the app might me out of sync.
    3. Design:
    4. image

 

Access expert answers by becoming a member
0 likes   |  
Get unlimited access for $12/month
Get access to 2,346 pm interview questions and answers to give yourself a strong edge against other candidates that are interviewing for the same position
Get access to over 238 hours of video material containing an interview prep course, recorded mock interviews by expert PMs, group practice sessions, and QAs with expert PMs
Boost your confidence in PM interviews by attending peer to peer mock interview practices, group practices, and QA sessions with expert PMs
Get unlimited access for $12/month
Get access to 2,346 pm interview questions and answers to give yourself a strong edge against other candidates that are interviewing for the same position
Get access to over 238 hours of video material containing an interview prep course, recorded mock interviews by expert PMs, group practice sessions, and QAs with expert PMs
Boost your confidence in PM interviews by attending peer to peer mock interview practices, group practices, and QA sessions with expert PMs