hard-rox / kathanika

A Library Management System for cataloging personal book collection
MIT License
1 stars 1 forks source link

[Feat]: Domain redesign #1346

Open hard-rox opened 3 weeks ago

hard-rox commented 3 weeks ago

Description

Domain redesign with current R&D

Requirements

Fields to be collected

Bib Record

Field Name Type Mandatory/Optional Constraints Error Message
Leader Fixed-length String (24) Mandatory Must be 24 characters "Leader is required and must be exactly 24 characters long."
001 (Control Number) String Mandatory Unique, Max 50 characters "001 Control Number is required, unique, and must be less than 50 characters."
003 (Control Number Identifier) String Mandatory Max 50 characters "003 Control Number Identifier is required and must be less than 50 characters."
005 (Date and Time of Latest Transaction) DateTime Mandatory Valid DateTime "005 Date and Time of Latest Transaction is required and must be a valid DateTime."
008 (Fixed-Length Data Elements) Fixed-length String (40) Mandatory Must be 40 characters "008 Fixed-Length Data Elements are required and must be exactly 40 characters long."
100 (Main Entry - Personal Name) String Mandatory if applicable Max 255 characters "100 Main Entry (Personal Name) is required when applicable and must be less than 255 characters."
245 (Title Statement) String Mandatory Max 255 characters, First indicator must be 0-2 "245 Title Statement is required and must be less than 255 characters. First indicator must be 0-2."
260/264 (Publication, Distribution, etc.) String Mandatory Max 255 characters, includes publication place, name, and date "260/264 Publication Info is required and must include place, name, and date, with a max of 255 characters."
300 (Physical Description) String Mandatory Max 255 characters "300 Physical Description is required and must be less than 255 characters."
336 (Content Type) String Mandatory Must be a valid MARC21 content type "336 Content Type is required and must be a valid MARC21 content type."
337 (Media Type) String Mandatory Must be a valid MARC21 media type "337 Media Type is required and must be a valid MARC21 media type."
338 (Carrier Type) String Mandatory Must be a valid MARC21 carrier type "338 Carrier Type is required and must be a valid MARC21 carrier type."
500 (General Note) String Optional Max 255 characters "500 General Note must be less than 255 characters."
520 (Summary) Text Optional None None
650 (Subject Added Entry - Topical Term) String Optional Max 255 characters "650 Subject Added Entry (Topical Term) must be less than 255 characters."
700 (Added Entry - Personal Name) String Optional Max 255 characters "700 Added Entry (Personal Name) must be less than 255 characters."
852 (Location/Call Number) String Mandatory Max 50 characters "852 Location/Call Number is required and must be less than 50 characters."

Item Record

Field Name Type Mandatory/Optional Constraints Error Message
Barcode String Mandatory Unique, non-empty "Barcode must be unique and not empty."
Call Number String Mandatory Non-empty "Call Number cannot be empty."
Location String Mandatory Valid predefined location "Invalid location specified."
Status String Optional "available", "checked out", "lost", "damaged" "Invalid status value."
Price Decimal Optional Positive value "Price must be a positive number."
Acquisition Date Date Optional Valid date "Invalid acquisition date format."
Copy Number Integer Optional Positive integer "Copy number must be a positive integer."
Note String Optional None None

Item Record Type

Field Name Type Mandatory/Optional Constraints Error Message
Type Code String Mandatory Unique, non-empty "Type Code must be unique and not empty."
Type name String Mandatory Non-empty "Type name cannot be empty."
Loan Duration Integer Optional Positive integer "Loan Duration must be a positive integer."
Renewable Boolean Optional True/False "Renewable must be true or false."

Patron

Field Name Type Mandatory/Optional Constraints Error Message
Patron ID String Mandatory Unique, non-empty "Patron ID must be unique and not empty."
First Name String Mandatory Non-empty "First Name cannot be empty."
Last Name String Mandatory Non-empty "Last Name cannot be empty."
Date of Birth Date Optional Valid date "Invalid date of birth format."
Email Address String Optional Valid email format "Invalid email address."
Phone Number String Optional Valid phone number format "Invalid phone number."
Address String Optional None None
Membership Start Date Date Mandatory Valid date "Invalid membership start date format."
Membership End Date Date Optional Valid date, must be after start date "Membership end date must be after start date."

Acceptance Criteria

Acceptance Criteria

Anything else?

No response

hard-rox commented 3 weeks ago
Field Name Type Mandatory/Optional Constraints Error Message
Name String Mandatory Non-empty, unique "Vendor Name must be unique and not empty."
Address String Mandatory Non-empty "Address cannot be empty."
Contact Number String Mandatory Valid phone number format "Invalid contact number."
Email String Optional Valid email format "Invalid email address."
Website String Optional Valid URL format "Invalid website URL."
Account Detail String Optional None None
Contact Person Name String Mandatory Non-empty "Contact Person Name cannot be empty."
Contact Person Phone String Mandatory Valid phone number format "Invalid contact person phone number."
Contact Person Email String Optional Valid email format "Invalid contact person email address."
Status String Mandatory "Active", "Inactive" "Status must be either 'Active' or 'Inactive'."

Vendor Aggregate Acceptance Criteria