18 Oct 2011

Week 12

Approximately 15 hours this week.

Put main effort in documentations this week. Had a discussion with Jeff about the details of the technical documentation and continued working on it. About 85% of the documentation is done. I also took some screen shots of the client user interface and give them to Allen to do the User Manual.

In terms of coding I did much testing and debugging and removed several bugs. Also added a new simple algorithm to calculate the accomplishment value based on the scores of the user. I think the current release of the program is ready for the tradeshow now.

Powerpoint slides were also created and submitted.

9 Oct 2011

Week 11

Approximately 15 hours this week.

Code is near finished. Main job done this week was to

  1. implement result data structure and combine it to the question class, so the system is able to record the result of a test / exam
  2. re-implemented the SLOT and SIGNAL system of the question class, so the UI automatically switches between Quick test interface and Exam interface (slightly difference with different features supports)
  3. saving of test result as a text file and store it to the current directory.

In addition, I also got the poster printed, and half of the technical documentation done. Includes a page for introducing the changes we’ve made since the release of preliminary documentation.

2 Oct 2011

Week 10

Spent over 25 hours this week (including recess week)

Code part:

Basically fixing problems due to the newly added class in week 8. Implemented a new algorithm to select questions from different categories. The rule works as follows:

Minimum question number for a quick test is 30 (too small number leads to poor effect of exercise). Maximum number set to 200 (to prevent from exceeding the total number of questions in database). For each selected category, select one question of this category and put it in the sub list. Repeat this step until we fill up the sub list with the specified list size. If we run out of questions of a single category during allocation, then add one more question from the next category. If necessary shrink the total size of the list.

I also spent some time in implementing a method to traverse a question list. It turned out to be non-trivial as users may go to the next or previous question any time.

Much time was spent on implementing these algorithms and testing to make sure they work fine.

Added a test result form for simulation exam, which is rather simple.

Another main feature implemented is the saving of quick test by saving the current state of the user. User can load his last saved test and continue the test anytime.

 

Documentation part:

Working on the UML model, and continue the technical documentation.

25 Sept 2011

Week 9

Spent approximately 10 hours this week.

Work done this week involves a few new features, but mostly fixing existing bugs.

  1. Fixed the bug of Current pointer pointing to the user logged in, so that it saves user data when the user logs out.
  2. Fixed the bug of registration, in accordance to the newly added attributes in User class. Basically new data to save and read from database.
  3. Added a feature of checking existing email address, so that one email address only matches one user profile.
  4. Adding a feature in main menu where user can click to modify personal profile. Data can be modified include username, password, address, age, license currently hold. Password must be verified before change is accepted.
  5. Modified the UI of main menu so it displays more info of the current user.

In addition to codes, I also started working on the technical manual as many has been changed since last session. Basically the architecture is completely new so UML diagrams would have to be re-drawn.

17 Sept 2011

Week 8

Spent approximately 8 hours this week.

No new UI files added. Greatly improved the the whole Quickquestion class.

  • added a sub list within the Quickquestion class.
  • modified the Option class so it can store option values.
  • added an instance of Option in the Quickquestion class
  • added a function to initialize the sub list with options specified in the Option class
  • re-designed the Questionlist class so it supports traversing throughout the list.

11 Sept 2011

Week 7

Spent approximately 7 hours this week.

Added a new UI file, basically for selecting categories of questions when doing quick tests. And it looks like this.

option

Added corresponding class for this UI.

Added a new class for doing tests. It’s going to be used for both quick tests and simulation tests.

the UI looks like this.

questionui

Managed to load questions from two global question lists into a sample question displayer. Not yet able to save questions and select question ranges.

28 Aug 2011

Week 5

Spent approximately 4 hours this week.

The work I did this week is basically writing codes as well as learning QT.

In terms of QT I created some basic GUIs (.ui files) which will be linked to the relevant classes later.

In terms of code it self what I spent most of the time refining existing codes.

  • I tried to increase the confidentiality of user profiles by storing them in  binary mode but it didn’t work so well, so it’s back to normal TXT files again. But all those private files will be kept secretly.
  • I set up some restrictions on the selections of passwords. Basically it’s lenght must be greater than 6 and it must be a combination of digits and characters.
  • I also refined some codes in Registration to improve the efficiency and fix some known bugs.

21 Aug 2011

Week 4

Spent approximately 5 hours this week.

I let Allen do some research on QT and I did much work in coding. For now I’ve quite a few protoypes built and ready, and here’s a screenshot.

XJ0G)[{5NQNYAKXWR_VJWWH

In meeting we talked about some of the QHeaders to see, and I spent some time reading the docs. Soon I’ll start building them.

)]7@[N0F9$R@DO]W6J0@C07

)2~I~IVIONT}3TN_8SJX30M

14 Aug 2011

Week 3

Spent approximately 5 hours in CSCI321 this week

What I did this week was basically trying to figure out how to set up QT environment with Netbeans and that took huge amount of time. Fortunately, Jeff found a way which makes us finish the struggling with IDE stuff…

In terms of coding part it’s going slowly but everything’s on track. We had a look at our preliminary technical manual in the meeting so I started building the Client, beginning with the Registration part. The class involves data transfer over network, which is to be done using QT, will be built later. And other features will also be built gradually.

7 Aug 2011

Week2

Spent approximately 3 hours on CSCI321 this week.

