| ID | Requirement | Description |
|---|---|---|
| FR-01 | Dataset loading | The system shall be able to load a CSV dataset containing email texts and their labels. |
| FR-02 | Preprocessing text data | The system shall convert email text into numerical features using NLP techniques. |
| FR-03 | Training of classification models | The system shall allow training of multiple machine learning models. |
| FR-04 | Evaluation of models | The system shall generate performance metrics after training. |
| FR-05 | Classification of new emails | The system shall predict the category of a new, unseen email provided by the user. |
| FR-06 | Model selection by user | The system shall allow the user to choose which classifier to run for inference. |
| FR-07 | User interface | The system shall expose a simple interface (CLI or API) where users can train models, test predictions, and select classifiers. |
| ID | Requirement | Description |
|---|---|---|
| NFR-01 | Language | Application interface shall be created in English language. |
| NFR-02 | Performance | The system shall classify a single email in less than 1 second on a standard laptop. |
| NFR-03 | Usability | The interface shall be intuitive and easy to navigate. |
| NFR-04 | Portability | The application shall run on any system with Python 3.9+ and the required dependencies installed. |
| NFR-05 | Maintainability | The code shall follow an object-oriented and modular design to allow easy extension. |
| NFR-06 | Reliability | The system shall provide consistent classification results for the same input and model. |
| NFR-07 | Transparency | The project shall include clear documentation to ensure reproducibility. |
| NFR-08 | Scalability | The design shall allow integration with external APIs or inbox parsers in the future without major refactoring. |