The Project

Description The Video Instant Messaging System (VIMS) is a software application.  It allows anyone with a personal computer (and Microsoft WindowsTM) to communicate with other users of the application via:
  • text messages
  • voice and video

The system assumes that a TCP/IP network is already set up between users -- for example, two computers both connected to the Internet.

Goals Our goals for the Spring 2003 offering of CENG 499B at the University of Victoria were to:
  • Gain experience designing software in a Microsoft's .NET platform environment
  • Learn about network and security issues in software
  • Improve our knowledge of the C# programming language
  • Learn about video capture
Objectives We set out to achieve the following objectives with our design solution:
  • Develop a friendly video chat application with text, audio and video capabilities.

Text, audio, and video capabilities would put our application on par with other commercially available instant messengers, e.g. MSN Messenger, Yahoo! Messenger.

  • Make the application easy to use application (suitable for any novice computer user).

In order to gain wide-spread public acceptance and thus increase our potential revenue, our application must be easy to use.

  • Provide a peer-to-peer architecture.

A peer-to-peer architecture is required to achieve our objective of providing real-time voice and video capabilities, since it is most efficient to send video packets directly to their destination, and NOT route them through an application server.

When contrasted with a single server/multiple client architecture, a peer-to-peer system also provides the following value:

  • No need to invest in a powerful application server, capable of supporting (potentially) thousands of users.
  • Clients can be reassured that their communications are not monitored by the creators of the messaging system.
  • Provide an easy way to locate other users without the need for a single, central server.

Other instant messaging systems require users to either a) know the IP address of the friend that they wish to contact, or b) log on to a central server that is dedicated to locating users on the network.

Condition a) is not user friendly.  Many users that connect to the Internet via dial-up connections get a new IP address each time that they connect to the Internet.

Condition b) violates the objective we wish to achieve of providing a peer-to-peer architecture.

The Creative Process We started the project by brainstorming our goals and objectives (outlined above).  We also spent time researching our options for providing voice and video functionality.  Mélanie investigated several options, including:
  • writing our own video capture code
  • using a third-party code library for video capture functionality

Jeremy researched how to use the Microsoft .NET Framework to develop network applications, and started the design process for the networking aspects of the application by doing basic domain modeling, and class diagrams in UML. 

Results: What We Built Ultimately, we narrowed our scope to the following for the 3 month design project:
  • Integrating a third-party video capture library
  • Providing the following features:
    • Text messaging (e-mail style)
    • Text chat (typing back and forth)
    • Sending files
    • Recording video/audio clips
    • Sending pre-recorded video/audio clips
    • Archiving all messages received (i.e. an Inbox)
    • A Friends list, which automatically updates with the current IP address of each Friend in the list
    • A notification window for incoming messages

Screen shots of the application are provided below for 1) Text chat, 2) Recording video/audio clips, 3) Sending files, 4) the VIMS main window with Friends list and Inbox displayed, and 5) the incoming message notification window.

Figure 1: Text chat

Figure 2: Recording video/audio clips

Figure 3: Sending files

Figure 4: VIMS main window with Friends list and Inbox displayed

Figure 5: Incoming message notification window

Future Enhancements
  • Real-time voice and video chat
  • Create a friendly and easy to use help section
  • Video chat rooms for multiple users
  • Live game playing
  • Web interface to get messages from anywhere, at any time
  • Multiple platform capabilities
About the Team

Special thanks to our project supervisor, Dr. Issa Traoré

Jeremy Geras Résumé Mélanie Bernier Web Site Jeremy Geras Résumé Mélanie Bernier Web Site Jeremy Geras Résumé Mélanie Bernier Web Site