Here are some screen shots taken from the current version of SynProject.
1. Source Code Versioning
First here is the main screen of the application.
You may notice you have the commit list on the left side, then you can browse files, and visualize their content just by a double-click on the desired file. If the file is a source code file, it's displayed formated. If the file is a picture, it's displayed as a picture, not as binary (handle PNG/GIF/BMP/JPEG pictures, thanks to our SynGdiPlus unit.
You just saw "official" commits, but you can also perform backups, without any need of putting a commit description text. A backup is like a "commit" but with no description text. You can even have a distant backup, to another remote computer, for safety. Backups are very fast, and only copy the bytes which have changed since last backup (i.e. this is an incremental backup). It's a good habit to create daily backup of the software: you can even perform a backup with some command line parameters (like SynProject.exe -b filename1.dvs filename2.dvs), so just a click on a link and all your source backup is done in seconds.
Here we select a local backup, in order to browse its content:
Now we select a backup commit, then we select a file, right click over it, and directly compare it to a previous version:
Now you have an immediate graphical diff of both file versions, side by side. You can navigate from one diff to another, with the F7 key. See that all content is formatted as expected for a real source code (the tool knows how to format pascal/delphi, modula-2, C, C+, C# source files).
Note that this compare / graphical diff feature is also available from the main Commits screen, of course.
2. Software Documentation
Now we will show some screen shots about embedded documentation production.
All documentation is stored into a single document file, a pure text document, formated as (simplified) RTF, and with some wiki-like syntax.
Of course, this documentation file is part of the commits and the backup of your source code tree. So it's very easy to maintain an exact synchronization between your source and your documentation, from the same SynProject tool.
In order to browse your documentation (which can be huge if you have a lot of Design Inputs - i.e. specifications), SynProject includes a dedicated editor. Here you can go to a section of your document, just with some mouse clicks:
When you have finished writing your documentation, you just click on the "Word" icon, and select the document to be generated. Word is then launched automatically, and the corresponding Word document is created. You can make some page layout modifications if you want to publish it, but all the content has been written inside SynProject.
Here is the "Word" menu popped up, with some dedicated tools: the SAD (i.e. the Software Architecture Document) is intended to contain a general architectural description of the software, and also contain the description of all classes, functions, and objects of your Delphi project. There is indeed an embedded (PasDoc based) source code parser, which extract all necessary object hierarchy and declaration from the source code, together with the comments marked with some triple slash ( /// ), and will append this to the SAD document. The following menu item is used to refresh the internal parsing from the source code tree:
You can put any source code quote inside your documentation. It will be formatted as expected in the final Word document.
Since you have parsed all your source code, you can make a reference to any method, class, function or constant of any of your project section. An internal class browser is available. It will allow you to create reference to your source code inside your documentation. Then, the SAD is able to reflect which part of your code (i.e. which unit, and more precisely which class, function or method) is involved in every software specification. You have here an unique cross-reference tool, which link source code, documentation, and specifications.
There is an embedded GraphViz tool, which allows you to create some logical graphs from the main documentation content. With a special wiki syntax, you put your GraphViz commands (or some shortcuts, more easy to remember than original GraphViz commands) inside the main documentation, and it will be replaced in your Word document by the corresponding image.
An integrated on-the-fly editor is available inside SynProject, in order to quickly create your diagrams:
Of course, since SynProject has an internal editor, and you'll write a lot using it, there is an internal spell checker:
You can add images to your documentation. Just put some png/jpg/gif/emf files within the main documentation folder, then use this button to add them to your documentation. SynProject will maintain reference tables, and centralized all images used within your whole project:
SynProject allows your project to maintain the revision of every document its generate. So you can publish documents with their own revision. SynProject handle for you all revision history or exact cross-reference tables.
3. Document Wizard
The plain text format used may be intimidating for you. In fact, it's very useful to have just one text file to maintain, but it could be a bit difficult to start with.
So SynProject has an internal "Wizard" (a real one, with a Wizard hat, and a Wizard touch), which allow you to change the file content, in a more guided way.
In the following screen shot, you will see the main parts of the documentation. It follows a typical ISO/IEC compatible way of software developing, from Design Inputs to Release Notes, including all Specification, Risk Assesment, Detailed Design, integrated Tests procedures, and all necessary Cross Referencing documents:
For example, in this page, you can modify every Detailed Design document.
Here you can edit the Architectural Modules of your Project.
It's very common to have multiple modules inside the same Project. In SynProject, each module has its own source code tree, and is referenced as such in the whole documentation. The main Table of Content of some documents will also reflect these modules.
Speaking about test protocols, you can customize the template of the summary page of the protocol documents, for example. SynProject allows you to customize most of the documentation layout and properties, as in the following screen shot:
Here is the "Release Notes" Wizard page. If you right click on the "Reviewed by", "Prepared by" or "Approved by" fields, a list with all available people working on the project will pop up. Yes, SynProject handle also the people who work on your project. Does your manager change? Just edit one line of your documentation text file, and all Word documents will be generated with the good name and designation.
I hope these screen shots and comments gave you some interest about using and collaborating on this great Open Source (GPL) project!