How should a group manage the construction of the actual application? Are there methods that I can use that will allow any of us to transfer files to our development machine and keep track of who did this so that we donโt rewrite each other?
It looks like you are looking for construction management . In the case of PHP, true โbuildโ is as simple as compiling source files because the language is interpreted; no compilation.
It so happened that I am one of the developers of BuildMaster , a tool that basically solves every problem that you indicated in your question ... and it sounds like it will be free in your case under a Community Edition license. I will try to consider some of your individual pain points and how BuildMaster can be used as a solution.
Source control
As suggested by others, you should use it. The deployment trick is to set up some form of continuous integration so that every time someone checks, a new โbuildโ is created. In BuildMaster, you can set this for any source control provider you want.
Error / Error Tracking
Excel will work, but this is not an optimal solution. There are many free bug tracking tools that you can use to manage your bugs and features. Using BuildMaster, you can associate your errors and the list of functions with the application by their release number so that you can view them in the tool at any time. It can also change the status of a problem and automatically add descriptions.
deployment
Using BuildMaster, you can create automated deployment plans for your development environment, for example:
- Get the latest source code
- Create artifact
- Copy files to the development machine
- Deploy configuration files
- Update database
The best part, once you install them for other environments (glowcoder point # 6), clicking all your codes and database updates is as simple as clicking a button.
Another problem that I foresee will be updating the database running on the development machine. Are there any standard methods we can use to manage our SQL scripts among the four of us?
Database Updates
Not surprisingly, BuildMaster processes them as well, using the change script module. When a member of your team creates a script (for example, ALTER TABLE ADD [Blah] INT NOT NULL ), he can load it into BuildMaster and then run it in any environment that you created.
The best part is that you can add a step to automatic deployment and no longer have to worry about it. As Justin mentions, you can use .sql files for your object code (stored procedures, views, triggers, etc.) and use them for each assembly, since they are code anyway. You can save them in the original management.
Configuration files
One aspect of all of this that you may have neglected (but inevitably come across) is dealing with configuration files. With PHP, you can have a .htaccess file, a php.ini file, prepend.php, or collapse your own custom configuration file. Since, by definition, configuration files must change between your personal machine and the development machine, capturing them from a control source will not work without any a la hacking:
if (DEV) { // do one thing } else if (PROD) { // do another }
With BuildMaster, you can templatize your configuration files and associate them with your environment so that they can be deployed automatically. It will also keep a change history for you.
Automated Testing
If you want to get the full ALM effect, you can automatically unit test your code during automatic assembly and notify you if something fails, so you will find out that something is broken as soon as possible.
I apologize for the answer "long wind", but I feel that you are already ahead of the game, watching the problems that you might encounter in the future, and really believe that BuildMaster will make all this for easy deployment easy for your team so you can focus on the fun part, coding!