Design and write a program to remember birthdays using OOP.
Begin the Prj. by designing a BirthdayList class and a BirthdayItem class.
I will send the GUI when we agree on a bid.
The BirthdayList class should save the collection of its BrithdayItem objects.
The BirthdayList class should save the collection of its BrithdayItem objects to a simple CSV file during its terminate event and should load its contents from the same CSV file during its initialize event. The BirthdayItem class should have properties for each of the values shown on the sample form. Additionally, it should have a read-only property that returns the number of days until the person's birthday. Whe the main form first loads, it should call a method in the BirthdayList class to display a message for each person who has a birthday in the next 10 days. The BirthdayList class should also have methods that allow BrithdayItem objects to be added, updated, deleted, found, a method to fill a list box with the names from the collection of BirithdayItem objects.
The list box on the form should how the name for each person in the list. Clicking a name in the list box should cause that person's information to be displayed in the text boxes. Buttoms on the form should allow items to be added, updated, and deleted from the BirthdayList object. When the Find button is selected, code in the event procedure should call a method in the BirthdayList class to search for the name specified in the Name text box.
Remember the rule of encapsulation. The main form should only work with the BirthdayList and BirthdayItem classes' interface. It should not "know" that the birthday information is stored in a collection and CSV files. Likewise, the BirthdayList and BirthdayItem classes should not contain any reference to the form.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
windows XP, VB6.