Design a calendar Application (similar on lines with Google’s Calendar)
It should support the following functionalities:
- Ability to create, update, delete an Event
a. An event would typically consist of {start, end, location, Owner, user-list, title}.
b. Events can either be like meetings(with a dedicated location and appropriate guest-list) or as well be like holidays, birthdays, reminders etc.
c. An event once created, can be either accepted or rejected by the constituent users - if neither it should be in neutral state. - Get Calendar for a user Ui
- Get Event details.
- For a given set of users [U1, U2,…Un], identify their common free slot of time.
Expectations
- Code should be demoable, either by using a main driver program or test cases.
- Create the sample data yourself. you can put it into a file, test case or main driver program itself.
- Avoid writing monolithic code.
- Code should be readable, modular, testable, extensible with proper naming conventions. It should be easy to add/remove functionality without rewriting entire codebase.
- Code should handle edge cases properly and fail gracefully.
- Don’t use any external data store, all the data should be loaded in application itself.
- Don’t spend lot of time in parsing the input.
相关讲解视频