- DB Creation (CLI allowed)
- DB Population (CLI allowed)
- Creation - add new contacts via a contact entry form.
- Retrieval
- Search on multiple fields - name, address or phone
- Full Name displayed, direct access to modify or delete
- All the contacts simultaneously
- Update + Deletion
- Modify contact entry form, and ability to delete fields or entries.
- Schema definition and table creation
- Population of DB from CSV (deconstruct the file and add the fields to the tables with normalization).
- Table to language connector - API
- CRUD on DB
- SQL command to add a new entry
- SQL command to modify an entry
- Change name fields
- Change address field, add new address or delete address
- Change phone number field, add new phone number or delete a phone number
- Change date field, add or remove a date.
- SQL command to delete an entry
- SQL command to get all entries
- SQL command to search all entries and filter.
- [A] Contact Display Window
- [B] Search Window
- [C] New Contact Entry Form
- [D] Modify Contact Entry Form
- [PH] Phone Edit Form
- [AD] Address Edit Form
- [DA] Date Edit Form
- [A] Display Window queries
- select * from join of all tables of PK==FK
- On edit: retrieve single row from table and populate modify contact form w/ it —> [D]
- On add new: open new contact entry form, get fields vals & update table w/ entry. —> [C]
- On search —> [B]
- [B] Search window
- Initially show top 5 entries
- user inputs comma delimited keywords and hits search
- Trigger query with keywords being matched to all fields
- For matches in fk tables, search primary table for fk==pk match and display names + names matched in primary.
- Edit entry —> [D]
- [C] New Contact Form
- Name fields
- Add ph. no. —> Adds set of sub-fields to be populated by [PH]
- Add. address —> Adds set of sub-fields to be populated by[AD]
- Add date —> Adds set of sub-fields to be populated by [DA]
- [D] Modify Contact Entry Form
- Pre-poulate [C] with all existing data
- Provide name fields, [PH], [AD] & [DA] links.
- [PH] Phone Edit Form
- All fields in a single phone number entry
- [AD] Address Edit Form
- All fields in a single address entry
- [DA] Date Edit Form
- All fields in a single date entry
- All fields in a single date entry
- UI Wireframe Mockups
- Schema definition & table creation
- CSV parsing & table creation <—> flat table entry object propagating to GUI for editing.
- Query Planning & direct SQLite Testing
- Backend Query Implementation using ORM
- Testing Backend API
- Model definition - typed dictionaries as object models + object relational model combined.
- Model view interaction - populating a view with its model
- Contact Form MVC implementation
- [contact_form(cid_object) —> edited_cid_object]
- [contact_form(None) —> new_cid_object]
- Model - view interaction: populating form with existing entry
- Editing Address/Phone/Date & MVC for sub-views
- [address(ad_object) —> new_ad_object]
- [phone(ph_object) —> new_ph_object]
- [date(date_object) —> new_date_object]
- Testing object change sanity
- Controller implementation - manipulating model from view actuated commands
- View - Controller wiring (user action —> controller —> model changed —> view changed)
- Search view implementation
- Testing application