Magick LogoMagick Logo

Contents

Magick Logo
 

Magick Client

Project Number

5

Slated Release

2.1

Author

Preston A. Elder

Date

31st July, 2002

Revision History


$Log: 2.1magick_client.html,v $
Revision 1.6 2002/08/12 16:55:23 prez
Added the 'language data' pane.

Revision 1.5 2002/08/01 01:04:46 prez
Take 2 (same as last message)

Revision 1.4 2002/08/01 01:03:16 prez
Fixed the font of items in <ul> lists

Revision 1.3 2002/08/01 00:48:57 prez
Added the index link.

Revision 1.2 2002/08/01 00:41:08 prez
Fixed length of left-side menu table

Revision 1.1 2002/08/01 00:38:36 prez
Added magick client spec.


Summary

Magick will be able to be completely interacted with, monitored and configured without having to log onto IRC or edit a configuration file, even remotely. This will be done with two client interfaces to Magick. The first will be a DCC and telnet interface (which will work the same way for both). This interface will mostly allow viewing of data, and some special actions to be performed. The more powerful interface will be the Magick client, which will allow full access to modifying the database, viewing the log file, and configuring Magick.


Justification

User interfaces are one of the most important parts of any product. Right now, Magick's existing configuration GUI is very limited (it will only generate and load a configuration file graphically), and does not really communicate with Magick at all. Several services out there already have UI's that interact with services doing things like viewing log files, viewing/editing data, running reports, and triggering events (such as starting/stopping). Magick loses ground against these kinds of services because of this.


Pre-Requisites

The Inter-Magick Protocol must be created.


Implementation

The Magick client will actually be two clients. First the telnet and DCC interface that will allow certin control functions and extra viewing of data, etc than online MSG interfaces allow, however will still be restricted. Second the Magick client which will implement the Inter-Magick Protocol, and be full featured allowing all kinds of log monitoring, file transfers, database updates, etc.

The telnet and DCC interface should first require authentication, being a registered nickname and password. Depending on which committees the user is on (the telnet and DCC interface will only be available to those who are on privileged committees) will alter the commands that they will be able to execute. These include anything from viewing data records, to performing various services functions they would be able to perform online anyway, to some specialized features such as log file or services activity monitoring. Various periodic statistics will also be available in the telnet and DCC interface. This concept is modelled of the eggdrop telner and DCC interface, and will have many similar concepts.

The Magick client will be a full GUI that will operate on both Windows and X-Windows, and will implement the Inter-Magick protocol. This means that protocol-based authentication will be required, and encryption/compression will be supported. The protocol-based authentication is much more secure than just a nickserv registered nickname and password. The Magick client will have several screens, including:

  • The server screen. This will have multiple tabs, that either allow the user to perform operations on the server (eg. force a database save, config reload, etc), or show various statistics about the server (including those available with the STATS ServMsg command, and other stats not available otherwise). This will also show information about the server we are currently connected to, such as its name, the protocol being spoken, the software version string, and statistics like amount of messages sent/received, etc.

  • The configuration screen. This will display the current configuration of Magick (and feature an 'update' button to refresh the current config), and allow the user to modify the configuration, and send it back and get the Magick server to reload that configuration. This screen, like the current configuration GUI, will have various tabs. It will also be able to generate a configuration file without being connected for use with initial creation.

  • The log tail screen. This will display the current log file, and allow the user to scroll through and view it. This display will keep growing, and the user will be able to always scroll to the bottom and see the most recent log output.

  • The language data screen. This will have at its top, a dropdown box with all current languages that are installed on the server (with the option to add a new one). It will then have 3 tabs underneeth, "User Responses", "Help Text" and "Log File Output". Each should open up into a dual pane, with a tree on the left (with which the user can browse the sections and token names in that file, or create a new one), and a text window on the right, which will allow the user to edit the text of that language token. The text edit window should have vertical and horizontal scroll bars, and only on a '\n' in the language file should a line be put onto the second line. For help, the text window will be broken up into 3 columns, the first is the 'must be on' column, which lists (for each line) all the committees a user may be on to see that line of text. The second is 'must not be on' column, which lists all the committees that, if the user is in, will stop the user from seeing that line of thext, and the last is the actual line of text. Each line of text should be broken up in this manner (which means that the tree for help files will only contain section names, not tokens). Obviously, in both cases, new lines of text should be able to be inserted at will, and lines erased, etc. In each case, there should also be a little tool bar above the text entry pane, which will do things such as make text bold, underlined, etc. This will have to be interpereted both ways when sending to and from the Inter-Magick protocol. As a side-note, it might be nice to be able to have an option to both duplicate a language (so you can then go and just replace the existing text for every item), and to be able to see an example of the token in use (which means an example would have to exist for the token being modified, however an example language file exists for just such a purpose).

  • The data edit screen. This, like the configuration screen will have many tabs of its own, representing each record type. This will allow direct viewing and/or modification of the Magick database. It will (obviously) have to perform all consistency checks (such as ensuring that if they change the founder of a channel, the nickname they choose is valid, etc). There will be a preferences item to disable editing of values.

  • The reports screen. This will allow a user to run queries on the database, showing, for example a display of all users who have the PRIVMSG setting on, or whatever. This screen should allow the user to first select the type of records to do queries on, second the data values that should be in the query, and third the fields to shown in the results. The resulting report should allow all columns to be resized at will, and should allow hovering over a specific field to obtain the full text of the data within.

  • The magick interface screen. This is equivalent to a telnet or DCC session, and will have an input box for the user to type commands, and will scroll the output that would be seen on a DCC or telnet session by.

Connections will be established and disconnected by an option in a drop down menu. The Magick client should maintain a server list (including passwords, encrypted) that a user will be able to select from, add to, and delete (and obviously connect to). A preferences dialog should also be created for all configuration items of the Magick client itself, things like whether or not to enable editing of database values, etc.


Potential Problems

This will be a VERY powerful tool, so all kinds of warnings should be added, to let the user know that if they dont restrict, for example, in the server where it will allow clients to connect from, or let their passwords get out, a network could be torn asunder with it.


Test Plan

N/A


Glossary

N/A


Copyright ©2001-2002 Magick.tm. All rights reserved.