Register FAQ / Rules Forum Spy Search Today's Posts Mark Forums Read
Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread Display Modes
Old Mar 4, 2010, 09:45 AM   #1
macrumors member
Join Date: Feb 2010
Building a Project Management System, Want Some Advice

I have looked around and one thing that does not seems to exist is a nice full featured project management system for the Mac OS X. Since this is something I have wanted to do for a long time, it seems like it would be a project for me as I explore the world of Mac programming. It is something I can off as very simple but also build it up into a very feature full application. One thing I would like to get some opinions on is data storage.

As I come from a web development background and I originally wanted to build this as a web application, I thought the best way to handle data storage would be a database like PostgreSQL. Another reason for the data storage to be a database is that leaves open the possibility to also create a web interface to the system.

Now this issue that I though of would probably be an issue no matter what data source I use. The issue I am think of is that while older versions of the client would be able to connect to the database just fine, newer versions of the client would only be able to connect to newer versions of the database if there was a change in it. The one thing I don't want to have happen is if the user updates their client application but the person maintaining the database does not upgrade, the client might not be able to connect to the database anymore.

Is there anyway around this issue with using a database like PostgreSQL as the data source? Is there anyway around this issue with using any other type of data source. The only way I can see about preventing this is by preventing the user form upgrading there client application until all stored connections are upgraded to the latest version but that does not be very user friendly.
ryanzec is offline   0 Reply With Quote
Old Mar 4, 2010, 12:22 PM   #2
macrumors 603
Cromulent's Avatar
Join Date: Oct 2006
Location: The Land of Hope and Glory
Rather than using PostgreSQL I would suggest using SQLite. PostgreSQL is a great database but requiring customers or average users to have a database of that size and complexity is rather optimistic.

SQLite was designed for exactly the kind of thing you are talking about. Heck, thinking about it just use Core Data.
Neural Advance - Mac OS X, UNIX and Windows Development Profile | Extreme Metal Reviews
MP 4x 2.66Ghz Xeons / 6GB RAM / 640GB + 500GB + 750GB + 1TB HDDs / ATI Radeon 4870 / iPad 3
Cromulent is offline   0 Reply With Quote
Old Mar 4, 2010, 07:17 PM   #3
macrumors 6502a
Join Date: Oct 2007
I think you may have missed some things in looking around for potential competition:


OmniPlan by OmniGroup

Both of these products have been reviewed very favorably, but I can't really comment much since I have only played around with them and have never used any project management tools myself.

And if you are thinking about going into the web based side of project management.... there are some serious contenders there.
larkost is offline   0 Reply With Quote
Old Feb 3, 2013, 04:11 PM   #4
macrumors regular
Join Date: Aug 2011
Location: Stockholm Sweden
Now back to the original question.

You are right that the your program might be tied to a certain version of data base. But, generally, data base interfaces changes rather slowly, so it might not turn into a problem.

One solution which I recommend is to create an intermediate class or library inside your code base, centralising all knowledge of the database used.

The idea is that your code never calls the actual database code directly, but only indirectly through this set of code (or classes if you do object oriented programming). The effect is that only that code knows exactly how you access the database. This would allow a "newer" program to access several different versions of the database server. Or even, if requirements change, to access a completely different database server or access method. All calls directly accessing the database is in one place, not spread all over the code base.

This would allow a completely local database in one case, and in a different case the data base might be on the net somewhere. Nowadays, the database is typically using SQL as query language which makes things a bit easier to handle. But with a good internal layer of code, even that might be hidden from the rest of the code base.

// Gunnar
ghellquist is online now   0 Reply With Quote

MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
thread Thread Starter Forum Replies Last Post
Need some advice please! Jack97 iPad Tips, Help and Troubleshooting 1 Jan 1, 2011 04:40 PM
Need advice on what project management package to buy: Thunderbird1 Mac Applications and Mac App Store 2 May 11, 2010 09:06 PM
In a Dilema, Could use some advice in rescueing Final Cut Express Project. Deuxmasta Digital Video 8 Aug 27, 2009 06:29 AM
About to buy a MB of CL and Want some advice interms of questions or things to check mashinhead Buying Tips and Advice 7 Apr 3, 2008 08:59 AM
project management / work order system mnkeybsness Web Design and Development (archive) 5 Oct 7, 2004 02:02 AM

All times are GMT -5. The time now is 11:42 PM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013,, LLC