We are working on a very interesting custom application project for a partner of ours to help him and his customers keep track of their projects.
Text Parsing for Data Conversion
We ran into a problem that initially we solved using very complicated special character functions. We wanted to be able to take a text string in a field and parse out that text into specific lists of Project, Tasks, and Steps without affecting the original idea description and being able to pick and choose what text would be used and not used. Initially we solved it by putting a &* at the front of text strings and * or + at the end of text strings to cause the parse of the text to be done a specific way. This worked great for the programmer but we knew it was not going to work for the regular using.
Make it Easier for the User
One of the things we wanted to do is make the parsing function very easy for the user and that in turn makes it more complicated for the programmer.
The other complication was getting what we wanted translated via internet chat sessions to our programmer. This part is not too difficult because our Programmer is very knowledgeable and is always willing to listen to our ideas and has the ability to translate them into workable code so we can test the new ideas and get back to him with our feedback so he can tweak the functionality for the final solution.
The main issue was that original text was typically going to be written by a non-technical person and the use of the parsed text would typically be used by a technical person. We decided to put together a ‘Drag and Drop‘ function to solve this functionality.
The Drag and Drop Solution for Text Parsing (Techie Stuff)
The application is written in .NET programming language using a SQLServer supporting database. Putting this Drag and Drop functionality was going to be quite complicated as it was going to include five languages and the database to get it done: so our application uses Linq (1st Language) to call the row text from the database. Then we use Regex functions from C# (2nd language) to isolate the sentences that will become potential entities. Now comes the fun.
We produce Dragable container panels using Jquery and Javascripts (3rd and 4th Language (if we want to distinguish the row we can use ugly JavaScripts with the gentle and beauty of Jquery Scripts)). Then we use Json objects (5th Language) to select the dragable objects to create the data arrays and send them on the specific Web Methods. Finally the web methods translate those data arrays to Lists in Linq objects that can be handled by our C# code. Our C# code sends back to the user, the results. If the user concurs and accepts the results, the results submitted to our database using again Linq to SQL scripts.
The Project Management Application still in Progress
We are still working on the completion of the client application so we cannot provide any more details about the actual application function but the main point to this article is that having a good idea is just the start, you must find a way to communicate not only how you want it to work but also why it is important and what are the benefits to the user so that the programmer can clearly understand what and why the functionality needs to work a specific way. If that is done properly a good programmer should be able to provide the right solution that although programmatically might be complicated it will still be easy for the user to make use of it.
Come back and we will show you how this all works in a subsequent blog entry.