PDA

View Full Version : Begun reef organizer program


kwirky
03-09-2007, 12:18 AM
started from this thread here: http://www.canreef.com/vbulletin/showthread.php?t=30948

I've started coding an aquarium organizer, that'll let you log things such as your livestock, water parameters, etc. An important part of the program will be a "reminder" feature, that will let you know when various things need to be done. For instance, changing carbon, doing water changes, etc etc. User customizable.

begun coding the "tasks/reminders" part of the program, as almost all the other code will rely on it. I'm coding the theoretical "framework" first before I start forming up the user interface. It lets me decide on a user interface based on the information being worked with. Application forms are a pain, and I only want to do it once ;)

Tasks are one time, or repeated on daily, weekly, monthly, or yearly repeats. tasks also will get a comment field where multiple lines can be filled out of the task needs to be descriptive (ie: for somone looking after your tank while away, or for more description for those tasks we won't see again until about 300 days later)

As for how the information's managed, I'm making something kinda "organizer-ish". kinda like outlook, but simpler and meant for aquariums.

it already supports multiple aquariums.

It's with .net and C# because it's quick to make powerful stuff with .net

If anyone else out there programs, wanna help out? C# Express edition is a free download, and help with classes n such would be greatly appreciated.

once I have some executable code that does something interesting, I'll throw it on my dot.com and post a link for feedback from y'all.

figured i'd post a screenshot of me working on it just because i can :D

http://www.kwirky88.com/images/aquarium/07-03-08/screenshot01.gif
took out the picture because it made the thread hard to read

KrazyKuch
03-09-2007, 12:48 AM
Great Idea.....I can program but I use C++

Shrimpy
03-09-2007, 01:28 AM
Good luck kwirky. I can't wait to see what you come up with! :smile:

kwirky
03-09-2007, 01:31 AM
Great Idea.....I can program but I use C++


if you know C++, then C#'s a no-brainer. no header files to mess around with, no prototyping to worry about. you still get the power of scope.

no pointers: some people like that, some don't. But you can do pointer functions (c# calls them delegates). no memory leaks, either, since it has a garbage collector that scans through and cleans up the memory when needed.

plus .net rocks. so much stuff pre-done. .net's done so many things, that it all adds up. all your normal syntax is almost done as though they're classes, in c#. for example, if you make an array, you do the following:

int[] myIntArray = new int[256];

then you can use functions and variables built into the array (methods/properties).
for(int x = 0; x < myIntArray.Length; x++)
{
myIntArray[x] = x;
}
(stops a run-time exception by using a Length property you can read in your array)

I've been using C# and the XNA 3D framework for my 3D animation III and programming for the artist I classes, and think they're both great for loads of applications.

you can download visual C# express edition, which is a full featured C# IDE, from msdn.microsoft.com. http://msdn.microsoft.com/vstudio/express/visualcsharp/

lemme know if u wanna help out :biggrin:

KrazyKuch
03-09-2007, 05:52 AM
Alright I'll give it a shot.....I need you to send me a copy of the prog so far and tell me what you want me to do or add in!!

kwirky
03-09-2007, 05:51 PM
help that can be provided by those that don't nessesarily program:
give links to their favorite online calculators, so we can build a list of the most popular calculators to add first find formulas for various calculations, such as calcium additives, water weight, aquarium glass thickness for construction, etc etc. provide links to other software they like, and also give feedback on what they think would improve that software they've found


THE PROGRAM'S PROTECTED BY THE GNU LICENSE, INCLUDED INSIDE THE RAR. ANY REDISTRIBUTION OF CODE, WHETHER ALTERED OR NOT, MUST FOLLOW AND INCLUDE THE GNU LICENSE.

here's a link to a rar file of the work so far: http://www.kwirky88.com/stuff/aquariumAssistant07-03-09.rar I'm working on the Task and Time classes, so please don't touch them. if you have suggestions for those classes, post 'em on here.

once there's a noticable ammount of work done, I'll submit it to source forge for source management. It will make it a lot easier to collaborate on.

As for program design, here are some of the requirements so far. feel free to suggest changes or add to it if you'd like:

use classes use the get and set keyword functions for your public variables. Look at Time.cs for a short example of how it works. Great feature of c# that lets you encapsulate your variables, yet still allow programs to make controlled changes.
encapsulate (make private/protected) functions and variables that are not nessesary for other functions to use.
once a function is prototyped (ie: public int returnInteger(int passedInteger)), on the line above the function, type a triple slash "///", and it will automatically fill in a template for comment information. this comment information allows C# express edition to display information in the IDE interface as the function is being used. (again, look throughout the existing code for examples). It'll give the same "tips" for our functions/classes that .net displays for their own functions/classes.


as for what needs to be done, and that can be worked on independantly, is a general log class and then classes that use it to record things such as when fish are added, when liverock's added, when various corals are added, etc. Have a look at the TimeSpan and DateTime classes built into the .net framework (in the msdn library)

Saving of all the information will eventually be simple with XML serialization, built into .net; lets you save the exact state of a class as an XML file, and then you can later set the state of a class from a serialized XML file from a previous save.

so just code it to work so that it works with information for now, and saving the information can be done later.

also having various calculators would be nifty. tank volume, chemistry calculators, etc.

Oh yah and a tip on the IDE's help system:
anything you have typed into your code, if it's part of the .net framework (ie: int, struct, DateTime, XmlSerializer), you can hilight it, and then press F1, and it'll pull up the help on that class/method/property. the documentation is VERY good. need an internet connection for it to work.

KrazyKuch
03-30-2007, 06:03 AM
hey Kwirky Have you done any work on it??

I have written a Conversion/Volume calculator for it!! and have started working on a chemistry calculator!

daddy01
03-30-2007, 03:49 PM
Here is one for Excel I used to use
Excel log
1350
Jim