HOW I CAN HELP WITH GNU Gluco Control ===================================== As I said before... this is open source project, which means you can help anywhere you want/can. There are several chapters please read at least those that concern you. A.) Testing software and give new ideas or propose changes (intended for ALL) B.) Adding support for different diabetes hardware (Anybody who wishes to have their hardware supported) C.) Translation (if you want to help with translation to your native language) D.) Development ---- A.) Testing software and give new ideas or propose changes (intended for ALL) ============================================================================== There are several ways you can help. The first and major way is to test software. Try to use it and find anything that doesn't work. Version 0.3 will be started from the command-line and all actions will also be displayed in the console. If you see an error text, exception or e.g. many cryptic lines of classes with numbers, this means something went wrong. The error is displayed on your screen, but it is also logged to a file (in \data\log). There you will find one or more files for each day. If an error happened today, there will be a file named 'GGC.log'. You need to open it and go to end and try to find the previously displayed errors. Zip this file and store it. And do the following (choose option A or B): a.) Visit the bug reporting site for our project and enter the bug by yourself. Please attach the zipped log. The site is (data should be entered in English): http://sourceforge.net/tracker/?group_id=49749&atid=457319 You don't need to be member at sourceforge to add this information, if you are not please, write your email address somewhere in the error report. Describe exactly what you were doing when the exception occurred and how the problem affected your application. Also please let us know the configuration of your computer (for example: Celereon 2000 with 2 Gb Ram, running Ubuntu Linux, kernel 2.6.2.34, with java 1.8_12) b.) Send us an email (ggc@atech-software.com), with all the data described in A). --- If everything works OK on your system, we still ask you to send us logs. Every month or so, please zip all log files (you can remove them from the log directory) and send them to ggc@atech-software.com. We will use some tool to look through all files and see if there was some error which has gone undiscovered by you and will try to fix it. --- So you have been using the software for some time, some things work fine, other not so well. If you find parts of GGC, which your think could work better, please let us know. If you find that some functionality is missing, again, let us know. You can use either email, or you can use the following form (data should be entered in English): http://sourceforge.net/tracker/?group_id=49749&atid=457322 --- We will try to fix problems as soon as possible, but since there are only two of us (three, but only two active) it might take some time... Major bugs will be fixed first, then the minor ones... New functionality proposals have the lowest priority (and planned functionality has priority). Maybe some new developers will now join us and help us with further development of this application. B.) Adding support for different diabetes hardware (Anybody who wishes to have their hardware supported) ======================================================================================================== Please first take a look at file 'Diabetes_Hardware.txt'. All entries there are planned hardware support. This doesn't mean we don't need help. We will need at least some help with testing. If your device is not on list, or doesn't have developer name set, then it means there are no immidiate plans to implement it. For adding support we need protocol (language) that device speaks and computer understands. In best case scenario, we would contact device company and get this data from them, but in most cases they are not really cooperating, so we need to do it with trial and error approach. In this case you need to post a message on Forum board on sourceforge.net, called Hardware/Device support http://sourceforge.net/forum/forum.php?forum_id=813903, that you are willing to help us... What we will need from you is little time. You need to be able to install software on your computer... What you need to do/have: 1.) Install original software for device 2.) You need cable/interface for device 3.) You need to install software Serial Monitor (it's nor freeware, but you can get Trial version that lasts for two weeks. (http://www.hhdsoftware.com/Products/home/serial-monitor.html). You can use any other software, which displays what is sent to device and what is returned from device... Serial Monitor will monitor communication between your device and original software. We need to know which commands are sent and what are replies. In most cases this will be enough for adding some support. If communication is encrypted there is no way for adding support. So you have installed all software needed and next you need to do is, start Serial Monitor and then attach your device. Next step is to start original software and issue command for downloading data. After you are finished close both programs and save logs in Serial Monitor. Send us the logs (in forum) or directly. First part is finished... Now we will do some programming to add support for this device. After some time (it might take months), you will get a test software, which you will need to run and then compare data that software will export with data in your device. If everything is OK, support for your device will be finalized in week or two, if not there will be additional testing going on. C.) Translation (if you want to help with translation to your native language) ================================================================================= If you like our software and want it to be available in your own language you can join our translation team. First you need to do is post message on Forum Translation with name (something like that) (http://sourceforge.net/forum/forum.php?forum_id=813898), 'Translation into Russian'. Please first go through all messages to find if someone is already trying to translate application. If yes, join his/hers team, and together you will be finsihed faster... On GGC Site there is link to Translation Tool. This is our own tool created especially to make translation work easier. Link is here: http://ggc.sourceforge.net/index.php?show=projects There is more instruction there. Like you will read in instructiuons, you just need to downlad tool, GGC Base pack (definition for all modules) and GGC Language Pack (this is what you translate). If it happens that language pack is to old (they have version numbers), please contact us, and we can create new one. Usually new language pack is released, just before next release (or at least after release). When you are finished with trasnlation you will zip your work (\files\translation) and we will put files in SVN and also add them to application. Your changes will be visible in next release of application (adding translations is last step that is done, before creating test version of new rellease (for testers to test). D.) Development ================= In start of 2014 we started transitioning our projects to Maven (Apache Maven 3.x) framework... If you don't know what Maven is, then you will have to look it up and get acquinted with it, since it's now required tool. In short... it is dependency tool. It gets all dependencies required for project, and it's also build and deployment tool all rolled in one. What does this mean for you? This means you can go download any java enabled editor (Eclipse, IntelliJ, NetBeans, etc.), download our projects (see further in this section) and start working. All of editors have some support for Maven (you might need to install Maven Plugin though), so after you have everything you can start. Maven uses pom.xml file, in which it is definied info about project (groupId, artifactId and all dependencies, build tools, settings, etc). On import of project into your editor, editor will recognize this file, and create correct configuration files for itself (in eclipse .project and .classpath files will be generated). THIS FILES MUST NOT BE CHECKED IN INTO SVN. Only configuration files checked into SVN ate those from Maven (pom.xml). Now how to start working in this new Maven enabled GGC Environment: 1.) Installing software: - install Oracle/Sun JDK (we still use 1.5 java, but you can install any version, just be careful not to use any features that JDK 1.5 doesn't recognize) - install your favorite Java Editor (Eclipse, IntelliJ, NetBeans, ...). Each of this tools has it's own way of handling maven artifacts/projects. If you really wish to develop GGC I would advise you to install IntelliJ (Free version) since it doesn't require to always manually rebuild whole project tree (see 3.) when testing in editor. - install plugin for Maven (use 3.x version), if it's not installed already - install SVN plugin, if it's not installed already - install Maven 3.0.x (apache-maven) 2.) From SVN download projects from two repositories (how to do that depends on your editor, but mostly you need to set repository root and then select from where to download, and what to download)... a.) atech-tools repository Repository Root: http://svn.code.sf.net/p/atech-tools/code/trunk/java Projects to download: atech-tools Commandline: svn checkout http://svn.code.sf.net/p/atech-tools/code/trunk/java atech-tools b.) ggc repository Repository Root: http://svn.code.sf.net/p/ggc/code/trunk Projects to download: ggc Commandline: svn co http://svn.code.sf.net/p/ggc/code/trunk ggc This will download whole trunk repository... This means several projects, some of them are not needed. You must delete following projects: - Old projects/deprecated: ggc, ggc-mobile, ggc-ppc, ggc-test - Future projects (work in progress): ggc-doctor, ggc-doctor_server - Subprojects not needed: ggc-usb, web_page, ggc-language_tool (this is needed only if you plan to do translation for another language) 3.) Projects hierarchy... while maven works great with dependendencies, it can sometimes also be a pain in the a**... For example if you are developing in ggc-pump and change something in atech-tools, you will (probably) need to build and deploy, all projects on which ggc-pump is dependent on (atech-tools, ggc-core, ggc-plugin-base and of course ggc-pump). So hierarchy is as follows: atech-tools | ggc-master-pom | ggc-core | |- ggc-desktop-app | |- ggc-plugin-base | |- ggc-meter | |- ggc-pump | |- ggc-nutri | |- ggc-cgms Now this REQUIRED rebuild depends on editor you use (and it's integration with maven)... In eclipse for example you need to rebuild all underlaying projects if you wish to test functionality you changed, but in Intellij IDEA (there is Free Community version which has all features that you need), all open projects are keept in sync so if you want to run and see new changes you don't need to rebuild all affected projects. 4.) Now you are almost ready to go. You will need to build all projects before begining, this will retrieve all dependencies and create local versions of all modules. Easiest way to do this is to install Maven tools as standalone application and then build: 4a) In atech-tools: mvn clean install 4b) In ggc root: mvn clean install (this will build all modules we have, so that you don't need to this manually in editor). 5.) Running application from your editor: If you wish to run application from your editor (which is what you want), you need to prepare downloaded version for this. GGC Application is always run from ggc-desktop... a) you need to run file ggc/GGC.java b) There is data directory, which we need to prepare: This is what we need to have there data |-- db (unpack latest db image from ggc-support/data/db) |-- log (create directory) |-- nutrition (unpack file nutrition-SR-18.zip (from ggc-support/data)) |-- skinlf_themes (copy all files from ggc-support/data/skinlf_themes) |-- lang (copy from ggc-support/data/lang) Copy ggc-desktop/data/GGC_Config.properties_default to ggc-desktop/data/GGC_Config.properties Now you need to set working directory to target. 6.) Setting for Editor: - Use JDK 1.5 and set it as Java development version (if you can) - Set Java Compile Compatibility to 1.5 (this is very important, especially if you don't use JDK 1.5) - Codepage for files is UTF-8. Don't write your own characters in files, always use english letters. NOTE: Officially java 1.5 is not supported by Sun/Oracle anymore. Oracle has options to allow you to get older version of java. In worst case contact us at ggc@atech-software.com, and we will try to supply you with it. Sometimes setting target to 1.5 is not enough, but in most cases you can use whatever jdk you have, with compatibility setting. If you use Eclipse, please set Formatter for code and enable formatting on Save... Open Windows->Preferences. Go to group Java->Code style->Formatter. Use Import option and add xml file stored under ggc-support/eclipse. If you use IntelliJ you can install Eclipse Formatter and use the same configuration file. 7.) [Optional] If you wish to use any other database you need to have basic knowledge of JDBC A) Install database software. I advise PostgreSQL 8/9 (drivers are already added in project) or MySQL B) If you used any other database, add drivers to your editor (into project ggc-desktop) C) Create database, database user and password D) Change GGC_Config.properties, there is one sample file with several samples for different databases. Change SELECTED_DB to correct number. And change dummy parameters with yours: database name, user and password E) Now you will need to initialize this db: a) Start class ggc.core.db.tool.InitDb 8.) Now the real work begins... Good luck...