Project Kontak: term project for my IT sabbatical

Project Kontak: term project for my IT sabbatical

The end result of my Post-ATHM information technology sabbatical was my first complete, publicly deployed web application: Kontak, a personal contact application that permits a visitor on my Homepage to pop open a small browser window, and send email messages to my Web-email account or my cell phone, without knowing my actual account address information. In this manner, I shield those accounts from spammers, because I never give them out! Kontak also logs all messaging activity, so I can see who sent me what from where and when.

Kontak is based on the following set of technologies:

[1] The Web HTML forms, server-side ‘business logic’ and control of an SMTP mail server are all done in the PHP scripting language, running under the Apache Web Server on a Mac OS X 10.2 server.

[2] The message activity log is maintained in a MySQL database, running under Red Hat Linux 6.2 on a 2nd server (in my dining room data center ;-). PHP provides simple API’s to access databases built in MySQL.

[3] The Kontak app, or really the Apache Web Server behind it, is exposed on the open Web by maping the dynamic IP address provided by my dial-up ISP to a static hostname using the service at dyndns.org.

[4] As a security measure, the OS X server is shielded from the Internet behind a NAT router (Network Address Translation), which in turn provides the Internet connection via an integrated dial-up modem. The two servers powering Kontak are assigned private IP addresses within my development Intranet. The Web server’s IP and port number (80) are then mapped by the router to my public dynamic IP address, to recognize server requests from the open Web.

Kontak represents a grand tour of contemporary Web application technologies, and provides a hands-on understanding of how modern application developers make things happen on the Internet. All in all, a very rewarding journey for a software technology product-marketing person!

Leave a Reply