update to iso-29148-tables
This commit is contained in:
60
README.md
60
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
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user