From b015f34f1fbd9592c5839e5e311136f272df41fa Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Fri, 13 Jun 2014 17:20:46 +0100 Subject: Move docs content under docs/ --- docs/developers/directory_structure.md | 257 +++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 docs/developers/directory_structure.md (limited to 'docs/developers/directory_structure.md') diff --git a/docs/developers/directory_structure.md b/docs/developers/directory_structure.md new file mode 100644 index 000000000..e073a96ce --- /dev/null +++ b/docs/developers/directory_structure.md @@ -0,0 +1,257 @@ +--- +layout: page +title: Directory structure +--- + + +# Alaveteli's directory structure + +

This page gives you an overview of where to find things in Alaveteli's +directories.

+ +**You'll probably never need to worry about this** if you're just installing +Alaveteli -- this is really more useful if you're a developer planning on +making more substantive changes to the code. You don't need to be familiar with +Ruby to install or make basic [customisations to your +installation](/docs/customising). + + + +Alaveteli uses Ruby on Rails, which is a common "Model-View-Controller" web +framework — if you're familiar with Rails this will look very familiar. For +more information about the Rails structure see the [Ruby on Rails +website](http://guides.rubyonrails.org/getting_started.html). + +## Key directories and what they're for + +
+
+ app +
+
+

the core Alaveteli application code

+
+
+ controllers +
+
+ helpers +
+
+ mailers +
+
+ models +
+
+ sass +
+
+ views +
+
+
+
+ assets +
+
+ Static assets +
+
+ css +
+
+ Rendered stylesheets +
+
+ img +
+
+ static images +
+
+ sass +
+
+ Stylesheets in SCSS format, which are compiled to CSS +
+
+ scripts +
+
+ JavaScript +
+
+
+
+ bootstrap +
+
+

+ Alaveteli's default style uses Bootstrap. +

+
+ commonlib +
+
+

mySociety's library of common functions

+

+ We maintain a common + library that we use across many of our projects (not just + Alaveteli). This is implemented as a git submodule, + so Alaveteli contains it even though the code is separate. Normally, you + don't need to think about this (because git handles it automatically)... + but if you really do need to change anything here, be aware that + it is a separate git repository. +

+
+
+ config +
+
+

configuration files

+

+ The primary configuration file is general.yml. This file isn't in the git + repository (since it will contain information specific to your installation, including + the database password), but example files are. +

+
+
+ db +
+
+

database files

+
+
+ migrate +
+
+ Rails' migration (updating the database scheme up or down + as the code develops). +
+
+
+
+ doc +
+
+

documentation

+

+ These are technical notes. This is in addition to the core documentation — which + you are reading now — which is actually stored in the git + repository in the gh-pages branch, and published as GitHub + pages. +

+
+
+ lib +
+
+

custom libraries

+
+
+ tasks +
+
+ whatdotheyknow +
+
+
+
+ locale +
+
+

translations (internationalisation/i18n)

+

+ The translation strings are stored in .po files in directories specific to + the locale and encoding. For example, es/ contains the translations for the Spanish site. +

+
+
+ public +
+
+

static assets

+
+
+ admin +
+
+ images, JavaScript and stylesheets used by the admin back-end +
+
+ fcgi +
+
+ Fast CGI files for serving static assets +
+
+ images +
+
+ javascripts +
+
+ stylesheets +
+
+
+
+ script +
+
+

server-side shell scripts

+

+ For example, alert-overdue-requests for running the script + which finds overdue requests and mails them out. +

+
+
+ spec +
+
+

tests

+

+ Alaveteli's test suite runs under spec. +

+
+
+ stylesheets +
+
+

+ global stylesheet +

+

+ Actually just global.css +

+
+
+ tmp +
+
+

+ temporary files +

+
+
+ vendor +
+
+

third-party software

+
+
plugins
+
+

+ Plugins +

+
+
+
+
+ +We've missed out some of the less important subdirectories here just to keep +things clear. -- cgit v1.2.3