Completed Registration system -- Posted by Aaron Hui on Friday, March 18 2005
Okay. You can register customer accounts. So far, there isn't a restriction on duplicate email accounts, thus you can create as many accounts as you like, provided at least the account name is unique.

The current restrictions on the registration information is that the password must be between 6-16 characters. I don't think I've restricted the type of characters to restrict in the password which may lead to some exploits that I am unaware of. The same goes for all fields including account name. Thus if there are any characters which may cause problems, I guess I should restrict them. Let me know if you insist of adding character restrictions. The email must have an @ sign somewhere but other than that it can be anywhere and the email name must be at least 5 characters in length. The phone number must be 7 characters in length, and can consist of any characters as well.

So feel free to make some accounts. If you have mysql.exe client, you can connect with user 3194 password 3194 and SELECT * from users; to see the changes.

As of now, login won't launch the app, but will show the information necessary to launch. Just click the link below to go to the registration page.

Also, if anyone is experienced with web design that would like to spruce up the login/registration page with some graphics and a nice layout. Send me some gfx and/or html code. But we can work on asthetics later.

Click here to login

checkin-checkout method -- Posted by Yow-Hann Lee on Saturday, March 5 2005
Hey everyone,

Since CVS is not really working, we have decided upon a new method of integrating our files. A build folder has been set up on the site. In it are subsystem folders. So basically, you upload the file that you corrected in those folders.
If there is currently a file in that folder with the same name, you rename that file by adding a 1 to the end of the file.
i.e.
LogCollection.java-1

And upload your new file into LogCollection.java...The latest version will not have a number associated with it.

Whenever you want to check out your file to make an edit. Rename the current file to
LogCollection.java-checkout
And when you check your file back in...rename the
LogCollection.java-checkout to the next number:
LogCollection.java-2

And upload your latest version on your computer onto the website. And it will be called
LogCollection.java <- this is the latest version

This is what we've come up with from the meeting. Aaron and Sunae, if you have any questions, just ask one of the ppl from the meeting.

Cheers

Integration Tasks -- Posted by Yow-Hann Lee on Thursday, March 3 2005
In the wake of Carter and I spending hours doing integration (this is proving to be really inefficient and time consuming), we have decided to have Charles set up CVS. Everyone will make our edits from there once it is setup.


Integration Testing will follow Use Cases
Basically, for these use cases, modify your codes as
needed and come up with test cases for the following:

Integration Testing will follow Use Cases
Basically, for these use cases, modify your codes as needed and come up with test cases for the following:

CSR/Manager Use Cases
Login - Charles, Aaron (PHP to GUI handoff)
SelectCustomer to Chat - Andy, Carter
Chat with Customer - Charles
Exit Chat with Customer - Charles, Carter
Add Comment to Current Chat - John, Charles, Yow-Hann, Carter
Add Comment to Customer Account - (we currently do not have this feature?? maybe we've taken this off the list??)
Edit Customer Account Information - Sunae
Delete Customer Account - Sunae
View Chat Logs - Yow-Hann, Carter, John
create/Delete CSR Account - Sunae, Aaron
create/delete Manager Account - Sunae, Aaron
view CSR's online - (who's currently doing the code for this??)
monitor Chat - Charles
view/generate report/statistics - Carter, Aaron

Customer use cases
Login - Charles, Aaron (identical use case as CSR/Manager)
Join Chat Queue - Andy
Chat with CSR - Charles
End Chat with CSR - Charles, John
View Own Chat Logs - Yow-Hann, Carter
edit own account information - Sunae (identical use case as CSR/manager one)
fill e-mail form - (We currently are missing this functionality???)
fill comment form on current chat - Carter, Charles, John
register - Aaron, Charles



I tried to assign these tasks evenly based on the
workload projected for each one. And for situations
where names appear more often, I assigned more ppl to
work on that particular task to ease the load. If
there are any problems, don't hesitate to address it.

Cheers