Did some research in SVN. As only Jeff did CSCI222 which covers the SVN part, I had to take some time reading the subversion documentations (https://sites.google.com/site/csci321dtp/links) to see how it works and to understand “revision” and “version”.

I also installed the QT SDK and made it work properly with Visual Studio 2010. After that I started writing some simple cpp files (basically for testing the svn) and tried uploading and downloading unitl i’m assured that everything’s working fine.

27 July 2011

Meeting 1 & Job done in Week 1

 

In the first week we came up with a solution to share and cooperate the codes, which is, to employ TortoiseSVN ---- a cross platform Subversion client.

In the meeting what we did was to reigister everyone’s accounts, and received a brief introduction of the SVN (mostly its functionalities).

The address of the repository is https://subversion.assembla.com/svn/csci321dtp/

I set up my account with the username “yzyfish”. Also I created a local folder which syncs with the online repository.

26 May 2011

Work done in week 11

Major work accomplished is the finalization of our project preliminary documentations.
I participated both documentations.
The documents have already been posted on our website. They can be accessed by clicking the "Documentation" link in the navigation bar.

Week 12 Group Meeting

Jobs done in Week 11
One major task accomplished in week 11 is the releasing of our Preliminary Documentations, including:
Allocated web space (ZIM) has been directed to our project web stie.
User Manual (Done by Zhiyun YU (Drake) & Runlai Huang (Henry)), 14pages
Technical Manual (Done by Jeff, Drake and Allen), 44 pages
The user manual covers the full (designed) functionalities and details of the Client model, from registering to retrieving reports.
The technical manual covers more in details of the design, implementations, flow control, UML diagrams, etc. Basically the idea of realizing of Clients and Servers are all there.
Job Allocations
There're no futher major tasks to be done in this session, so the tasks for following weeks would be to review the current preliminary documents.
There're sure much to be revised and refined in our current documents. And we need to be fully familiarized with those concepts, to better doing the coding in next session.
In addition, our web page needs to be updated, to have a better look, with a clear and easy navigation.
Timeline
Timeline for this week is:
To finalize website by the end of week 13.
And in addition, the last day for exam of our group is 21st June. We will continue our project during the session break, and the first meeting in the break is expected to be held by the end of June.

18 May 2011

Week 11 Group Meeting

Conclusion of week 10
As we started working on the documentations, at the beginning of this meeting I checked the jobs done by our group members, and it was not satisfying. I believe it was due to the lack of experiences. The best we have done so far is the User Manual, as it includes less stuff than the technical manual. The main contents are finished, only additional feature like Appendix is to be added on.
Job Allocations
And about the technial part, we decided to do it all over again. We discussed about the previous works listed on e-learning, and we think they were good examples. So we decide to divide our technical documentation into eight parts:
SQL/DATABASE
UI
UML Diagram
Flow Control
Code layout
Libraries
Basic Class Description
Test Plans
So the job allocations for this week is that:
Henry takes care of the User Manual, which is almost to be done.
The other two and I will take the Technical Documentation.
Jeff takes the SQL/DATABASE, UI, Flow Control parts.
Allen and I take the rest parts.
Timeline
As the documentations are due this week, all works are to be submitted to me by Friday.
Final revisions will be made and discussed before it is formally submitted.

Work done in week 10

In week 10 the main work done is the finalization of our project proposal. Basically it will be a Client-Server model. Clients and Server send and receive data to generate reports and updates.
In additional, we started the documentation work but it was progressing slowly. I took the Client part in the technical documentation, but it was later to be found that it's more in a style of a User Manual. So I gave Henry the structure of what I wrote as a reference for him to finalize the User Manual, and technical documentation jobs are going to be started all over again.

11 May 2011

Week 10 Group Meeting

In the group meeting of week 10 we discussed the details of our whole project. As the preliminary diary is due next week, we need to have all things and details settled down.
Also, the UML diagrams have also been postponed due to the heavy work in designs.
Job allocation for this week is as follows:
Project proposal is to be finalized by this Friday (12/05/11)
After that we need to get started on the User Manual and the Technical Documentaion, each part is taken by 2 people.
The User Manual aims to tell the users what they need to operate the software, and how to use it, while the Technical Documentation aims to give specific details of every aspects of this software.
We hope to release an alpha version of the documentations by next Tuesday.

22 Apr 2011

Week 7 Group Diary

****This week's meeting was held on Thursday, 21/04/11****
pre-meeting
What we have done is:
1. Profile part functions
2. Question input/output/generation part functions
3. Question structure defined
What's on progress is :
1. Henry is improving the Question part function to make the function compatiable with the question structure.
2. Allen is converting questions to the defined structure.
What we'll discuss in the meeting:
1. to assign tasks
2. SQL/database
3. image processing with C++
4. a brief discussion about QT and GUI design
In additional, codes are shared using a Dropbox account which makes us easier to share codes.
Post-meeting
A brief report of current progress:
1. Questions
- We're now only concerned about plain text multiple choice questions.
- Question structure has been defined and question input/output/generation function has been built by Henry. However the function needs to be revised and further features should be added to it.
- Question structure conversion has been done by Allen.
2. Profiles
- I've written all the codes for Profile part. However, due to the size of the codes and quantity of the source code files, there're still some errors to be fixed before it can run properly.
Tasks for this week:
1. Henry will finalize the Queston function, and thest the function with the existing question samples.
2. I'll start building the Analysis function which is responsible for analyzing user data. As this function requires recording and calculation on user data and questions themselves, modification will probably be required for both Question and Profile part codes.
3. I let Jeff have a check on our current written code as well as implement the question database with SQL.
4. Allen and I will work on the first version of our UML digram, which is to be released to public.
Current issue:
The main problem now is that we just write separate code, and we need to find a way to manage each part of the code effectively in the whole project. Also we'll soon face the problems of building GUI and constructing a MSI package. So we need to do some research on how to get our code work like a real software.
Our next outcome:
We'll get our first version of UML digram released by the end of next week. This digram provides an overview of what features you can expect to see in our project. These features will come gradually in our releases of Demo. The first release will be out by the end of this session.

5 Apr 2011

Week 6 Meeting

******Recording not available this week******
To tell frankly we've done very little on coding. The reasons are basically what I said in the previous post. So this week I found some reference books which I think are very useful. I gave those books to other guys and I think we need to change the way we do coding, that is,
We can code slowly, but we need to code with a clear idea. File management is critical when building a large project, especially the project is to be done by many people. I don't want to take half an hour to look for a source file for modification when our first version is out.
So tasks for this week (and the next week) is simple: just keep on the coding. To put it in more detail, Jeff's gonna construct database for user profiles and multiple-choice questions. Henry, Allen and I will continue coding on multipe-choice questions part and Henry will revise and refine the preliminary documentation as more functions are built.
Other things discussed includes finding a place for share of code (possibly Google Code), and resources (reference books, documents from RTA).
The last thing is that Personal Diary is due this week, so every member should have 3-4 posts on their blogs.

Jobs done in week 5.

******The recording of meeting in week 5 will be uploaded to the project website.******
In previous weeks we've discussed about the concepts, ideas and functions to be covered in our project. So I think it's time to actually start coding jobs now.
The assignments for this week is simple. Jeff takes care of the DATABASE part, Henry takes the DOCUMENTATION part, Allen collects and organize MULTIPLE CHOICE QUESTIONS and I take the real coding part.
And now I'm going to talk about the problems & difficulties I met...
1. Different IDEs & Project building
Different IDEs are used in our group, thus a project file in one IDE isn't compatible with another.
That costs extra time and effort to rebuild projects.
And in terms of project building, it's absolutely not like writing a CPP file in assignments of other subjects. There are many, and going to be hundreds of (or even thousands of) resource files and source files. We need to get things organized, every function into its own source file and decide what files are to be shared by other files, otherwise we just get ourselves messed up. This job is not concerned about the skills of programming, but it's very tricky.
2. The use of IDEs & advanced C++ techniques
We four people don't have experiencing in programming in IDE before, so no matter it's Visual Studio or Netbeans and the later to be used QT, we don't know how to operate it efficiently and it takes time for us to familarize ourselves with these tools. So it might be useful to slow down the progress on coding and to take more time in reading and searching references.
It's the same situation with C++. We need to take time to learn how to use new header files.

28 Mar 2011

Group meeting week 4

This is the first formal meeting for our group.
The main topics we discussed in our group are:
1. Assessments of the projects
2. The design and construction of our website & individual blogs
3. The functionalities we need to cover in our program.
There're three assessments in autumn session, which are personal diaries (blogs), preliminary project documents and project website.
Personal diaries are due in week 6 and hence should be the priority of every group member. Every one should set up his own blog as soon as possible and tell me the address of the blog, which will be embedded in our group website. The contents of the blogs should be updated at least once a week and are supposed to show the weekly individual activity.
The website will be built using Google Site. It will be a simple site which covers all the basic and necessary information of our project.
The functions were talked in several parts.
In terms of general concepts, we hope to build a software that helps people to learn how to drive, to achieve all basic theory knowledge as soon as possible. But we don't want to write a collection of multiple-choice questions, which is boring. So we hope to add some interactive tests or questions which tests users' knowledge by assessing how users are going to interact with real events that could occur in real life. The way they react to incidents determines how well they behaved.
So this would require extra knowledge on 3D modelling, Graphical Interface design and Database implementation.
Although we don't plan to build a collection of questions, road rules are still the core of our project. So we need someone to take care of the traffic regulations in NSW.
After the discussion with our supervisor, we found that additional functions can be added, such as analysis of most frequent mistakes made by every user. The administrator would have extra privilege to access special features like altering questions and print analysis report.
So it came up to a decision that...
1. The whole project will basically written in C++
2. The graphical interface will be built using QT, and the choice of IDE is up to each group member
3. Jeff will take care of the Database part, and
4. Allen will take care of the traffic regulations part, and
5. Henry and I are responsible for designing the fuctionalities in detail, and the website.
6. The group meeting time is 11:30 am every Tuesday.

CSCI321 Group Meeting Week 3

We formed a group at the end of week 3 and that's also when we decided to do the driving theory project. The members are Jeff, Henry, Allen and I (Drake).
Before deciding to do this project we met other supervisors of different projects, and the most thing we heard is, "it' very hard" or "it's not suitable for you guys". And that's when we realized that no project is easy. We need to be deticated to whatever project wo choose. I'm glad that we finally found this projects that suits us, and I hope we could do this well and properly.