How kushal6245/addressbook-c works
This is a terminal address book in which a user chooses menu actions to create, find, update, remove, or display contacts. The program loads contacts at startup, keeps them in an in-memory address book, and writes changes from add, edit, and delete operations to CSV; the menu’s save-and-exit branch does not itself call the save routine. Search supports name, phone, and email matching and supplies selected contact indices to edit and delete. The README documents validation and CSV persistence; the graph reflects the sampled implementation.
Main entry points: main.c Menu Controller · searchcontact.c Search Contacts · editcontact.c Edit Contact · deletecontact.c Delete Contact
Components 12
Menu and Model
- Menu Controller
main.c - Address Book State
addressbook.h
Contact Operations
- Add Contact
addcontact.c - Search Contacts
searchcontact.c - Search Results
searchcontact.c - Edit Contact
editcontact.c - Delete Contact
deletecontact.c - List Contacts
listcontact.c
CSV Persistence
- Load Contacts
todatabase.c - Save Contacts
todatabase.c - Contact CSV
database.csv
Other components
- Terminal User
Connections 18
- Terminal User → Menu Controller: selects actions
- Menu Controller → Load Contacts: loads at startup
- Menu Controller → Load Contacts: refreshes
- Menu Controller → Add Contact: dispatches
- Menu Controller → Search Contacts: dispatches
- Menu Controller → Edit Contact: dispatches
- Menu Controller → Delete Contact: dispatches
- Menu Controller → List Contacts: dispatches
- Edit Contact → Search Contacts: selects contact
- Search Contacts → Edit Contact: returns index
- Delete Contact → Search Contacts: selects contact
- Search Contacts → Delete Contact: returns index
- Search Contacts → Search Results: displays matches
- Add Contact → Save Contacts: persists contact
- Edit Contact → Save Contacts: persists changes
- Delete Contact → Save Contacts: persists removal
- Load Contacts → Contact CSV: reads
- Save Contacts → Contact CSV: writes