Hi, I'll try to make this quick. I'm used to programming PHP in context of building websites, to add random bits of dynamic functionality, but every once in a while I need to build something like a complete application. My problem is this, as a single developer, there comes a point in time where my project starts to get too big for me to manage in my head. There is too much logic flow, too many data points to track, too many twists and turns in the flowchart. I start to get lost in how many branches of logic the program has taken. For example think something like "ok the user did this, they have that permission, they can go here, but only if they've done that, they can't see this thing yet until they click here, but they need to enter this data first, but check if this date expired and they are still valid..........." Just making that up, but you get the point, I go so far down the rabbit hole of logic flow that I can't remember where I'm at sometimes! Then I have to go backward and figure what to do if they made some other choice and go down a different path.
The point is, I don't know how to manage all this logic, to keep track of every possible action and reaction of the app and all the hundreds of conditions that might be going on. Worse still, if I leave a project for a few weeks and come back, I haven't the foggiest idea where I left off or what I was working on or where in the code to start programming again.
My question is, is this just normal? Or am I missing some more advanced programming tools to track and record my progress? To know where I am programming in the app logic, to know where I leave off and where to start, to test all the hundreds of conditionals that the app logic has to sort through. I typically program just using one tool like Sublime or Netbeans, that's it. Are there 3rd party tools to help get through larger projects and keep track of everything? To know exactly what's done, what needs done, and track how a person might use the app among hundreds of possible conditionals?
I'm just looking for some programming theory, some tools, some thoughts on organizing projects. Thanks!