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
Last.fm 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 offline   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

Similar Threads
thread Thread Starter Forum Replies Last Post
Project Management Tools.. rhett7660 Mac Applications and Mac App Store 16 Nov 18, 2014 09:17 PM
Project Management App SwiftLives Mac Applications and Mac App Store 9 Apr 19, 2014 05:05 PM
Looking for Project Management software! Mangust Mac Applications and Mac App Store 1 Oct 3, 2013 02:47 AM
Project management system for small company cfhjag Mac Applications and Mac App Store 6 Nov 28, 2012 06:21 PM
Project++, project management tool dpsuffix iPhone and iPod touch Apps 0 Aug 3, 2012 01:19 AM

Forum Jump

All times are GMT -5. The time now is 06:57 AM.

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

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2015, MacRumors.com, LLC