A Senior capstone project

Final Entry!

My project presentation was two days ago and it was a success because of the completion of my system and most of the project requirements. It was during the week of spring break (the week before the last journal entry) that my system got started, and 5 weeks since then, I have finished the system together with all the requested enhancements from my client. I was able to make this breakthrough thanks to my newly acquired skills and strategies: communication, time-management, decision-making, positive- thinking and the joy of creation. It is thanks to my communication with Dr. Pankratz that helps me better define the scope of the project and the proof of concept, and motivates me to go forward while I was indecisive of which approach to take. Thanks to Dr. McVey and my colleague Ryan McLaughlin who are the experts in C# and event-programming that I was able to solve problems that would have taken me hours googling. And thanks to Dr. Blahnik, who always gave me a to-do list and constantly reminded me of the client side, that I am able to create a user-friendly system that I am very proud of. What I have learned about time-management skill is the ability to prioritizing my daily-acitivities tasks, the hedgehog concept ( the ability to work more efficiently focusing on one task at a time and stop worrying about other things), and the sense of urgency that motivated me to somehow miraculously find and spend an average of 6 hours on the project everyday that led to my catching-up and finishing the project that is more than I had expected. The ability to make a decision, to take responsibilities for my decision, and to accept trials and errors not only helped with my project but also helped me grow as a person. Thanks to Dr. Pankratz and Dr. Blahnik, who has given me encouragements and reminded me of positive-thinking, I have become more open-minded, learned to take risks in making decision, and thus, expanded my opportunities in learning, creating, and succeeding. Last but not least, what I have felt during the last 4 weeks that also greatly contributes to the success of my project is the joy of computer science profession and joy of creation. What I mean by the joy of computer science profession, defined in the Mythical Man-Month by Fred Brooks, is the joy of pure thinking and problem-solving while working with the abstract system. It is this joy that brought me to computer science major in the beginning, which I have forgotten for a while because of my focusing on getting the job done. And the joy of creation is totally new to me that has brought me tremendous happiness. This is the first product that I create in my life, the first valuable thing that will be useful to others, the first thing that I give back as a tribute to St. Norbert College and the Computer Science Department after receiving so much from them. It is a system that I am proud of and I hope it will be useful for a long while.

The things I have left to do for the project are my defense this coming Thursday and my documentation. Thank you for following my journal and my project! This project is much more to me than just coding, a system that collect data and raise reports, or learning C# and VB6; it is the three months of my life, the three months of hard-work and growth through a period of personal turbulence- my last three months of my college experiences. I hope you can gain something from this project, or at least share with me the joy as I am writing these lines. Thanks, again!

 

My deep gratitute to St. Norbert College, the Computer Science Faculties, and my fellow computer science major seniors and juniors who have been growing and facing challenges together with me this past 4 years!!!

 

Something to share!

A couple of days ago, I was working on the FindMatch function; this function allows allows user to type into a combobox, and the matching entry in the combobox will appear. The FindMatch function in VB6 is quite simple because its event-handling keypress method gives the user total output control, whereas in C#, the keyboard will automatically output the pressed character after giving the user control; for example, after I hit '1', I want to auto-complete the combobox's text with the account "10123", I will now receive "110123" or "101231" depending on where the cursor will be after the event-handling function finishes.