new build .......... -- Posted by Charles Krzysik on Thursday, March 3 2005
Here is (http://www.aaronhui.ca/cs319/files/development/CHAT5_good_commSubSystem.zip) the project as it is now. CommSubSystem looks fine in terms of logic with exceptions of two functions that I listed need to be fixed
(Andy/Sunae) . Otherwise I think it is fine and once Aaron get DBInterface we can start testing......... yeye!
Anyways check the list below............ and take a look at commSubSystem............

I fixed::

added two functions to commSubSystem for gui to:

--- get list of users in CustomerQueue

--- return if a user is still in queue.


--- CustomerQueue.dequeue() //fixed so no exception is thrown when the queue is empty

---CustomerQueue.enqueue() class/function fixed. (pager made global.......... destruction error)

fixed all of:: (made global.......... destruction error)
public Object getUserAccount(String userId, int userClass)throws RemoteException;
public void addUserAccount(UserAccount aUserAccount)throws RemoteException;

public void editUserAccount(String userId, String firstName, String lastName, String phone, String email, String password, int userClass)

--added public Object checkUserQueue(String userID) to customerQueue for chatInvocation..............as gui needs to check if a user is in queue....... if not then get the user's ChatID which chatInvocation will set.

--added a hashMap key, chatID<->value>) to commSubSystem, and also getChatId(String userID) for gui to pass in its userid and get out
the chat number (polling function).

--added a yey! hashMap key, ChatSession<->value) to keep track of ongoing ChatSessions in commSubSystem so that sendMessage can get the chatSession from Chat id...... and get the users from ChatSession
---sendMessage //to get in line with recent fixes............<-fixed

so the following need to be fixed / created in commSubSystem file::



pageAllCSRMgr()
---public void pageAllCSRMgr()throws RemoteException {
// Pre: none
// Post: display message/update queue
Pager pager = new Pager(); //create a new object each time ? //shouldn't. There should be a global one for commSubSystem somethiing like Pager //public managerPager pager..............
won't work. Doesn't access list of managers............nor inform gui.......... needs to be rewritten from scratch. I am not sure how this was supposed to work.


deleteUserAccount........
userInChatID.remove(userId); //remove user from HashMap..........
//........remove from collection
// YET TO BE IMPLEMENTED BY SUNAE


-Charles

new build .......... -- Posted by Charles Krzysik on Thursday, March 3 2005
Here is the project as it is now. CommSubSystem looks fine in terms of logic with exceptions of two functions that I listed need to be fixed
(Andy/Sunae) . Otherwise I think it is fine and once Aaron get DBInterface we can start testing......... yeye!
Anyways check the list below............ and take a look at commSubSystem............

I fixed::

added two functions to commSubSystem for gui to:

--- get list of users in CustomerQueue

--- return if a user is still in queue.

--- CustomerQueue.dequeue() //fixed so no exception is thrown when the queue is empty

---CustomerQueue.enqueue() class/function fixed. (pager made global.......... destruction error)

fixed all of:: (made global.......... destruction error)
public Object getUserAccount(String userId, int userClass)throws RemoteException;
public void addUserAccount(UserAccount aUserAccount)throws RemoteException;

public void editUserAccount(String userId, String firstName, String lastName, String phone, String email, String password, int userClass)

--added public Object checkUserQueue(String userID) to customerQueue for chatInvocation..............as gui needs to check if a user is in queue....... if not then get the user's ChatID which chatInvocation will set.

--added a hashMap key, chatID<->value>) to commSubSystem, and also getChatId(String userID) for gui to pass in its userid and get out
the chat number (polling function).

--added a yey! hashMap key, ChatSession<->value) to keep track of ongoing ChatSessions in commSubSystem so that sendMessage can get the chatSession from Chat id...... and get the users from ChatSession
---sendMessage //to get in line with recent fixes............<-fixed

so the following need to be fixed / created in commSubSystem file::



