I am medium difficulty programmer. I understand C perfectly, Java somewhat well, and also have just done some very fundamental programming with Python, Spend, and Applescript. I am writing this program for Macosx.

I would like a create a credit card applicatoin that plans my day for me personally, and allows me schedule payment dates for various projects.

The concept being, i possibly could tell this program I've deadline for any task on April first, 2012, which it will require roughly 80 hrs. This program would then select the hrs and days to schedule blocks of your time devoted towards the task, with different quantity of factors.

This means, I want this program to possess a fine-grain understanding of your time, over a lot of dates. I want a minimum of half hour times for every day to become split up into. Each block of half an hour must be checked if your task is scheduled for your time, and also the possible ways to assign an activity to that particular block.

So these half hour blocks must exists for every day, and clearly you will see a number of days this program may have understanding of, at least I'd say annually or one year.

I am just in a crossroads regarding how you can keep data. I've not had any experience yet with databases, so I am unsure if thats an answer, or what which involves.

How does one approach the issue? My prefered languages with this problem could be C and/or Python.

Thank you for every experience.

I'd recommend using sqlite3. Have a look in the api for python here http://www.python.org/dev/peps/pep-0249/.

You could utilize another relational db with similar api, as well as the scale of the application sqlite3 gives some simplicity of use benefits, and you can always switch dbs. It's easy and straightforward for the application. Also, it is the more typical relational database, so you'll have the ability to find lots of information.

You could utilize one of the most popular non-relational like http://www.mongodb.org/, and when you've got no knowledge about SQL this might be simpler to understand (I am unsure relating to this though, have a look on your own.) Mongo supports several motorists (http://www.mongodb.org/display/Paperwork/Motorists), however i do recommend choosing python for something similar to this for easy implementation. ie. http://docs.python.org/library/calendar.html is extremely nice.

Furthermore, additionally, there are such things as https://storm.canonical.com/Tutorial for sqlite3 and http://mongoengine.org/ for MongoDB. Based on your experience and scope from the project these might be very worth learning. Really, as things get bigger and much more complicated, utilizing a ORM layer gets to be more worthwhile. Around the switch side, you are very acquainted with SQL, and relational database schemas, it might not be well worth the effort to understand a brand new API for any solo project.