Click here to Skip to main content
15,846,518 members
Articles / Desktop Programming / Win32

Address Book and Events Reminder

Rate me:
Please Sign up or sign in to vote.
4.74/5 (37 votes)
13 Feb 2009CPOL16 min read 104.5K   10.7K   106   21
Allows to maintain and backup your contacts and also maintains a reminder. You can store data in any of the three different databases like Microsoft SQL Server, MySql, Microsoft Access


This is a simple but useful utility developed using C# which runs under Microsoft .NET Framework v2.0 or higher. This tool helps in maintaining your contact information such as Name, Address, E-mail, Phone, etc. This also just maintains the Event as stored data and display in this version and will be updated to remind you on time with enhanced and new themed feature.

This application is created for multi users. It uses unique credentials from the users and displays their relevant data when requested. It also contains the facility for data backup in XML format or Encrypted format even with password protection. This backup can be created using the schemas which exists as default or the one created by you. Schema refers to the set of instruction about the user details to be transferred using Backup Utility. This application can store data in three different databases like Microsoft SQL, MySql, Microsoft Access.

Database Settings

This application requires a database connection to store the contact information. The database must be either Microsoft SQL Server or Microsoft Access (*.mdb) database. When the application is started for the first time, the following message box will be displayed whether to set the database connection or not.

Image 1

Click yes in the preceding figure, so that the Settings form will be displayed as shown in the following figure:

Image 2

In this form, select the database type which you need to be used for storage. Use the check box to start the application automatically at system startup. Click save button. Then the Database connection form will be displayed according to your selection.

SQL Database Settings

Image 3

In the preceding form, type the Server name of the SQL instance installed and then select the mode of authentication whether to use Windows Authentication or SQL Server Authentication (requires username and password). If the information supplied is correct and if the connection to the database could be established, then the list of databases available will be shown in the list. Select one from the list and then click Save button.

Access Database Settings

Image 4

In the preceding form, select the Microsoft Access Database file (*.mdb) by browsing the system, then type the password of the database if any and then click Save.

MySql Database Settings

Image 5

In the preceding form, type the server name where the database is installed ( in case installed in the same system) and the username and password if required and then select the database from the list. If the database is not displayed, then the application couldn’t connect to the database. Then check to see whether the inputs provided are accurate. Then click the save button to save the changes.

When the selection of database is over, the application will restart to apply the settings and to connect to the database.

When the application restarts, the application will minimize to tray. Click on the tray icon and click Login or Contacts.

First time Login

Image 6

As this program requires user credentials to login, and the credentials do not exist for the first time, it will ask to create a new user. To create new user, click on Yes button on the displayed dialog box. When you click the Yes button, a form provided to manage users will be displayed as in the following figure:

Image 7

In the preceding form, the grid displays the users list and their account type whether Administrator or Limited User.

Administrator: This type of account has full rights over the application like creating, editing, removing users. It can also change the password of other users and view the contacts of other account, however cannot edit or delete them. There must be at least one user with administrative rights.

Limited User: This type of user cannot access user account, but can change her/his own password using the option provided. The contacts added by this type of user are available for the administrator account but the contacts added by other accounts cannot be viewed by this account other than shared contacts. 

Add New User: Click on the Add button (First Button) to add new user. The form to add new user will be displayed as shown in the following figure:

Image 8

In the above form, type the Name of the user, type of the account and the password. Then check the check box provided which is used to allow the user to login, where this functionality can be used to restrict a user from logging in without deleting the account. When editing the account, this form also displays the details about the user such as when he had created the account, when the account had been last modified and when the user had been logged in last. Click Add User button to add the user. Then the user will be added to the User Account.

Follow the previous steps and add as many users as needed. Then click the Close button (fourth button) to save the changes and then the Login form will be visible as shown below:

Image 9

In the Login form, type any of the User Name and the Password to login and view, add and edit the contacts.

Contacts Form

Image 10

The above form displays the list of contacts added by the current user. To view the contacts of a particular user, select the user name shown at the left panel and then double click the category from the left panel. Limited user can view only her/his own contact and the contacts shared by other users as previously mentioned.

The contacts saved are broadly divided into two groups, one is Categorized and the other is Uncategorized. All the categories which don’t come under any category are placed under Uncategorized and all the new contacts added come under this category. To categorize the contact, just select the required category and right click on it and then click New -> Contact which will place the contact under that category.

Add New Category: To add a new category, select the Categorized group from the left panel and then right click and then click New -> Category. A new category will be added to the list and you will be asked to name it which won’t accept the default name. These categories can be nested and are unlimited. You cannot add a category with the same name already added under the same group.

Add New Contact: Click Options -> New Contact (Shortcut: Press Ctrl + N) and then type in all the details in different categories separated in tabs such as Name, Home, Business, Personal, and other. This form looks similar to Windows Address Book - New Contact. Type all the details about the contact and click on the Save button to save the contact. Continue adding all the contacts. The above form will be populated with the contacts as and whenever you add. If not, click on the View -> Refresh or just press the F5 key on your keyboard to populate the list.

Edit Existing Contact: Select the contact you need to edit and click Options -> Edit Contact (Shortcut: Press Ctrl + O) and the same form to add contact will be displayed. Here update whatever you need to and then click Save button to update the contact.

Delete Contact: Select the contact you want to delete and then click Options -> Delete Contact (Shortcut: Press Delete). It will confirm whether to delete or not. Select your choice so that the action will be performed.

Searching for Contact: To search for a contact, click Options -> Find People so that the below form will be displayed:

Image 11

In the above form, type one or some of the fields to search for and click Find now. Select the check box below to display all the contacts with matching criteria of any one.

Data Backup: View the Backup Data section provided below.

Adding Reminders: To add Reminders, click Options -> Reminder -> Add Event. In the Add Reminder form, type the required details. The reminder will be displayed in Contacts form itself. It can be shown or hidden by selecting View -> Reminder.

Change Password: To change the password of current user, click Tools -> Change Password and type in the old password and new password. To change the password of other users, click Tools -> User Account and do the same thing as you did in the first step. Only Administrator account can change the password of other users.

Changing Settings: To change the settings, click Tools -> Settings.

Backup Contacts: This is a functionality to backup entire or selective contacts from the list of your contacts. Click on Options -> Transfer Data so that backup form will be displayed as shown in the following form:

Image 12

In the above form, select the details required using the below guidelines.

Create Backup: To create a new backup, select the Backup Mode as Export Data which enables Save As button. Click the Save As button and select the type of backup whether as XML (Details Visible) or COB Backup (Encrypted, Password Protected). Then Select the schema, to select which details of the contact can be added to the backup. To know more about schema, read the Edit Schema section provided below.

If you had decided to create a COB Backup, then the Username and Password fields will be enabled. Type in the required Username and Password and click the Set button. Then select all the contacts from the list which had to be added to the backup. Now that you are done, finally click on the Transfer button to create a backup file.

Restore Data from Backup: To restore the backup, select the Backup Mode as Import Data which enables Open button. Click the open button and select from which type of backup to restore data and then select the file. If you had selected COB Backup file as source file and if it is password protected, type in the user name and password and click the Set Button. If your User Name and Password are correct, the contacts in the backup will be visible in the grid. Select all the contacts which you have to restore and then click the transfer button. Now you are done. Your data has been restored.

Using Schemas

Schemas are used when you need to backup only particular details of the contact. You can create, edit and delete your own schemas using the functionality provided for convenience. However you cannot edit or delete the schema created by other users or the default schema already in the list. To add or edit schema, click on the Edit button near the schema name on the Backup Wizard displayed above so that the below form will be visible:

Image 13

The above form is the schema editor.

Add New Schema: If you want to create a new schema from the drop down list of Schema Name, select < Create New Schema > so that Save button will be enabled. Then type the schema name in the second schema name box. The list shown on the left side contains the total details which can be entered by the user. Just select the details you want to add to the backup and click the -> button to add it to the list at the right side which is the list of details to be added. I think I need not explain the other four buttons which is usually in most of the applications. Finally click on the save button to save the schema. Now you can select your schema from the list of the schemas in Backup Wizard.

Edit Existing Schema: To edit the schema, select the schema from the list which you had to edit so that Edit button will be enabled. Make the necessary changes and click Save button. Note, editing the schema makes the backup created using the schema unusable (However you may change the name of the schema).

Delete Schema: Select the schema from the list and click Remove button so that the schema will be removed.

Miscellaneous Functions

Share Contact: To Share an existing contact, select the contact and Right Click -> Actions -> Share Contact.

UnShare Contact: To unshare a shared contact, select view it in a shared contact list and Right Click -> Actions -> Unshare Contact.

Move Contact between Categories: Just select the contact(s) from the list, right click and then click Cut from the menu. Then go to left panel, select the category to which it had to be moved, right click and then click paste from the menu.

Calling: To make a call to a phone number through your dialup modem, select the contact, Right Click -> Actions -> Call. A new form will be opened to select the phone number and call.  This functionality is added by downloading a DLL from the net from unknown location few months ago which is free to use. I thank the company or the author whoever had uploaded the free DLL (Ras.dll).

Printing Contact: To print the contacts, click Options -> Print Contacts and then the below figure will be displayed:

Image 14

In the preceding figure, select all the contacts listed and then select the type of print you need to perform namely in tabular format (Horizontal) and Bio-Data format (Vertical) with or without border lines. Then select the schema for the details to be printed. Only the columns listed in the schema will be printed. Then click the save button at the top left corner and then save the print file as webpage. Then open the file saved which will open in your default browser and then you can adjust the layout and you can print from the browser. 

Points of Interest

You can use any database like Microsoft SQL Server, Microsoft Access or MySql as the storage area for your contacts, so that you are not stuck with your single database.

This application maintains a separate list of data for each user so that your contacts cannot be accessed by other users. If the user has Administrative rights, he can access others contacts but he cannot Edit or Delete them.

If you need other users to view one or some of your contacts, you can share only those contacts and so other users can view it under shared contacts.

You can group contacts according to your requirements under many nested categories created by you so that you can use it efficiently.

You can access the data from any system connected to the database which contains the contacts from your local network.

After adding the contacts to one category, you can cut and paste the contact to another category easily.

You may create a backup of your contacts in two different ways, one as XML file and another as Address Book Backup file (*.CBK). Using Address Book Backup file, your details are encrypted and are password protected. 

While backing up, you can select which contacts are to be added to the backup.

You can carry the application and single Microsoft Access DB in pendrive as portable so you can view your contacts anywhere.

You can use schemas to add only relevant details of the contact to your backup. These schemas can be edited or deleted only by the user who created it and by the Administrator. 

When a user is removed from the User Account, it is suggested to take a complete Backup (with current (removed user) login User Name and Password) so that the contacts can be restored on knowing the login User Name and Password to any other existing account or new account. 

Future Updates

Portability: Now if you carry your application, the application still works as if it is running from your local system, but in future the application can recognise that it is running as portable and so can find some more advantages.  And also if you had used autorun for the application, this application will protect your pendrive from copying viruses without your consent.

Reminding Events: Now the application can store just the reminder and you can view it as text, but in future you will be reminded of the events before the time specified.

Windows Vista Theme: Now the application inherits the theme from your system but in future, Enhanced Vista looks for this application with different offered theme and also with a theme editor attached with it to generate your own theme for the application will be provided.

Support Multiple Languages: Now the application can use only English and will support multiple languages in future and an editor to add your own languages.

Backup as Database: Now you can take the backup as password protected but cannot modify it directly. But in future you can open the backup just by double click, enter user name and password and edit it with Address Book as if you were using some of the databases.

Adding New Contacts: Now the application contains the form for adding New Contact which looks similar for Windows Address Book. In future, it will be replaced with a more efficient and more functional form.

System Protection: Very low level protection for your system by protecting your registry from malwares from modifying the registry. Most of the viruses starts execution just because of the run entry of your registry and so it will be monitored and the entries will be blocked if you prefer to do so.

Messaging: Messaging functionality will be provided to send message to another users using the application from different system within the LAN.  It also provides the functionality of sending small files to other systems directly (time consuming for large files while transferring) from your system.

Chatting: Direct chatting with other users of this application throughout the world just by requesting them for chat using the external IP address of their system (Not confirmed for this functionality because of unsuccessful chats most of the times and raising security risk by modifing the application).

Printing Contacts:  Now printing is provided just with a low and inefficient functionality. But in future, it will have multiple layout for printing and will be provided within the application.

Bug Reporting 

This application has not been tested much and so may or may not contain bugs. In case of any bugs, and if you have suggestions to improve the project more than the above specification, feel free to contact me at If you report any bugs, the application will be updated as soon as possible and you will be notified by mail for the updates.


In 2008, this application had been first uploaded to the internet with minimal functionality. But now, it has been updated with some new and enhanced functionality like Making a Call directly from the contact list, Grouping the data under nested Categories for better efficiency, and sharing only relevant contacts with other users.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Written By
Software Developer
India India

