From 6a8c653e750043d6262a45aebc1a2d8257ac36c4 Mon Sep 17 00:00:00 2001 From: Sebastian Sucker Date: Sat, 27 Dec 2025 13:50:20 +0100 Subject: [PATCH] update to iso-29148-tables --- README.md | 60 +++++++++++++++++++++++++++---------------------- requirements.md | 52 ++++++++++++++++++++---------------------- 2 files changed, 57 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 25c45be..a9e5e3b 100644 --- a/README.md +++ b/README.md @@ -12,31 +12,37 @@ This is a simple yet complete todo application that demonstrates: ## Requirements Implemented +### Structure +| Requirement ID | Requirement Text | Priority | Rationale | +|---|---|---|---| +| REQ-F-001 | The application shall allow users to create new todo items with a title and optional description. | High | Core CRUD functionality required for basic operation | +| REQ-NF-008 | The application shall complete all todo operations (create, read, update, delete) within 100 milliseconds. | Medium | Performance requirement for user experience | + ### Functional Requirements -- **REQ-001**: Create Todo Items - Add new todos with title and optional description -- **REQ-002**: List Todo Items - Display all todos with status and metadata -- **REQ-003**: Mark Todo as Complete - Toggle completion status on/off -- **REQ-004**: Delete Todo Items - Remove todos from the list permanently -- **REQ-005**: Edit Todo Items - Update title and description of existing todos +- **REQ-F-001**: Create Todo Items - Add new todos with title and optional description +- **REQ-F-002**: List Todo Items - Display all todos with status and metadata +- **REQ-F-003**: Mark Todo as Complete - Toggle completion status on/off +- **REQ-F-004**: Delete Todo Items - Remove todos from the list permanently +- **REQ-F-005**: Edit Todo Items - Update title and description of existing todos ### Non-Functional Requirements -- **REQ-006**: Data Persistence - All todos saved to `todos.json` file -- **REQ-007**: Input Validation - Titles validated (non-empty, max 200 chars) -- **REQ-008**: Performance - All operations complete within 100ms -- **REQ-009**: Code Quality - Comprehensive error handling with descriptive messages -- **REQ-010**: User Interface - Simple CLI with menu-driven interface +- **REQ-NF-006**: Data Persistence - All todos saved to `todos.json` file +- **REQ-NF-007**: Input Validation - Titles validated (non-empty, max 200 chars) +- **REQ-NF-008**: Performance - All operations complete within 100ms +- **REQ-NF-009**: Code Quality - Comprehensive error handling with descriptive messages +- **REQ-NF-010**: User Interface - Simple CLI with menu-driven interface ## Features -✅ Create, Read, Update, Delete (CRUD) todos -✅ Toggle completion status -✅ Persistent storage (JSON) -✅ Input validation -✅ Error handling -✅ Clear CLI interface -✅ Timestamps for created/updated dates +✅ Create, Read, Update, Delete (CRUD) todos +✅ Toggle completion status +✅ Persistent storage (JSON) +✅ Input validation +✅ Error handling +✅ Clear CLI interface +✅ Timestamps for created/updated dates ## Usage @@ -87,16 +93,16 @@ Each requirement is implemented and can be traced in the code: | REQ ID | Feature | Implementation | Status | |--------|---------|-----------------|--------| -| REQ-001 | Create todos | `create_todo()` method | ✅ | -| REQ-002 | List todos | `list_todos()` method | ✅ | -| REQ-003 | Mark complete | `mark_complete()` method | ✅ | -| REQ-004 | Delete todos | `delete_todo()` method | ✅ | -| REQ-005 | Edit todos | `edit_todo()` method | ✅ | -| REQ-006 | Data persistence | `_load_todos()`, `_save_todos()` | ✅ | -| REQ-007 | Input validation | `_validate_title()` method | ✅ | -| REQ-008 | Performance | JSON operations, efficient filtering | ✅ | -| REQ-009 | Error handling | Try-except blocks, error messages | ✅ | -| REQ-010 | CLI interface | `show_menu()`, `run()` methods | ✅ | +| REQ-F-001 | Create todos | `create_todo()` method | ✅ | +| REQ-F-002 | List todos | `list_todos()` method | ✅ | +| REQ-F-003 | Mark complete | `mark_complete()` method | ✅ | +| REQ-F-004 | Delete todos | `delete_todo()` method | ✅ | +| REQ-F-005 | Edit todos | `edit_todo()` method | ✅ | +| REQ-NF-006 | Data persistence | `_load_todos()`, `_save_todos()` | ✅ | +| REQ-NF-007 | Input validation | `_validate_title()` method | ✅ | +| REQ-NF-008 | Performance | JSON operations, efficient filtering | ✅ | +| REQ-NF-009 | Error handling | Try-except blocks, error messages | ✅ | +| REQ-NF-010 | CLI interface | `show_menu()`, `run()` methods | ✅ | ## Example Session diff --git a/requirements.md b/requirements.md index 869fb46..c5e2d6d 100644 --- a/requirements.md +++ b/requirements.md @@ -1,35 +1,31 @@ +--- +title: "Simple Todo Application - Requirements Specification" +version: "1.0" +date: "2025-12-05" +author: "System Engineering Team" +project: "SimpleApp" +status: "Draft" +format: "iso-29148-tables" +--- + # Simple Todo Application - Requirements ## Functional Requirements -### REQ-001: Create Todo Items -The application shall allow users to create new todo items with a title and optional description. - -### REQ-002: List Todo Items -The application shall display all created todo items in a list format with their current status. - -### REQ-003: Mark Todo as Complete -The application shall provide functionality to mark a todo item as complete or incomplete with a toggle action. - -### REQ-004: Delete Todo Items -The application shall allow users to delete todo items from the list permanently. - -### REQ-005: Edit Todo Items -The application shall allow users to edit the title and description of existing todo items. +| Requirement ID | Requirement Text | Priority | Rationale | +|---|---|---|---| +| REQ-F-001 | The application shall allow users to create new todo items with a title and optional description. | High | Core CRUD functionality required for basic operation | +| REQ-F-002 | The application shall display all created todo items in a list format with their current status. | High | Essential for user interaction and visibility | +| REQ-F-003 | The application shall provide functionality to mark a todo item as complete or incomplete with a toggle action. | High | Core feature for tracking todo progress | +| REQ-F-004 | The application shall allow users to delete todo items from the list permanently. | Medium | Important for lifecycle management | +| REQ-F-005 | The application shall allow users to edit the title and description of existing todo items. | Medium | Important for flexibility and error correction | ## Non-Functional Requirements -### REQ-006: Data Persistence -The application shall persist all todo items to a JSON file so that data remains available after application restart. - -### REQ-007: Input Validation -The application shall validate that todo titles are not empty and are no longer than 200 characters. - -### REQ-008: Performance -The application shall complete all todo operations (create, read, update, delete) within 100 milliseconds. - -### REQ-009: Code Quality -The application shall implement proper error handling with descriptive error messages for all operations. - -### REQ-010: User Interface -The application shall provide a simple command-line interface with clear menu options and status feedback for user actions. +| Requirement ID | Requirement Text | Priority | Rationale | +|---|---|---|---| +| REQ-NF-006 | The application shall persist all todo items to a JSON file so that data remains available after application restart. | High | Data persistence requirement for production use | +| REQ-NF-007 | The application shall validate that todo titles are not empty and are no longer than 200 characters. | High | Data quality and constraint validation | +| REQ-NF-008 | The application shall complete all todo operations (create, read, update, delete) within 100 milliseconds. | Medium | Performance requirement for user experience | +| REQ-NF-009 | The application shall implement proper error handling with descriptive error messages for all operations. | High | User support and reliability requirement | +| REQ-NF-010 | The application shall provide a simple command-line interface with clear menu options and status feedback for user actions. | High | Usability and user experience requirement |