I've developed a web application, this application consists of not just some complex remotes, models and sights but additionally some custom libraries along with a database.

On the top of the there's an ajax layer so: javascript functions as well as their related server side functions.

I have developed this application on my own and that i want a way to make sure that 12 months down the road, if another person picks it available online for is a few mention of logic flow.

Exist tools with this? Has anybody had this problem before?

A great beginning is always to begin using PHP Documentor (PHPDoc) before your code base will get too big. Even so, it's fairly simple to return and tag your classes, etc. PHPDoc will crawl the code base and convey documentation, typically an internet-based (HTML) group of paperwork, but you may also produce PDF and much more. The functions, techniques, classes, etc. may have links to related aspects of your code. I only say before it will get too big, because you will need to return and add comment tags to boost the creation of the documents. PHPDocumentor (PHPDoc) are available here http://www.phpdoc.org/ , and knowledge and lessons are available all around the web. For those who have gone this far with PHP then surely you'll want observed comments such as this...(doc blocks)

/**
 *@todo something I need to do
 *@param [type] [$varname] [description]
 *
 */

These tags/DocBlocks should be parsed by PHPDoc, and therefore are very helpful...Most IDE's too are extremely friendly to presenting DocBlocks and can sometimes enhance code hinting, etc. in line with the DocBlocks inside your code.

For that Database...you will find many tools and teqniques but here's one suggestion...

The database could be referred to by tools which will build diagrams. For example, when utilizing MySQL, you can install MySQL Work bench, and will also then provide you with the tools for connecting towards the database and make a diagram like the picture in this article... http://forge.mysql.com/wiki/MySQL_Workbench, plus a number of other tools for reverse-enginerring and/or creating, tools for ORM, and much more. Sometimes to simply diagram and existing DB can be quite helpful particularly when you will find many associations. MySQL Work bench provides you with the choice to transmit the diagram to PDF or perhaps an image. All very helpful.

It will not only help future designers, however these tools can help yourself too. We are all surprised to understand what we should forget following a couple of days, several weeks, etc. of not searching in the code. A busy weekend could make for any slow begin anew on Monday morning.

For my last suggestion...and I'll be simple here, but consider bug/problem monitoring. You will find many online or install your personal. Some accompany version control (like at GitHub, Unfuddle, BitBucket, etc.)...or install your personal. I've found Bugzilla is fairly simple to install in case your using Ubuntu it's in the actual repository and installs effortlessly.

This surely is not the entire answer you're searching for, but things i always find very helpful is really a proper documentation! Company you will find some great tools like PHPDoc for instance. This may partially permit you to produce a documentation from the workflow, a minimum of to describe just what you do.

Further down the road you may just explain in plain british the way it flows. If it's a very large application, you can even think about creating your personal wiki!