Design a Plagiarism checker.
MediumLet's refine our plagiarism checker. The original problem allowed us to compare documents and identify similar sections. Now, we want to make the system more robust and extensible, allowing for different comparison algorithms (e.g., comparing based on n-grams, comparing based on semantic similarity using word embeddings). We also need to ensure that the system can handle multiple concurrent requests efficiently and safely. Finally, we want to be able to easily add new document types (e.g., PDFs, web pages) without modifying existing code.
Think of it as building a solid foundation for a service that helps students and academics maintain integrity. We need to handle diverse documents, different detection strategies, and concurrent usage, all while keeping the code clean and maintainable.
Requirements
Interview Simulation
Experience a realistic interview conversation. The interviewer will ask clarifying questions,and you'll reveal your understanding of the requirements.
Let's start by understanding the scope. What are the core functionalities this system needs to provide?
💡 Interview Tip
Identify the Actors (Who uses the system?) and their Use Cases (What are they trying to achieve?). Start with the 'Happy Path' scenarios.