22. NPM
Easy
Design an online repository for the publishing and downloading of open-source Node.js projects
- Functional Requirements
- Project admins should be able to publish Node.js projects
- Users should be able to download projects
- Each repository has a webpage with metadata(total download count, version, and package size)
- Users should be able to download old versions of repositories
- Nonfunctional Requirements
- 99.999% Availability
- Operates globally
- All repositories and versions should be stored indefinitely
- Assumptions
- Assume the command line utility already exists
- Repositories only contain text files
- Estimated Usage
- 1 million developers uploading repositories
- 11 million developers downloading repositories
- 1.3 billion downloads a day
- 90k new versions uploaded each week
Seen this question in a real interview before?
Not all editor features are supported on mobile