Completed B.Com(CS) at DGVC and GNIIT Software Engineering at NIIT. Resident at Chennai and working as a Software Engineer.

 Language / Technology :

C#, ADO.NET, ASP.NET, MVC, WCF, ASP, PHP, XML, Java, J2EE, HTML, JavaScript, JQuery, AngularJS, VB Script, C++, MS SQL Server, SSRS, MySql, Oracle, Oracle Forms Development, Windows, Linux.

Click here to view other articles.

Mail Me at:

Visit my Site:

Comments and Discussions

QuestionPlease share this project language Pin
Member 123129677-Feb-16 21:51
Member 123129677-Feb-16 21:51 
Dhaval Radhanpara15-Aug-15 21:35
Dhaval Radhanpara15-Aug-15 21:35 
GeneralThanks Pin
Suranyi29-Oct-13 7:43
Suranyi29-Oct-13 7:43 
Generalany encryption is using in database......... Pin
Member 423560125-Feb-09 12:06
Member 423560125-Feb-09 12:06 
GeneralSizes given for downloads Pin
Henry Minute16-Feb-09 2:09
Henry Minute16-Feb-09 2:09 
GeneralRe: Sizes given for downloads Pin
SHRIDHAR TL16-Feb-09 2:44
SHRIDHAR TL16-Feb-09 2:44 
GeneralRe: Sizes given for downloads Pin
Henry Minute16-Feb-09 2:50
Henry Minute16-Feb-09 2:50 
GeneralRe: Sizes given for downloads Pin
SHRIDHAR TL16-Feb-09 2:54
SHRIDHAR TL16-Feb-09 2:54 
GeneralFuture Development Suggestion Pin
spoodygoon14-Feb-09 16:27
spoodygoon14-Feb-09 16:27 
GeneralDatabase Missing Pin
Rai Shahid7-Aug-08 18:44
Rai Shahid7-Aug-08 18:44 
GeneralRe: Database Missing Pin
SHRIDHAR TL7-Aug-08 18:49
SHRIDHAR TL7-Aug-08 18:49 
GeneralRe: Database Missing Pin
Rai Shahid7-Aug-08 18:53
Rai Shahid7-Aug-08 18:53 
GeneralRe: Database Missing Pin
SHRIDHAR TL7-Aug-08 20:01
SHRIDHAR TL7-Aug-08 20:01 
GeneralRe: Database Missing Pin
rw_architect26-Apr-10 7:20
rw_architect26-Apr-10 7:20 
QuestionHow did you hash data? Pin
Mohammad Dayyan7-Aug-08 13:11
Mohammad Dayyan7-Aug-08 13:11 
AnswerRe: How did you hash data? Pin
SHRIDHAR TL7-Aug-08 16:11
SHRIDHAR TL7-Aug-08 16:11 
Hi Mohammad Dayyan,

I am not hashing the data, It is mathamatically proven that once if the data has been hashed, their is no way to reconvert the hashes into english. So hashes are only used for passwords.

Then how they check the password entered is correct?

It is posible because in hashing for each set to characters their are only one result in the hash table. The same result wont come for any other set of characters. So the entered passwords are converted into hashes and both the hashes are matched...

Then what i had did to hide the passwords and data?

Their are many other characters other than the characters visible at keyboard. I had just converted the normal characters with the new one which is not found at the keyboard. To view one of the character open the notepad and press alt + 1547 and then release the alt key. You had typed a new character in the notepad using your keyboard. Like wise when ever your type any numbers pressing alt you will find different chars. These chars i have been used to convert the normal chars.

For any other doubts you may contact.


GeneralRe: How did you hash data? Pin
Mohammad Dayyan7-Aug-08 16:36
Mohammad Dayyan7-Aug-08 16:36 
GeneralRe: How did you hash data? Pin
SHRIDHAR TL7-Aug-08 18:20
SHRIDHAR TL7-Aug-08 18:20 
GeneralRe: How did you hash data? Pin
Mohammad Dayyan7-Aug-08 18:27
Mohammad Dayyan7-Aug-08 18:27 
GeneralRe: How did you hash data? Pin
SHRIDHAR TL7-Aug-08 18:37
SHRIDHAR TL7-Aug-08 18:37 
GeneralRe: How did you hash data? Pin
Mohammad Dayyan7-Aug-08 18:56
Mohammad Dayyan7-Aug-08 18:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.