pageAllCSRMgr()
---public void pageAllCSRMgr()throws RemoteException {
// Pre: none
// Post: display message/update queue
Pager pager = new Pager(); //create a new object each time ? //shouldn't. There should be a global one for commSubSystem somethiing like Pager //public managerPager pager..............
won't work. Doesn't access list of managers............nor inform gui.......... needs to be rewritten from scratch. I am not sure how this was supposed to work.


deleteUserAccount........
userInChatID.remove(userId); //remove user from HashMap..........
//........remove from collection
// YET TO BE IMPLEMENTED BY SUNAE




testing schedule -- Posted by Yow-Hann Lee on Sunday, February 27 2005
Hey everyone,

ok, now that the database issue is decided...we should look ahead...

I think Carter suggested before that we cut down on dedicating unit and integration testing and basically overlap it with our implementation phase. So I guess as the testing leader, I should probably set some deadlines. Please let me know if they are unreasonable...

In terms of testing units such as the commSubsystem, that's pretty tough to do since it's pretty hard to test alone. However, for
logSubystem
userAccountSubsystem
queueSubsystem
DatabaseInterfaceSubsystem

drivers should be written to make sure you can create your respective objects successfully and pass in information and be able to access them successfully with your accessor methods. I realize that a few methods require the interaction with the commSubsystem to retrieve data from the database. However, in your driver, you can just create the correct variables to pass into. Sorry if it sounds like I'm trying to give a lecture on how to do unit testing...i'm sure everyone already knows these things...with this done, we'll be able better isolate bugs...

Ok, so the deadline for coming up with your drivers and testing your own classes is WEDNESDAY MARCH 2 BEFORE the TA meeting. That way, we can go into the meeting telling Trevor that we've got our Server and database units tried and tested successfully. It should sound a lot better than.."yep, it's going awesome...we're hacking away"

As for commSubsystem, we will have to use part of Tuesday's meeting to figure out how we can truly test that.

I know wednesday sounds early...but it seems to fit with our schedule that we gave to Trevor...and it looks like integration part of this project is gonna be more interesting/challenging.

Cheers


--- Sunae Kim wrote:

>
> I agree with Charles.
>
> If Aaron make some functions to insert, delete, and
> update for every tables
> in database proxy, the other mehtods don't need to
> write sql statement. We
> just need to call the method from database proxy to
> handle database.
>
> Sunae.
>

database droxy subsystem -- Posted by Aaron Hui on Saturday, February 26 2005
The database interface subsystem is done and on the website.
http://www.aaronhui.ca/cs319/files/systemDesign/DatabaseProxySubSystem.doc

coding tasks -- Posted by Yow-Hann Lee on Saturday, February 26 2005
Charles - sendMessage, monitorChat
Andy - chatInvocation, pageAllCSRMgr, enterCustomerQueue
John - setChatNumber, getChatNumber, addChatLine, getChatLine, endChat
SUnae - getUserAccount, addUserAccount, editUserAccount, setCustomer, getCustomer, DeleteAccount(USerSubsystem)
Yowhann - logPipe, logInstantiation, viewLog, getCustomerComments, getCSRComents, getDate, getChatDuration, getCSRChatRating, viewCurrChatLog
Aaron - generateReport, setCustomerComment, setCSRComment, setCSRChatRating

MySQL access -- Posted by Aaron Hui on Friday, February 25 2005
You can use the mysql.exe to connect to the database server if you prefer command line interface. The hostname is aaronhui.ca, the username/password is 3194/3194. You can also download MySQL Query Browser and optionally MySQL Administrator and connect to he database with the same info. This will allow you to view the database contents via a GUI. It's not the most intuitive GUI, but it's pretty easy to manage. I myself expect to do most of the database work, but for the testing phase, I think everyone should be able to see how the database is being affected.

http://www.mysql.com -> Click on products and you should find the query browser and administrator programs there.

VNC source code -- Posted by Aaron Hui on Thursday, February 24 2005
http://sourceforge.net/project/showfiles.php?group_id=63887&package_id=60914

Communication Subsystem and agenda for tomorrow's meeting -- Posted by Yow-Hann Lee on Wednesday, February 23 2005
Hi everyone,

There are some design issues that we have to discuss tomorrow that we found to be flawed when coming up with the communications subsystem.

The draft version of the communications subsystem document has been uploaded at:
http://www.aaronhui.ca/cs319/files/systemDesign/commSubsystem.doc

There is a new version of the System Design document to fix some inconsistencies with Subsystem.
http://www.aaronhui.ca/cs319/files/systemDesign/SystemDesign-Final-First-Draft-Revised-02-23.doc

Tomorrow's Agenda:
Meet in 015 11AM (confirm by e-mail)
- going over issues stated on the commSubsystem.doc in bold at the top
- going over design issues...are we being too redundant?
- making sure that everyone is on the same page (after edits throughout our document, it seems like everyone has some variations of the system design that we have in mind)

-- Posted by Aaron Hui on Tuesday, February 22 2005
Charles new proposed schedule is fine.
I've updated the Design Doc and placed it here.
http://www.aaronhui.ca/cs319/files/systemDesign/SystemDesign-Final-First-Draft-Revised-02-22.pdf
http://www.aaronhui.ca/cs319/files/systemDesign/SystemDesign-Final-First-Draft-Revised-02-22.doc

schedule -- Posted by Charles Krzysik on Monday, February 21 2005
Hey Guys;

We have the design and now is the implementation time.:-)
The deadline for integrated/testing/working application and code design doc is March 14th. That includes three stages: Coding (Charles),
Integration/Unit testing (Yow-Hann), System Testing (Andy). That gives a week for each. Frankly we're way behind as of yesterday.
Here is the schedule I propose: (Aaron if you have any objections _whatsoever_ now is the time, *_not after_* the deadline)