-To counter this problem, Dr. Blahnik suggests (approach #1) that we use a textbox (for the user to type) and a separate combobox that will be manipulated to appear right below the textbox for the user to choose the matching account, and then disappear as soon as the user's done choosing. The problem is solved as the keyboard will output in the textbox whereas the event-handling function manages the combobox.

-Second approach, the one that I first implemented, is to use built-in data-binding function, which is supported by MS Visual Studio 2005. This approach is quick, convenient, as the software does everything and there are more and easier ways to manipulate the data. However, Dr. Blahnik (my client) disapproved this approach, giving reasons that I will run into troubles later on.

-Finally, I came up with the last approach that is manual, solves the problem without the unsightfully popping-up combobox (1st approach). The key of this approach is to manually overdrive the keyboard handler by "EventArgs.Handle = true" within the keypressed (or keydown, etc.) function, then send the focus to somewhere else (a label, for example) that send the focus back to the combobox to return the handle to the keyboard, without the keyboard adding the extra character to the last keypress. Problem solved! Please contact me if you want to look at the code for any approach.

Trying to Catch up!

It has been over six weeks since my last journal. During this period,

I have been experiencing different approaches to my project, as shown in "The Project" tab. Although I'm running a little late on schedule (refer to my Gantt Chart), I have gained much knowledge on VB6 and C#, and experiences on project management and systems conversion. I now have a solid understanding of the old system and am working more efficiently on my project, so finishing the project requirements seem feasible. Because the project's scope was uncleared, I received the project with the understanding that the requirements could be modified as I learned more about the project. Whether I can finish the project as planned will be decided within the next two weeks. Right now, I am about to finish converting my add/edit_bills form, which is one of the two main forms. The conversion of this form has taken almost 3 weeks because of the significant differences in syntax between the 2 languages. Both Dr. Blahnik (my client) and I do not have much experiences with C#. As we experienced together, we came to an agreement: "D*mn C#!". For example, yesterday I had trouble populating the data into the listview table, and it took us over an hour together to figure out the problem (and another hour for myself). The problem was narrowing down to the firing-the-query part, which I did not think of because the exact query worked when firing in VB6 and Access. It turned out that the wildcard character that C# uses for sql is '#' instead of '*', which is common and which I assumed. The above problem is just among other tiny-but-time-consuming problems that I encountered when working with C#. Although C# have many nice features such as strong type checking, automatic garbage collection, etc. but, through my short experiences with both of them at the same time, I realize that the old VB6 is still more superior in simplicity, straightforwardness, and efficiency. Hence, C# still needs to be further developed in achieving its intended goal of being simple, modern, general-purpose, object-oriented programming language.

My plan of attack for the next two weeks is to convert one for each week (the Setup Form and the Report Form) now that I have become more proficient in the conversion process.

First Obstacle

Yesterday afternoon Dr. Blahnik was just showing me how to open an Access database and load all the info from a record in .NET environment using C#. Unfortunately, we were not able to do that because of some problems related permissions and securities. It took us an hour to figure out the source of problem. Originally, we thought that the problem lied on the security level of the database, but it was the C# solution that had the restriction. This is because if we ran the solution on local C: drive, it was able to access the database, but not when we ran it on G: drive. For now, I will be working in C: drive, and this problem will wait until I finish converting the system.

Today I got the permission to use online converter from Dr. Blahnik. I have used Visual Studio 2005 to convert the program from VB6.0 to VB.NET. Although the program in VB.NET cannot be run because of hundreds of errors, the code is now very easy to read, and the design views of the menus are working fine. I also found a free VB.NET to C# converter online where I can start converting line by line: http://www.developerfusion.com/tools/convert/vb-to-csharp/ This way the conversion process is faster and I can learn C# and VB.NET much faster.

My next step is to start converting each segment of code, then fix the errors and put them all together. Peace!

 

Up and Running

Today the website is posted. It's been very interesting for me in creating my website since it was my first time using Dreamweaver and Illustrator.

I was assigned my project last Wednesday by Dr. Pankratz. My first impression about it was that it is not quite difficult, except the fact that I've never worked with C# and VB6, the two languages I will be working with, and I haven't learned much about database. Dr. Blahnik is my main resource since he has done some worked on the Utility Bill Management System (the old system) before. The first thing that Dr. Blahnik said to me was that "It's not easy; nothing is simple". It was only then that I realized the scope of my project. Right now, my plan for the first three weeks are to complete my website, be familiar with C# and Access, and studying the logic behind the system. One thought occurs to me about how should I focus on the project. Should I focus on the conversion of the system, or the remodel and enhancement of the system. Because if I focus on the latter, I should find tools that help me in the conversion process. Anyway, one and a half week has passed and I haven't figured out o concrete plan yet. Time to work hard!

 
A 2009 Computer Science Capstone Experience by Van Le - St. Norbert College