During a recent project, I got a web interface written by a freelancer to use with the application "GroupTools" (application made by the employer and can be found at [url removed, login to view]).
In order to accept this project, the freelancer needs to download the software from [url removed, login to view] and install it.
Furthermore they need to have atleast a little knowledge of the online game "Second Life".
1.1 Add column "balance" (decimal value) to the table "webapp" in MySQL database.
1.2 Add table "WebAppSettings" with columns for various settings for future use.
In table "WebAppSettings", add columns "cost" and "period" with values 0.04 and minute (customer will pay [url removed, login to view] bot).
1.3 WebInterface must accept POST or GET variables "UpdateBalance=XXX&User=[url removed, login to view]"
where XXX is int value and will update the balance column for the given master name.
(This is not a visible site, just a "page" that accepts the commands to update the MySQL records).
1.4 Read Localchat logfile.
When WebInterface finds the line "[2015-05-24 10:25:35]: [INFO]: Your bot is now ready!" in the logfile, the WebInterface
should alter the the column "balance" for the logged in master.
Check against [url removed, login to view] and [url removed, login to view] to calculate the cost.
(According to 1.2, it should remove 0.04 fro the balance every 60 seconds.)
1.5 Read the files: /run/[url removed, login to view] and /run/[url removed, login to view]
1.6 In the Dashboard, show listviews for each bot, one for *.[url removed, login to view] and one for *.Operators.xml.
These listviews need to keep track of two things.
1. [url removed, login to view] = the key of the dictionary
2. [url removed, login to view] = the value of the dictionary
(is it possible to use listviews with tags in WebApps like it is in .NET applications?)
(See milestone 4.2 for future use of these listviews).
"The WebInterface needs to keep track of all running client instances.
In case the application crash or the server restarts, there needs to be a function that can restart the client instances to ensure
they are always running unless customer manually shut down the instance."
Create a Timed Messages Manager form (copy of the layout from World -> TimedMessages in the Client application)
Read the files:
/run/[url removed, login to view]
/run/[url removed, login to view]
And present them the same way as Timed Messages in the Client application.
This milestone is probably one of the most time consuming milestones due to having to go through functions in the Client Application,
understand how the XML files is used and convert the functions in the Client Application into the WebInterface.
4.1 Add functionality to give external commands.
This should preferably be displayed in the dashboard for each running bot.
eg. a simple textbox and the button "run command".
Commands needs to be saved in the file /run/[url removed, login to view]
Employer will provide format of the xml file, a list of all commands and syntax of each command in a text file.
This should be made visible somewhere in connection to the command textbox. A popup might be the best solution?
Employer encourages the freelancer to click the menu item "Commands" in the Client Window to see what it looks like in the Client Application.
4.2 A menu needs to be present for AllGroups. Either by right-clicking (is this possible) or buttons on the side of the listview,
that is only eneabled when one group is selected (no multi-select!).
Menu items should be "Leave", "Activate", "Use as Operators Group".
Two other menu items/buttons need also be available, even if no group is selected.
These would be "No OperatorsGroup" and "No Active Group".
When these menu-items/bottons are clicked, a command will be saved in the [url removed, login to view] file.
It is essential that the the presentation of the groups can keep track of both the key and value, as many commands needs the
UUID value of the group.