Feb 27th Sun afternoon everybody uploads their respective interfaces, code deemed needed by other team members in order to
do further development.

Mar4th Fri afternoon respective modules are uploaded and finished.

Mar5th Sat Yow-Hann takes over and we begin integrating the code/ writing code design doc


Mar9th Wed Andy takes over and we begin testing the system. Application is ready/working and code design doc is finished.


Mar14th handin the code design/revision doc and the code.


Schedule is unbelievable tight. Any slip will cost us the project. So we cannot under any circumstances waste a single day. (That includes you Aaron especially, so tomorrow we WILL discuss your work ethics, and you will present US and the TA on Wednesday how you will avoid the mistakes of yesterday.)

Regards and good luck,

-Charles.



Meet in CICSR 015 at 2pm -- Posted by Aaron Hui on Monday, February 21 2005
You only need to come if you have changes to suggest in the System Design Document.

schedule and uploads -- Posted by Yow-Hann Lee on Tuesday, February 15 2005
hey everyone,

as we've discussed right now in our meeting...Saturday and Sunday are editing days for the System/Program Design document. As for the communication subsystem, it has been uploaded into the systemDesign folder and it's called commSubsystem.doc

Thursday evening is deadline for your respective sections.

Cheers

customer subsystem -- Posted by Yow-Hann Lee on Tuesday, February 15 2005
Hey everyone,

The customer subsystem details is finished and uploaded...in systemDesign folder named (CustomerSubsystem.doc). We need to work on integrating and being consistent with our docs (i.e. I believe in Java, String type is a Capital S...etc)...

Cheers

update on subsystem -- Posted by Carter Lukman on Monday, February 14 2005
Hi Guys

i finished the rough draft of manager subsystem design and also revised the data dictionary. they are all in a single file called managersubsytem in cs319/files/systemDesign folder.

i believed John had also finished the chatlogSubsytem and its in cs319/files folder

Cu guys in tomorrow meeting <12:30 @ cicsr>

Cheers

MySQL 4.1 Uggghhh! -- Posted by Aaron Hui on Friday, February 11 2005
I've successfully upgraded to MySQL 4.1, but unfortunately, the authentification protocol requires PHP 5.0 or higher. So this means I also need to update PHP to version 5. I should have just left it. Now I have to make sure all my PHP scripts are functioning properly. But I guess I should keep my apps up to date

PP Section 3 -- Posted by Aaron Hui on Monday, February 7 2005
Oops. I had it accessed directly off the server, thus the file was locked. Which may be why Charles was unable to access the Project Plan Section 3

I am expecting to meet all you guys at the CICSR labs at 2pm Monday to make final revisions and hand in. I still need to make the Gantt chart of the schedule in MS Project which will be why I'll be in the Lab at that time.

R.E.D Final -- Posted by Carter Lukman on Monday, February 7 2005
Hi Guys

Since everybody has finished making changes, i guess R.E.D-LATEST-DRAFT.doc is the one we are going to hand in.

Cheers


Powered by Coranto