11.4. Projects

11.4.1. Creating a new project

New Application Framework projects can be created at any time using the sequence of steel subcommands, steel appfwk mkproject, and steel appfwk init.

First create a new project directory using steel appfwk mkproject. The options include:

$ steel appfwk mkproject -h
Usage: steel appfwk mkproject [options]

Install new local App Framework project

Options:
  --version          show program's version number and exit
  -h, --help         show this help message and exit
  -d DIR, --dir=DIR  Optional path for new project location
  -v, --verbose      Extra verbose output

With no options or arguments, you will be prompted for a directory to create your new project in, with the default name of appfwk_project. Feel free to choose any name you’d like - there is no limit on the number of projects you can create, for instance you could have one for development, and one for demonstrations.

$ steel appfwk mkproject
Generating new Application Framework project ...

Enter absolute path for project files [/tmp/appfwk_project]: /tmp/demo_project
Creating project directory /tmp/demo_project ...
Writing local settings /tmp/demo_project/local_settings.py ... done.

*****

App Framework project created.
Change to that directory and run 'steel appfwk init' to initialize the project.

Once the project has been created, several new folders, files and symlinks will be located there, which we will go over in the next section. To start, just initialize the project using the default settings, and the new project will be ready for use!

$ steel appfwk init
Initializing project using default settings....done

11.4.2. Directory layout

With the a new project created and initialized, the following items should be present:

- manage.py <symlink>
- reports
- local_settings.py
- logs
- data
- example-configs
- media <symlink>
- thirdparty <symlink>

Lets discuss in order listed above:

  • manage.py - symlink to the ‘manage.py’ script from the installation package. This command provides an interface to detailed project maintenance operations, as well as helpful development and debugging tools. Execute ‘python manage.py -h’ to see an exhaustive list of available subcommands, but those which are most helpful to use for App Framework are discussed in this documentation.
  • reports - contains a few sample reports to get started with. See reports for detailed walk through of how reports are defined.
  • local_settings.py - the project settings file, covered in more detail under Configuration. The database, logging, and other project configuration gets handled via this file.
  • logs - App Framework runtime logs are stored here, under log.txt and log-db.txt. Both logs provide very detailed debug level logging, and are typically the first place to look when trying to debug a particular problem.
  • data - contains the default sqlite database, along with subdirectories ‘datacache’ and ‘initial_data’, that store project specific transient data.
  • example-configs - contains example configuration files for Apache, and nginx, as well as some sample LDAP settings that can be added to the local_settings.py file. Two example geolocation files are also included here to provide templates for your own location setups.
  • media and thirdparty - images, javascript libraries, and css files are stored here.