# Project structure * [File structure](#file-structure) * [Server](#server) * [Client](#client) * [Settings page](#settings-page) The web contains several important concepts and this is the right place where we will explain them briefly. ## File structure The web repository is not that big, however we give you a brief overview of the most important files/directories. ### Server * **config/app.php** - general application settings. * **config/kerberos.php** - this file contains Kerberos.io specific parameters; the user credentials to sign in, etc. * **app/Http/Controllers** - MVC controllers * **app/Http/Repositories** -repositories are injected into the controller. * **app/Providers/AppServiceProvider.php** - bind repositories to a specific interface - dependency injection. * **routes/api.php** - contains all the URI endpoints for Ajax calls. * **routes/web.php** - url routing for pages. ### Client * **public/css/less** - LESS is used for the CSS. * **public/js/app** - BackboneJS and RequireJS is used for building modular JS classes. * **public/js/mustache** - Mustache is used for the client-side view rendering. * **public/js/vendor** - This is where the bower extensions are installed. * **public/capture** - A directory where images are written to by default. * **public/bower.json** - The bower extensions used in the kerberos project. * **public/Gruntfile.js** - We are using Grunt for our task manager. ## Settings page One of the most important reasons why the web exists is because it's a **GUI** to configure the machinery. The web contains a *settings* page where algorithms, expositors and much more can be configured. There is a basic setting view and an advanced settings view. The advanced view will convert the configuration files (from the machinery) into **HTML elements**, so e.g. when adding new algorithms or heuristics, the parameters will be shown on the settings page automatically. The only thing you need to do is to specify a type to each parameter. You will find an equivalent *view* with the same name in the **resources/views/controls** directory.