1695
The structure is easy though, everything I make that is relevant is in the folder application (the other folders are CI specific stuff)
The folder views contain the pages that are going to be rendered. These are sorted by type. (thus I have a users folder containing a form to make a new user)
The folder config contains config stuff. An very importand file here is the routes.php file explanation comes in a bit.
The folder models contain the model files, a model referring to classes that hold functions to manipulate the database. Thus the file Users_model.php contains a class called Users_model which contain a lot of functions that manipulate the users table in the database. For example, making a new user.
The folder controllers splits itself up into 2 other folders, one containing controller files that will have views that need to be rendered (called browser) and the other that will instead just do an echo json_encode() (called json)
Controllers are classes that tell a specific model what it needs to do. Thus for example it can load in the Users_model and tell it to create a new user using soe data. (this data probably comes from a form)
The core folder contains classes that both the models and controllers need to extend. This is a place where I can write functions that all my controllers or models need. The function loadAll() is a nice example. This simply renders the header,the left side bar then the view I want the right side bar and last but not least the footer. (Or in other words, top, left, content, right and bottom).
Then there is also the routes.php file in the config folder and this file tells the application what controller to load and which of its functions needs to be executed using a pretty big array. Thus for example it says that the route {base_route}/register needs to execute the register function in the Users controller.
This may help explaining how MVC (which is how I work) fits together
http://www.htmlgoodies.com/beyond/php/article.php/3912211
Also, the reason I split the controllers like I did is because of how I like to work. I first send basically only a template to the browser and some javascript. This javascript then makes an request to the server to get all the data of the page it is on and fills the template in. This way I basically make an usable json api while I develop the website which is always nice. Everything you can currently do with the site can be done without needing to parse html except for making a character as I didn't have time to figure out how file uploading using ajax works.
Fixing that is defiantly on my todo list though.