[WEEK 13] Documenting..

So far I’ve already made quite some documentation about all the classes in the lib and the design choices.

I’ve used Doxygen to generate a HTML website out of it, which is handy to look up classes and functions (especially when talking about providing a library!)

An example of this:

Screenshot from 2013-09-17 05:28:54

Screenshot from 2013-09-17 05:33:20

The documentation in the code is pretty much done, I’m still working on writing wiki pages and a setup manual.

I’ve also fixed a few bugs, (I couldn’t register ingame, which is pretty important :D) and I expect more bugs to come.

Quitta

[Week 12] Starting to document

Hello there,

A few hours ago I pushed my last code increments for this gsoc project onto my repo (I expect some small bug fixes being pushed the coming weeks though ๐Ÿ˜€ ).

I finished porting the basis to the drupal module which handles now almost everything in the www version. They now also both use the same functions provided by the /inc and /func directories.

There are still a few features missing(not covered) in the drupal module, which can be easily added in the future. Though for now,ย  it was more a sanity check.

This week I’m going to start documenting, mainly because having good documentation can be very handy for a ‘library’.

I’ve already setup doxygen, which I will use the document the lib itself. I will also add a setup guide and more to the wiki.

-Daan

[Week 11] Drupal is cool!

Hello again!

If you haven’t watched the short presentation in my previous post, make sure you do!

This week I’ve been messing around with drupal and modifying the original drupal module in order to make it work with our ticketing system.ย I have to admit, Drupal was quite hard to understand in the beginning, but I’m working my way through it and I started to like it!

 

I still got a lot to add to the module to make it cover everything that’s being covered by the ‘real’ website.ย That’s also why I will stay working on the drupal module the coming weeks.

Quitta

Ryzom Account Management System Presentation

I’ve just uploaded a brief presentation about the current functionality of the account management system and more particular the ticketing system.

Keep in mind that not everything is covered in this video, especially the ingame part isn’t really shown. I will add more videos on that later on!

Also beware of my crappy English accent! ๐Ÿ™‚

Kind regards

Quitta

[WEEK 10] Rounding up adding new functionality

This week, a rather small update. Mainly because I had to take 3 days of for a school project.
Though I accomplished mostly what I mentioned in my previous post:

  • Ingame template files synced to the updated outgame files
  • Emails being sent by the system language dependentย  (Had to refactor the entire language system for this)

I’ve also started working on an “additional ticket Info” page that shows some useful info that’s being sent while creating a ticket ingame, because there’s a lot of useful GET data being sent that could be useful for identifying possible problems. Like the CPU model, memory usage, version of the client, etc..

What’s up for next week?

We are still in somewhat a dilemma: Update the drupal module, however I have never worked with drupal before, so it will take some time to get the hang of it, or spend my last weeks on adding some additional features (like a good search function, tagging tickets, coupling tickets, ..) Though I should start finishing the ‘additional ticket info’ page first, though that won’t take too long.

[WEEK 9] Mailing 2.0

The mailing functionality for the ticket system has increased quite well!

Let me show you what I achieved this week:

First of all in the config file you can turn the mailing on and off, (like if you dont want to support it)
I’ve added some fields to the support group creation page
Screenshot from 2013-08-20 02:29:23
There’s also the possibility to change those settings afterwards ๐Ÿ˜‰ The password is encrypted with’AES-256-CBC’ + “SHA512” on the key;

The mailing cron script will pull from those inboxes + you can specify a default inbox (like for example: ticketing@ryzomcore.com).
Users can email a new query to a specific support group’s matching emailaddress and the cron script will create a new ticket for it and forward it to the matching support group. This way you can easily send your questions to the correct department, without having to wait for someone of the general support team to deligate it.

Now I’ve also added an extra setting ‘Receive Ticket Updates’ which simply specifies whether you want to receive updates about your tickets or don’t.

Screenshot from 2013-08-20 02:39:07

When it’s turned on, users will receive an email when they create a new ticket or when someone of the moderators/admins answers on their ticket.
It’s possible to reply on those emails, and by replying on them you automatically add your reply to the ticket itself!

An example of this (don’t check the context, I was just testing it ๐Ÿ™‚ )
Screenshot from 2013-08-20 02:45:21

If someone else tries to reply to a ticket of yours, you will receive a warning mail + the person who tried to reply on it will get a notification mail too. Botanic had quite a point , when you got multiple mail accounts linked to your client, you might reply with the wrong email address, this prevents those issues!

I’ve also added a log file, that keeps track of your cron script and the output is kinda like:

========================================================
mailing cron Job started at: 08-20-2013 02:20:18
Child Cron job finished at 08-20-2013 02:20:22
========================================================
========================================================
mailing cron Job started at: 08-20-2013 02:21:41
Email found that is a reply to a ticket at:amsryzom@gmail.com
Email was written to /tmp/mail/ticket20.1376958105
Child Cron job finished at 08-20-2013 02:21:47
========================================================

As you perhaps have noticed, I’ve connected over IMAP to gmail accounts, simply because I was having issues receiving email on my laptop’s mailserver. Though normally this should work the same way!

What’s my aim for next week?
Well, I got one project to finish for school with a deadline @23August 23u59, I’ll have to focus a bit on that for the 3 days left to come. Though I probably find some gaps to fill in and ofcourse after that I can get back to gsoc for the full 100%. What do I still have to do about the emailing? Well I think the main functionality is done. I still have to change the ingame template files to make them match the outgame files I changed this week. Also on my todo list, is taking a look at pears mailqueue. Another major thing I still have to do is, making the emails being sent by the system language dependent, because atm the email content is hardcoded.

-Quitta

[WEEK 8] Mailing !

This week I dug into Botanics provided codesample for handling the emails.
As you may or may not know, we are trying to support replying on emails sent by the ticket system.

So let’s say if player X replies on your ticket, you get that reply also in your email inbox and you can easily reply on that email to post the reply on the ticket itself.

Now tbh, I never used IMAP before or any other email protocol, neither did I ever setup a mail server. I always tried to stay away from ’emails’, like it was something bad or evil ๐Ÿ˜€ Botanic however gave me a lot of good information and thanks to that I’m getting closer to the goal ๐Ÿ™‚

Atm, I’m using my own mailserver that I run on my laptop & use my ISP relayhost, however for the receiving of mails I’m using gmail. I still have some issues setting up my mailserver for that, but I guess I’ll get that working soon. When a ticket is created or someone replies on your ticket, you can already receive the reply in your inbox. Also replying on the email is possible and the reply is getting added already to the ticket. However there are still some issues with fetching only the specific reply of the user. Also the code is quite messy because of toying around with it.

Next week I have to clean up my mailing code a bit and get the correct fetching done! I didn’t show my current way of how it’s handled yet to Botanic, so that’s what I’m going to do next and then I’ll probably improve it with his remarks. ๐Ÿ™‚

Quitta

[WEEK 6] STATUS REPORT

Just a quick heads up,

This week wasn’t so productive if we look at loc, however, I spend quite some time trying to get my client working (Thanks Kaetemi & dfighter for the fix). I’ve also been looking into the xml files for changing the look of the Customer Support window, to make it look like the webbrowser. I’ve also written an automatic login function, so you get automatically logged in while ingame. Lastly I’ve added already some ingame templates.

This week I think I’ve compiled more than ever ๐Ÿ˜€ I’ve also been on a 2 day vacation trip with my girlfriend.

Now that we finaly got my client working the making of the ingame part wont take too long.

Though I’m quite disappointed with the lack of functionality the ingame browser supports. You can find the list @..gamedev/interfaces_v3/html.txt
It’s not that easy to get some good looking design with only those html tags, though I’ll try my best.

some basic test:
Screenshot from 2013-07-30 06:13:38

So next week: got the ingame part working and normally/hopefully that wont take the entire week so I can add some more functionality to the ticket system itself, however there are still some dirty bugs ingame that I’ll have to take a look at, like the previous & next buttons dont seem to work.

-quitta

[WEEK 5] STATUS REPORT

Getting closer to the midterm evaluation, only a few days ahead.

The fundamental parts of the ticketing system are almost done, if you keep on reading you will see a part of the current state.
As I mentioned in my previous post partially, we used a concept that wasn’t covered in my proposal, though which seems a lot better in many ways.
When installing the website, you start with an admin account, from there on, you can setup your support groups of choice, like for example: Developers, Website-Team, Customer Support Resp (CSR), etc.. You can easily add moderators and other admins to those support groupes.

Now the cool thing, if a new ticket arrives, anyone can forward the ticket to one of those freshly made support groupes, that way the ticket will show up in their “to-do” queue.

The Queue’ing system has changed also tremendously, instead of having multiple queues and pass messages between those, we now have one main queue, which is the to-do queue, where the tickets that aren’t assigned yet to anyone will be shown, but also the tickets that are assigned to you and where a user waits for support.
Also Tickets assigned to someone else, who didn’t reply on the ticket more then a day while the user is waiting for a reply, will be shown, this way those tickets will be handled even when a moderator is on a holiday trip or took the day of.

Also ‘hidden’ replies are added, these can be used, when you want to discuss something with coworkers, while the user who created the ticket can’t see those messages.

There’s a lot more, but I won’t go into much more detail.

