WinForm Dictionary App

A distributed multi-language application that acts as a dictionary.


Final Year University Project

... by Semir in DevelopmentMay 15, 2013 55

A distributed multi-language application that acts as a dictionary as well as provide a translation and pronunciation services to the user. It uses a client-server based architecture with a multi-threaded server and MySQL database. The application looks up a given word inputted by the user via a GUI on the client side and then pass the word to the server to find its translation and pronunciation. Once the server received the word from the client - it breaks down the word to its phonetic sounds and picks up the appropriate wav file for each phonetic character, and concatenates all the wav files for the word and sends the resultant wav file via a TCP socket connection to the client. The client will then play the resultant wav file and also display graphically representation of the word in the form of the sound waves.

The screen shots below includes the original Sketch and workflow diagram for the WinForms program for both the client and server application for translation and pronunciation functionalities.

Challenges & Requirements

  • Research and analysis for system design and implementation.
  • Detailed design specification.
  • Provide concepts of operations and software requirements and specification.
  • High level design and application structure and constantly review during the project implementation phase.
  • Software code and coding reviews for each method and class within the applications during the project duration.
  • Application and installation test plans including source and executable code modules.
  • Project documentation and presentation.

Actions & Outcomes

In this project two main software applications were developed and implemented, these are:

  • Client application
  • Server application

Client application

  • A user friendly GUI was designed and implemented in order to allow the end user of the client application to interact with the client application for English word search for its definition, pronunciation and translation to multiple foreign language.
  • A graphical pane was also designed and appropriately placed within the client main GUI to enable the user to view the graphical representation of the pronounced English words. This is mainly useful in the comparison process for the accurate pronunciation of the English word.
  • Multiple textboxes (i.e. three main textboxes) have been placed within the client’s main GUI in order to allow for the placement of the English word definition and translation to multiple foreign languages. A list-box was also added to the client’s GUI in order to allow for the placement of the suggested similar English words to the word typed by the user which were sent by the server.
  • Multiple functional algorithm routines were coded and implemented in C# language in order to compute the required tasks. This includes event handler methods which are invoked and executed when related event is triggered.

Server application

  • A user friendly GUI was designed and implemented in the server application in order to allow and facilitate the interaction with the server for the administrator.
  • A data-grid table was embedded within the server’s main GUI to allow displaying the first five English word entries to the administrator from the dictionary database located within MySQL server. The table also displays the English words definition, IPA symbol and translation to multiple foreign languages. This enables the administrator to update or make amendments to the existing English words in the database directly without having to log into the database engine through web browser or command line applications.
  • Six textboxes were also embedded within the server’s main GUI for the use of entering new English word entry with its definition and translation to the dictionary database. This is mainly useful in order to update the dictionary database directly through the server application.
  • Multiple functional algorithm routines were also implemented within the server application using C# language in order to handle the different server tasks. This includes tasks for establishing TCP socket connection with multiple client applications, methods for retrieving information from the database engine, methods for streaming audio and text data to the clients and other network and database related methods.

Each of the above requirements were accomplished successfully and a final demo was carried out to the project supervisors and lecturers during the viva assessment.

Technologies Used

Below are a list of technologies that I have used to develop the project:

Conclusions

The main objective of this project was to create dictionary software with the intention of adding services that could not be found on commercially or open-source dictionaries. Hence, during the research phase main focus was made on identifying features that could add more value to this dictionary project.

Even though, it appeared to be that in order to create dictionary that fulfils the requirements of every user entails an immense effort. However, this project attempted to fulfil vital facilities that are considered to be essential components which classify an electronic dictionary as a self-contained application.

Conceivably, from users’ perspective it would be ideally to possess dictionary software that could at least fulfil most of their needs. This project is therefore developed in accordance to the identified gaps of features.

Semir Ibrahim

@Semirtamir
...

About me

I have more than 8 years experience building rich sand-alone and web applications for clients in different IT sectors.

I graduated from the University of Westminster in the United Kingdom with first class honours in Computer Networks and Communications Engineering. I currently work for Dutch company as a Senior Software Engineer.

Leave a comment

SemirIbrahim