After about a month's work, the Gmail extension has been developed.The current version is slightly different from the original version of the extension.
I keep made small changes to the UI just to provide more information to the users, and maintained the functionality of the original extension.Once the extension has been launched, users will see a window about half the size of the screen, on which there are the search input box, the logo of the extension and some guideline for the users. Users can view the guidelines just by moving the mouse to the exact point they want to read. This extension provide the same search engine as Gmail. When a user has put in the key word he/she wants to search and clicked "Search" or pressed "Enter" on the keyboard, an icon with the current status information, "Searching", appears under the search box. On the icon, there is a small "x" at the end, a user can click it to terminate the indicated search.
When all the email information is received, the status icon will change to a colour ball followed by the key word and the extension will draw 3 charts which enable users to view their email graphically.A user can click on the data points on the first graph to see the main content of the emails received in a single month and have the second and third charts upgraded to the corresponding daily and yearly charts.
Above is the a description of the full round of the working process of the extension, if the users want to compare emails with different key words, they can simply enter another key word and search again. The extension will draw 3 new charts with data points and lines of different colours. Also, the users can remove the search result generated by a key word by clicking the corresponding "x" at the end of the key word icon.
One thing to note is that because this extension rely fully on the response from Google, update to a newer version will generally happen several days after Google changes the response. During the development phase of this extension, Google changed the response twice and I had to change the response manipulation part of the code.