AppGini Online Help > Working with generated applications
After generating the PHP application based on your project, the next step is to upload the files to your server and set up the database. The generated files are saved to a folder you specify. Below is an example of files generated from a project containing 8 tables.

Files created by AppGini and saved to a folder of your choice. The 'setup' folder contains the 'setup.php' script used to create the database and tables.


To upload the generated files, you should use an FTP program. A very good (and free) program is FileZilla, available from SourceForge.

You should upload the entire folder to your web server. Make sure that your web server is properly configured to run .php files as PHP scripts (otherwise, they will probably be treated as text files and their entire source code will be displayed in the visitors' browsers).

After you upload the files, you are ready to set up the database. Let's move on!


A briefing of the generated files
You may skip this part if you don't plan to modify the generated scripts.

For each table in your project, AppGini will generate 5 files. For example, in the above file list, the "categories" table has these files:
IMPORTANT Security notes
Your database contains important information that you do not want any unauthorized person to mangle with ... So, only authorized users should have access to your database.

As of AppGini 4.0, the generated scripts implement an advanced, yet intuitive, user management system. This system allows users to log into the generated application and have limited permissions that you (the admin) have full control of.

The admin has access to an admin area where he can define groups. Each group has its own permissions over each table in your application. For example, let's say that you have created an application for storing clients' contacts, vendors' contacts, and employees' contacts. The admin can define a group called 'HR' which can view and edit only the employees' contacts, a group called 'Sales' which can view and edit only the clients' contacts, and a group called 'Procurement' which can view and edit only the vendors' contacts. Each group can have one or more members, and each member inherits his group's permissions. The following diagram explains this graphically.



If a user of the Sales group tries to access the Vendors table, he will not be permitted. If an anonymous user tries to access any table, he will not be permitted. If the admin changes the access permissions of a group, all members of that group will instantly be granted the new permissions (and denied the old ones).

You can set the permissions of anonymous users in AppGini before file generation. And you can change them later from the admin area. Please be very careful with setting the anonymous permissions to avoid compromizing your data.