Let’s talk about my aim for next week. Like I said at the start of this post, the midterm evaluation approaches and we think that I should first focus on the more importan things and lateron I can still add features like tags, associations etc. I still got a few things to do to the queue system, because this is a kinda vital part of the system, I want to make it possible to easily browse the tickets assigned to the support_groupes & Users. After that I think I will start tryning to get the ingame part working. I had quite some issues at the start of gsoc getting the server up and running and I’m afraid that it will take some more time to get it all completely fixed.

Now, as promised some screenshots of the ticket system in action ๐Ÿ˜€

So let’s start our story just after installing the website, now you can login with the admin/admin account, change the pass and add some support groups, like in the following image:
Screenshot from 2013-07-23 03:50:11

Now next your team will create an account, by using the already seen account creation page, which I simply add, just because I can.
Screenshot from 2013-07-23 03:45:22

The next step will be granting some of them moderator/admin privileges:
Screenshot from 2013-07-23 03:48:46

and adding them to the fresh created support groups:
Screenshot from 2013-07-23 03:49:54

now, let’s sat user nooby created a ticket regarding a bug he found, this is a freshly made ticket, which isn’t assigned yet, so it will show up in the to-do list of everybody:
Screenshot from 2013-07-23 03:53:19

We can take a look at his ticket and reply on it.
Screenshot from 2013-07-23 03:54:39

Because this ticket has to be handled by the developers team, I wrote a hidden reply asking their help, changed the status to high and also kept the status on waiting for support, next I forward the ticket to the Developer team.
Screenshot from 2013-07-23 03:56:03

The last step in this story, someone of the developer support group checks his to-do list, sees this ticket, assigns to it and gives the solution, afterwards he closes the ticket.
Screenshot from 2013-07-23 04:11:06

That’s kinda it. Sorry for the long report, but I think by using these images, you guys might get a better picture of the current state.

kind regards,

-Quitta

[WEEK 4] STATUS REPORT

This week I worked on transforming my prototype tickets to a more complex version. Botanic helped me to get the basic picture of how a ticket should look like, and therefor I added the admin functions to change the status, for example after replying changing it to ‘waiting for user response’, I also added an additional column for priorities in the ticket DB, that way there can be some kind of distinction between levels of priorities. Not only the ticket replies itself are shown while viewing a ticket but also some basic information like: when was the ticket last updated etc.

In this week I also did some major refactoring, I have removed the global variables that were used to construct objects and make the db connection and encapsulated it all into the DBLayer class.

An item that wasn’t on my to do list and wasn’t in my proposal, though we implemented it anyway, was a ticket_logging system. Admins can easily browse the entire history of a ticket and watch who created it (an admin or user), watch who viewed it and at what time, they can see who changed the status or priority of the ticket and so on. This might be very useful for debugging purposes. I have reworked the database scheme for implementing this, I will update it later ๐Ÿ™‚

I started working on the queue’s but it was a lot more complex than expected, I think I have to redo most of the work of it.

Though instead I started working on creating support groups, at this moment, an admin can create multiple support groups like for instance Developers, CSRs, Webteam and so on, .. and they can add other people to those groups. Atm there isn’t much more functionality for that, though we are planning to make it possible to forward tickets to those groups instead of forwarding it to single people or making a static distinction between groups.

If I look back in my repo, there’s a lot more of small updates that refer to not-so-important-to-mention stuff, though you can always check it out yourself @ https://bitbucket.org/DJanssens/quitta-ryzomcore/commits/all

A small screenshot for making this post more fun to read! ๐Ÿ˜€
Screenshot from 2013-07-11 21:02:19

In my previous post I aimed for:
– Read ticket, reply on ticket, show ticketlist based on queues
– Focus also on the different roles: developer, moderator etc
– refine create ticket with add tags etc..
– if time permits, already take a look at the tags.

=> The ticket part is mostly done, though still some improvements are needed, queues need to be reconsidered and stuff like file uploading has to be added, though I guess I’ll keep it for later. Those roles, we decided to make the support groups, which is more work, but in the long end it will be more rewarding and more useful!
I crafted the ticket-log system, therefor didn’t had time to look at other fancy things like tags etc.

My aim for next week:
– I’m a bit uncertain about how long it will take to get the queues done, though that’s definitely something for this week. Also I have to refine the support groups system, the remove functions (remove person X from group) have to be implemented, also some distinction between Moderator and Admin and their permissions have to be refactored. I’m not sure yet about the other goals for this week, probably taking a look at the tags, though things can change depending on other cool ideas that Botanic or I could come up with.

My server still runs my demo-app at http://hexon.neejberhood.be/~daan/ryzom_ams/www/html/index.php id: admin/pass: admin or create one yourself!
It’s not the latest version, though it can give some basic overview of our progress

That’s it for this week!

Daan out!