Monday, September 22, 2008

Gathering Requirements

As always the first and most important step in any product development is to gather all requirements. This of course is a perfect way to do software, but I'm not going to do that. I will try to be more extreme or agile on this project. Maybe too extreme. I will use this project to gather requirements. And will try to produce a working prototype, which actually will be in use. Yes I no, prototype can not be used in production as final product. Blame me kill me or do whatever you want, but I will do that in this way. I count on my experience and it's much better to have an imperfect working application instead of perfect documentation, which does not work. It will be also a research project and I hope, experience gathered from this task will be reused for future project related with SVG.

Basic requirements

Basic workflow, use cases and some requirements and hopes in one place. If everything will go as is intended requirements will be reviewed updated as time will go.

  • Graphic designer has produced label in a Vector Graphic Designer application such as Corel Draw, Adobe Illustrator, Inkscape or any other which does it or is able to export to SVG format.
  • Exported document will be used as template to produce actual labels for printing. Labels will be produces by merging cleaned label template with product's data from database.
  • Label's design exported to SVG is not very useful, it can not be used as template without manual editing. So manual work have to be done in order to make it useful for automatic label generation. Just because SVG file format is an XML data file, it's not too difficult to any Java programmer, who has fall in love or hate with XML file.
  • Cleaned label template have to be merged with real product's data. The actual products data will be retrieved from product's database where every product has all technical specification data. Product database is already written and is in use. So one thing what has left to do is to merge Data with Product Label template and output to the final label which will be shown on the screen for preview and print.
  • In order to merge template and data into one output label which will be printed out and used in the shop I have to chose some technology how to use it. Currently I see a few possibilities: XSLT, FreeMarker or Apache Velocity. Decisions should be made based on little research. I have experience on all of these technologies and that will be a fun to see which one and why will take lead.
  • Because I already have Java swing application, this is a desktop application written on java, I have to add swing user interface for SVG preview and SVG print functionality.
  • For SVG part I evaluating and probably will use Apache Batik project.
  • Also will try to use JUnit v4 TestNG for testing, Apache Ant as a build tool and maybe Hudson as a CI tool.
  • Hmm just forgot to mention SVN for versioning control and Trac???? Not sure about track. It's good bud it's a pain in a but to setup it. Would like to have something similar or event better what runs on Tomcat or even better on Glassfish.
That's all for beginning.

Not bad for beginning. Today is enough I'm going to go to celebrate my birthday, very, very quietly.

Nice job done.

No comments: