I'm looking for a type of Version Control
software, in the area of CVS, SVN, etc., for versioned centralized storage of Projects
These projects are technical drawings of electrical installations, and are stored not as plain ascii-like files, but rather a set of database tables and extra configuration files, holding an entire project stored in it's own subdirectory.
The users are technical drawing engineers, that don't have too many computer experience, other than typing a letter or some documentation, but are mostly working with this technical drawing software.
This software doesn't have any
project management functions available.
There is currently a project management tool, designed and programmed in-house in Delphi 5, but the programmer is no longer available (left the company), so maintenance is 'difficult'.
And now there's a new version of the Drawing software. That changed the structure of the project-files, added subdirectories to the project directory, and stored the project info in an xml-file instead of a plain ascii file, and then some.
So now I've been asked to 'have a look at it', for being busy with D5 for years, and I'm already nearly finished on the minimal updates to make it compatible with this new version of the drawing software (it's is going to be used ASAP, after updating this project management tool), and fixing some other odds and ends.
It's not this task I'm asking your help with, but rather on the added task of a full rewrite of this project management tool
, in a more easily maintainable environment. It's not that Delphi is not good enough, it's more the fact that they don't have anyone available any longer, that can maintain the darn thing. And they do not seem to want to employ anyone who can. This would ofcourse be a new problem when, after a rewrite, the programmer (probably me) leaves the company (or didn't work there in the first place), or doesn't want to work on it, or whatever reason... so this is why I'm asking this here: to investigate if something similar is already available.
I'll write up a few requirements, based on current functionality:
- Simple user interface
There currently are 2 lists of projects, the left side showing all local projects (1 directory with a number of subdirectories) and right side all stored projects (in a central database). There are buttons to lock and unlock projects (another requirement) and, with enough privileges, remove projects from the server or the local directory, and filter the displayed projects using some criteria.
- User management
Users are to be classified in types, like Administrator, Engineer (working with all kind of projects), Viewer (just get and view, not lock or edit) and some inbetween types, like Engineer/Admin that can also unlock other users projects, or manage user accounts.
Single Sign-on is an optional request, and could be based on LDAP or Active directory, and further integration would be nice, as network access is controlled using an AD.
- Project handling
Projects are to be handled on a file-set base, all files in the project need to be sent/gotten to/from the server, not just individual files.
- Project locks
Projects have to be locked, so the engineer working on it, is the only one allowed to put back his updates, and unlocked, and this usually is performed when 'getting' a project, but could be a separate step
- Scheduled tasks
Some scheduled tasks needs to take place (on the server-side); weekly checking for projects that are locked for long a time (30 days, 10 days) and sending the locking users an e-mail that they still have these project(s) locked, or if they haven't logged into the management tool for more than 90 days, daily all projects stored on the server are compared to the list of projects in the database, and updated (I don't know why that could be needed, but it's there now).
The current list of projects, stored in MySQL (3.x), needs to be transfered to MS-SQL2000 (not a typo ), as that's what's also used for other applications, and this project management data wouldn't put that much extra burden on the server. I expect that the actual database would eventually migrate to MS-SQL2008, but there is other tailored software that uses the SQL2000 database, and that is not expected to be upgraded or replaced any time soon.
- Development environment
I've planned to re-develop all this in .NET 3.5 using WPF and WCF, and program it in C#. This leaves enough space for their own additional development in VB.NET or any other .NET supported language, might that be needed. Using a browser based UI should be possible, but is not a requirement, nor desired.
The simple UI requirement kicks out direct usage of CVS or SVN, as those UI's are way too complex and error-prone for the target audience, but there may be other SCM's (Source Code Management tools) that might fill this in; I don't have any experience with other SCM's beside CVS, SVN and PVCS Version Manager. I'd like to store the projects on the server-side in a real SCM, because of maturity and reliability, but would need a deeper insight on the API's to get that implemented. At least it seems do-able
Anyone having advice or questions is invited to respond, including flames on the chosen development environment (I'm not going to do it in C or C++, that's for sure) or database (it's a customer requirement).
It is eventually a (spare-time) job I'm charging money for, so if you feel this as an unfair request, please tell me, and I'll remove the entire thread, but the moral is that I'd rather not write anything that has been invented elsewhere already.
Thanks for any responses.
Ps: This is my first large post, so if I need to restructure, please point me in that direction.