Browse Source

first commit

Daniel 10 years ago
commit
6d715e4090
72 changed files with 18760 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 5 0
      .gitignore
  3. 3 0
      CONTRIBUTING.md
  4. 0 0
      README
  5. 0 0
      app/commands/.gitkeep
  6. 185 0
      app/config/app.php
  7. 67 0
      app/config/auth.php
  8. 89 0
      app/config/cache.php
  9. 18 0
      app/config/compile.php
  10. 124 0
      app/config/database.php
  11. 124 0
      app/config/mail.php
  12. 0 0
      app/config/packages/.gitkeep
  13. 60 0
      app/config/queue.php
  14. 125 0
      app/config/session.php
  15. 20 0
      app/config/testing/cache.php
  16. 21 0
      app/config/testing/session.php
  17. 31 0
      app/config/view.php
  18. 31 0
      app/config/workbench.php
  19. 0 0
      app/controllers/.gitkeep
  20. 18 0
      app/controllers/BaseController.php
  21. 23 0
      app/controllers/HomeController.php
  22. 0 0
      app/database/migrations/.gitkeep
  23. 0 0
      app/database/production.sqlite
  24. 0 0
      app/database/seeds/.gitkeep
  25. 17 0
      app/database/seeds/DatabaseSeeder.php
  26. 80 0
      app/filters.php
  27. 20 0
      app/lang/en/pagination.php
  28. 22 0
      app/lang/en/reminders.php
  29. 98 0
      app/lang/en/validation.php
  30. 52 0
      app/models/User.php
  31. 17 0
      app/routes.php
  32. 13 0
      app/start/artisan.php
  33. 83 0
      app/start/global.php
  34. 3 0
      app/start/local.php
  35. 1 0
      app/storage/.gitignore
  36. 2 0
      app/storage/cache/.gitignore
  37. 2 0
      app/storage/logs/.gitignore
  38. 2 0
      app/storage/meta/.gitignore
  39. 2 0
      app/storage/sessions/.gitignore
  40. 2 0
      app/storage/views/.gitignore
  41. 17 0
      app/tests/ExampleTest.php
  42. 19 0
      app/tests/TestCase.php
  43. 13 0
      app/views/emails/auth/reminder.blade.php
  44. 46 0
      app/views/hello.blade.php
  45. 74 0
      artisan
  46. 75 0
      bootstrap/autoload.php
  47. 57 0
      bootstrap/paths.php
  48. 74 0
      bootstrap/start.php
  49. 36 0
      composer.json
  50. 18 0
      phpunit.xml
  51. 8 0
      public/.htaccess
  52. BIN
      public/bootstrap-3.0.0-dist.zip
  53. 6805 0
      public/css/bootstrap-default.css
  54. 384 0
      public/css/bootstrap-theme.css
  55. 1 0
      public/css/bootstrap-theme.min.css
  56. 7376 0
      public/css/bootstrap.css
  57. 9 0
      public/css/bootstrap.min.css
  58. 44 0
      public/css/general.css
  59. 0 0
      public/favicon.ico
  60. BIN
      public/fonts/glyphicons-halflings-regular.eot
  61. 228 0
      public/fonts/glyphicons-halflings-regular.svg
  62. BIN
      public/fonts/glyphicons-halflings-regular.ttf
  63. BIN
      public/fonts/glyphicons-halflings-regular.woff
  64. 62 0
      public/index.php
  65. 1999 0
      public/js/bootstrap.js
  66. 6 0
      public/js/bootstrap.min.js
  67. 6 0
      public/js/jquery-2.0.3.min.js
  68. 0 0
      public/packages/.gitkeep
  69. 2 0
      public/robots.txt
  70. BIN
      public/v3.0.0.zip
  71. 21 0
      readme.md
  72. 19 0
      server.php

+ 1 - 0
.gitattributes

@@ -0,0 +1 @@
+* text=auto

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+/bootstrap/compiled.php
+/vendor
+composer.phar
+composer.lock
+.DS_Store

+ 3 - 0
CONTRIBUTING.md

@@ -0,0 +1,3 @@
+# Contribution Guidelines
+
+Please submit all issues and pull requests to the [laravel/framework](http://github.com/laravel/framework) repository!

+ 0 - 0
README


+ 0 - 0
app/commands/.gitkeep


+ 185 - 0
app/config/app.php

@@ -0,0 +1,185 @@
+<?php
+
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Application Debug Mode
+	|--------------------------------------------------------------------------
+	|
+	| When your application is in debug mode, detailed error messages with
+	| stack traces will be shown on every error that occurs within your
+	| application. If disabled, a simple generic error page is shown.
+	|
+	*/
+
+	'debug' => true,
+
+	/*
+	|--------------------------------------------------------------------------
+	| Application URL
+	|--------------------------------------------------------------------------
+	|
+	| This URL is used by the console to properly generate URLs when using
+	| the Artisan command line tool. You should set this to the root of
+	| your application so that it is used when running Artisan tasks.
+	|
+	*/
+
+	'url' => '',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Application Timezone
+	|--------------------------------------------------------------------------
+	|
+	| Here you may specify the default timezone for your application, which
+	| will be used by the PHP date and date-time functions. We have gone
+	| ahead and set this to a sensible default for you out of the box.
+	|
+	*/
+
+	'timezone' => 'Europe/Berlin',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Application Locale Configuration
+	|--------------------------------------------------------------------------
+	|
+	| The application locale determines the default locale that will be used
+	| by the translation service provider. You are free to set this value
+	| to any of the locales which will be supported by the application.
+	|
+	*/
+
+	'locale' => 'de',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Encryption Key
+	|--------------------------------------------------------------------------
+	|
+	| This key is used by the Illuminate encrypter service and should be set
+	| to a random, 32 character string, otherwise these encrypted strings
+	| will not be safe. Please do this before deploying an application!
+	|
+	*/
+
+	'key' => '2qpXAWgHRibo9JD7YkmA991pdbFAWkJE',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Autoloaded Service Providers
+	|--------------------------------------------------------------------------
+	|
+	| The service providers listed here will be automatically loaded on the
+	| request to your application. Feel free to add your own services to
+	| this array to grant expanded functionality to your applications.
+	|
+	*/
+
+	'providers' => array(
+
+		'Illuminate\Foundation\Providers\ArtisanServiceProvider',
+		'Illuminate\Auth\AuthServiceProvider',
+		'Illuminate\Cache\CacheServiceProvider',
+		'Illuminate\Foundation\Providers\CommandCreatorServiceProvider',
+		'Illuminate\Session\CommandsServiceProvider',
+		'Illuminate\Foundation\Providers\ComposerServiceProvider',
+		'Illuminate\Routing\ControllerServiceProvider',
+		'Illuminate\Cookie\CookieServiceProvider',
+		'Illuminate\Database\DatabaseServiceProvider',
+		'Illuminate\Encryption\EncryptionServiceProvider',
+		'Illuminate\Filesystem\FilesystemServiceProvider',
+		'Illuminate\Hashing\HashServiceProvider',
+		'Illuminate\Html\HtmlServiceProvider',
+		'Illuminate\Foundation\Providers\KeyGeneratorServiceProvider',
+		'Illuminate\Log\LogServiceProvider',
+		'Illuminate\Mail\MailServiceProvider',
+		'Illuminate\Foundation\Providers\MaintenanceServiceProvider',
+		'Illuminate\Database\MigrationServiceProvider',
+		'Illuminate\Foundation\Providers\OptimizeServiceProvider',
+		'Illuminate\Pagination\PaginationServiceProvider',
+		'Illuminate\Foundation\Providers\PublisherServiceProvider',
+		'Illuminate\Queue\QueueServiceProvider',
+		'Illuminate\Redis\RedisServiceProvider',
+		'Illuminate\Auth\Reminders\ReminderServiceProvider',
+		'Illuminate\Foundation\Providers\RouteListServiceProvider',
+		'Illuminate\Database\SeedServiceProvider',
+		'Illuminate\Foundation\Providers\ServerServiceProvider',
+		'Illuminate\Session\SessionServiceProvider',
+		'Illuminate\Foundation\Providers\TinkerServiceProvider',
+		'Illuminate\Translation\TranslationServiceProvider',
+		'Illuminate\Validation\ValidationServiceProvider',
+		'Illuminate\View\ViewServiceProvider',
+		'Illuminate\Workbench\WorkbenchServiceProvider',
+
+	),
+
+	/*
+	|--------------------------------------------------------------------------
+	| Service Provider Manifest
+	|--------------------------------------------------------------------------
+	|
+	| The service provider manifest is used by Laravel to lazy load service
+	| providers which are not needed for each request, as well to keep a
+	| list of all of the services. Here, you may set its storage spot.
+	|
+	*/
+
+	'manifest' => storage_path().'/meta',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Class Aliases
+	|--------------------------------------------------------------------------
+	|
+	| This array of class aliases will be registered when this application
+	| is started. However, feel free to register as many as you wish as
+	| the aliases are "lazy" loaded so they don't hinder performance.
+	|
+	*/
+
+	'aliases' => array(
+
+		'App'             => 'Illuminate\Support\Facades\App',
+		'Artisan'         => 'Illuminate\Support\Facades\Artisan',
+		'Auth'            => 'Illuminate\Support\Facades\Auth',
+		'Blade'           => 'Illuminate\Support\Facades\Blade',
+		'Cache'           => 'Illuminate\Support\Facades\Cache',
+		'ClassLoader'     => 'Illuminate\Support\ClassLoader',
+		'Config'          => 'Illuminate\Support\Facades\Config',
+		'Controller'      => 'Illuminate\Routing\Controllers\Controller',
+		'Cookie'          => 'Illuminate\Support\Facades\Cookie',
+		'Crypt'           => 'Illuminate\Support\Facades\Crypt',
+		'DB'              => 'Illuminate\Support\Facades\DB',
+		'Eloquent'        => 'Illuminate\Database\Eloquent\Model',
+		'Event'           => 'Illuminate\Support\Facades\Event',
+		'File'            => 'Illuminate\Support\Facades\File',
+		'Form'            => 'Illuminate\Support\Facades\Form',
+		'Hash'            => 'Illuminate\Support\Facades\Hash',
+		'HTML'            => 'Illuminate\Support\Facades\HTML',
+		'Input'           => 'Illuminate\Support\Facades\Input',
+		'Lang'            => 'Illuminate\Support\Facades\Lang',
+		'Log'             => 'Illuminate\Support\Facades\Log',
+		'Mail'            => 'Illuminate\Support\Facades\Mail',
+		'Paginator'       => 'Illuminate\Support\Facades\Paginator',
+		'Password'        => 'Illuminate\Support\Facades\Password',
+		'Queue'           => 'Illuminate\Support\Facades\Queue',
+		'Redirect'        => 'Illuminate\Support\Facades\Redirect',
+		'Redis'           => 'Illuminate\Support\Facades\Redis',
+		'Request'         => 'Illuminate\Support\Facades\Request',
+		'Response'        => 'Illuminate\Support\Facades\Response',
+		'Route'           => 'Illuminate\Support\Facades\Route',
+		'Schema'          => 'Illuminate\Support\Facades\Schema',
+		'Seeder'          => 'Illuminate\Database\Seeder',
+		'Session'         => 'Illuminate\Support\Facades\Session',
+		'Str'             => 'Illuminate\Support\Str',
+		'URL'             => 'Illuminate\Support\Facades\URL',
+		'Validator'       => 'Illuminate\Support\Facades\Validator',
+		'View'            => 'Illuminate\Support\Facades\View',
+
+	),
+
+);

+ 67 - 0
app/config/auth.php

@@ -0,0 +1,67 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Authentication Driver
+	|--------------------------------------------------------------------------
+	|
+	| This option controls the authentication driver that will be utilized.
+	| This drivers manages the retrieval and authentication of the users
+	| attempting to get access to protected areas of your application.
+	|
+	| Supported: "database", "eloquent"
+	|
+	*/
+
+	'driver' => 'eloquent',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Authentication Model
+	|--------------------------------------------------------------------------
+	|
+	| When using the "Eloquent" authentication driver, we need to know which
+	| Eloquent model should be used to retrieve your users. Of course, it
+	| is often just the "User" model but you may use whatever you like.
+	|
+	*/
+
+	'model' => 'User',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Authentication Table
+	|--------------------------------------------------------------------------
+	|
+	| When using the "Database" authentication driver, we need to know which
+	| table should be used to retrieve your users. We have chosen a basic
+	| default value but you may easily change it to any table you like.
+	|
+	*/
+
+	'table' => 'users',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Password Reminder Settings
+	|--------------------------------------------------------------------------
+	|
+	| Here you may set the settings for password reminders, including a view
+	| that should be used as your password reminder e-mail. You will also
+	| be able to set the name of the table that holds the reset tokens.
+	|
+	*/
+
+	'reminder' => array(
+
+		'email' => 'emails.auth.reminder',
+
+		'table' => 'password_reminders',
+
+		'expire' => 60,
+
+	),
+
+);

+ 89 - 0
app/config/cache.php

@@ -0,0 +1,89 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Cache Driver
+	|--------------------------------------------------------------------------
+	|
+	| This option controls the default cache "driver" that will be used when
+	| using the Caching library. Of course, you may use other drivers any
+	| time you wish. This is the default when another is not specified.
+	|
+	| Supported: "file", "database", "apc", "memcached", "redis", "array"
+	|
+	*/
+
+	'driver' => 'file',
+
+	/*
+	|--------------------------------------------------------------------------
+	| File Cache Location
+	|--------------------------------------------------------------------------
+	|
+	| When using the "file" cache driver, we need a location where the cache
+	| files may be stored. A sensible default has been specified, but you
+	| are free to change it to any other place on disk that you desire.
+	|
+	*/
+
+	'path' => storage_path().'/cache',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Database Cache Connection
+	|--------------------------------------------------------------------------
+	|
+	| When using the "database" cache driver you may specify the connection
+	| that should be used to store the cached items. When this option is
+	| null the default database connection will be utilized for cache.
+	|
+	*/
+
+	'connection' => null,
+
+	/*
+	|--------------------------------------------------------------------------
+	| Database Cache Table
+	|--------------------------------------------------------------------------
+	|
+	| When using the "database" cache driver we need to know the table that
+	| should be used to store the cached items. A default table name has
+	| been provided but you're free to change it however you deem fit.
+	|
+	*/
+
+	'table' => 'cache',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Memcached Servers
+	|--------------------------------------------------------------------------
+	|
+	| Now you may specify an array of your Memcached servers that should be
+	| used when utilizing the Memcached cache driver. All of the servers
+	| should contain a value for "host", "port", and "weight" options.
+	|
+	*/
+
+	'memcached' => array(
+
+		array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100),
+
+	),
+
+	/*
+	|--------------------------------------------------------------------------
+	| Cache Key Prefix
+	|--------------------------------------------------------------------------
+	|
+	| When utilizing a RAM based store such as APC or Memcached, there might
+	| be other applications utilizing the same cache. So, we'll specify a
+	| value to get prefixed to all our keys so we can avoid collisions.
+	|
+	*/
+
+	'prefix' => 'laravel',
+
+);

+ 18 - 0
app/config/compile.php

@@ -0,0 +1,18 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Additional Compiled Classes
+	|--------------------------------------------------------------------------
+	|
+	| Here you may specify additional classes to include in the compiled file
+	| generated by the `artisan optimize` command. These should be classes
+	| that are included on basically every request into the application.
+	|
+	*/
+
+
+
+);

+ 124 - 0
app/config/database.php

@@ -0,0 +1,124 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| PDO Fetch Style
+	|--------------------------------------------------------------------------
+	|
+	| By default, database results will be returned as instances of the PHP
+	| stdClass object; however, you may desire to retrieve records in an
+	| array format for simplicity. Here you can tweak the fetch style.
+	|
+	*/
+
+	'fetch' => PDO::FETCH_CLASS,
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Database Connection Name
+	|--------------------------------------------------------------------------
+	|
+	| Here you may specify which of the database connections below you wish
+	| to use as your default connection for all database work. Of course
+	| you may use many connections at once using the Database library.
+	|
+	*/
+
+	'default' => 'mysql',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Database Connections
+	|--------------------------------------------------------------------------
+	|
+	| Here are each of the database connections setup for your application.
+	| Of course, examples of configuring each database platform that is
+	| supported by Laravel is shown below to make development simple.
+	|
+	|
+	| All database work in Laravel is done through the PHP PDO facilities
+	| so make sure you have the driver for your particular database of
+	| choice installed on your machine before you begin development.
+	|
+	*/
+
+	'connections' => array(
+
+		'sqlite' => array(
+			'driver'   => 'sqlite',
+			'database' => __DIR__.'/../database/production.sqlite',
+			'prefix'   => '',
+		),
+
+		'mysql' => array(
+			'driver'    => 'mysql',
+			'host'      => 'localhost',
+			'database'  => 'dumbo',
+			'username'  => 'dumbo',
+			'password'  => 'WYAsHV5ju9zdbMm7',
+			'charset'   => 'utf8',
+			'collation' => 'utf8_unicode_ci',
+			'prefix'    => 'film_',
+		),
+
+		'pgsql' => array(
+			'driver'   => 'pgsql',
+			'host'     => 'localhost',
+			'database' => 'database',
+			'username' => 'root',
+			'password' => '',
+			'charset'  => 'utf8',
+			'prefix'   => '',
+			'schema'   => 'public',
+		),
+
+		'sqlsrv' => array(
+			'driver'   => 'sqlsrv',
+			'host'     => 'localhost',
+			'database' => 'database',
+			'username' => 'root',
+			'password' => '',
+			'prefix'   => '',
+		),
+
+	),
+
+	/*
+	|--------------------------------------------------------------------------
+	| Migration Repository Table
+	|--------------------------------------------------------------------------
+	|
+	| This table keeps track of all the migrations that have already run for
+	| your application. Using this information, we can determine which of
+	| the migrations on disk have not actually be run in the databases.
+	|
+	*/
+
+	'migrations' => 'migrations',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Redis Databases
+	|--------------------------------------------------------------------------
+	|
+	| Redis is an open source, fast, and advanced key-value store that also
+	| provides a richer set of commands than a typical key-value systems
+	| such as APC or Memcached. Laravel makes it easy to dig right in.
+	|
+	*/
+
+	'redis' => array(
+
+		'cluster' => true,
+
+		'default' => array(
+			'host'     => '127.0.0.1',
+			'port'     => 6379,
+			'database' => 0,
+		),
+
+	),
+
+);

+ 124 - 0
app/config/mail.php

@@ -0,0 +1,124 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Mail Driver
+	|--------------------------------------------------------------------------
+	|
+	| Laravel supports both SMTP and PHP's "mail" function as drivers for the
+	| sending of e-mail. You may specify which one you're using throughout
+	| your application here. By default, Laravel is setup for SMTP mail.
+	|
+	| Supported: "smtp", "mail", "sendmail"
+	|
+	*/
+
+	'driver' => 'smtp',
+
+	/*
+	|--------------------------------------------------------------------------
+	| SMTP Host Address
+	|--------------------------------------------------------------------------
+	|
+	| Here you may provide the host address of the SMTP server used by your
+	| applications. A default option is provided that is compatible with
+	| the Postmark mail service, which will provide reliable delivery.
+	|
+	*/
+
+	'host' => 'smtp.mailgun.org',
+
+	/*
+	|--------------------------------------------------------------------------
+	| SMTP Host Port
+	|--------------------------------------------------------------------------
+	|
+	| This is the SMTP port used by your application to delivery e-mails to
+	| users of your application. Like the host we have set this value to
+	| stay compatible with the Postmark e-mail application by default.
+	|
+	*/
+
+	'port' => 587,
+
+	/*
+	|--------------------------------------------------------------------------
+	| Global "From" Address
+	|--------------------------------------------------------------------------
+	|
+	| You may wish for all e-mails sent by your application to be sent from
+	| the same address. Here, you may specify a name and address that is
+	| used globally for all e-mails that are sent by your application.
+	|
+	*/
+
+	'from' => array('address' => null, 'name' => null),
+
+	/*
+	|--------------------------------------------------------------------------
+	| E-Mail Encryption Protocol
+	|--------------------------------------------------------------------------
+	|
+	| Here you may specify the encryption protocol that should be used when
+	| the application send e-mail messages. A sensible default using the
+	| transport layer security protocol should provide great security.
+	|
+	*/
+
+	'encryption' => 'tls',
+
+	/*
+	|--------------------------------------------------------------------------
+	| SMTP Server Username
+	|--------------------------------------------------------------------------
+	|
+	| If your SMTP server requires a username for authentication, you should
+	| set it here. This will get used to authenticate with your server on
+	| connection. You may also set the "password" value below this one.
+	|
+	*/
+
+	'username' => null,
+
+	/*
+	|--------------------------------------------------------------------------
+	| SMTP Server Password
+	|--------------------------------------------------------------------------
+	|
+	| Here you may set the password required by your SMTP server to send out
+	| messages from your application. This will be given to the server on
+	| connection so that the application will be able to send messages.
+	|
+	*/
+
+	'password' => null,
+
+	/*
+	|--------------------------------------------------------------------------
+	| Sendmail System Path
+	|--------------------------------------------------------------------------
+	|
+	| When using the "sendmail" driver to send e-mails, we will need to know
+	| the path to where Sendmail lives on this server. A default path has
+	| been provided here, which will work well on most of your systems.
+	|
+	*/
+
+	'sendmail' => '/usr/sbin/sendmail -bs',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Mail "Pretend"
+	|--------------------------------------------------------------------------
+	|
+	| When this option is enabled, e-mail will not actually be sent over the
+	| web and will instead be written to your application's logs files so
+	| you may inspect the message. This is great for local development.
+	|
+	*/
+
+	'pretend' => false,
+
+);

+ 0 - 0
app/config/packages/.gitkeep


+ 60 - 0
app/config/queue.php

@@ -0,0 +1,60 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Queue Driver
+	|--------------------------------------------------------------------------
+	|
+	| The Laravel queue API supports a variety of back-ends via an unified
+	| API, giving you convenient access to each back-end using the same
+	| syntax for each one. Here you may set the default queue driver.
+	|
+	| Supported: "sync", "beanstalkd", "sqs", "iron"
+	|
+	*/
+
+	'default' => 'sync',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Queue Connections
+	|--------------------------------------------------------------------------
+	|
+	| Here you may configure the connection information for each server that
+	| is used by your application. A default configuration has been added
+	| for each back-end shipped with Laravel. You are free to add more.
+	|
+	*/
+
+	'connections' => array(
+
+		'sync' => array(
+			'driver' => 'sync',
+		),
+
+		'beanstalkd' => array(
+			'driver' => 'beanstalkd',
+			'host'   => 'localhost',
+			'queue'  => 'default',
+		),
+
+		'sqs' => array(
+			'driver' => 'sqs',
+			'key'    => 'your-public-key',
+			'secret' => 'your-secret-key',
+			'queue'  => 'your-queue-url',
+			'region' => 'us-east-1',
+		),
+
+		'iron' => array(
+			'driver'  => 'iron',
+			'project' => 'your-project-id',
+			'token'   => 'your-token',
+			'queue'   => 'your-queue-name',
+		),
+
+	),
+
+);

+ 125 - 0
app/config/session.php

@@ -0,0 +1,125 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Session Driver
+	|--------------------------------------------------------------------------
+	|
+	| This option controls the default session "driver" that will be used on
+	| requests. By default, we will use the lightweight native driver but
+	| you may specify any of the other wonderful drivers provided here.
+	|
+	| Supported: "native", "cookie", "database", "apc",
+	|            "memcached", "redis", "array"
+	|
+	*/
+
+	'driver' => 'native',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session Lifetime
+	|--------------------------------------------------------------------------
+	|
+	| Here you may specify the number of minutes that you wish the session
+	| to be allowed to remain idle for it is expired. If you want them
+	| to immediately expire when the browser closes, set it to zero.
+	|
+	*/
+
+	'lifetime' => 120,
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session File Location
+	|--------------------------------------------------------------------------
+	|
+	| When using the native session driver, we need a location where session
+	| files may be stored. A default has been set for you but a different
+	| location may be specified. This is only needed for file sessions.
+	|
+	*/
+
+	'files' => storage_path().'/sessions',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session Database Connection
+	|--------------------------------------------------------------------------
+	|
+	| When using the "database" session driver, you may specify the database
+	| connection that should be used to manage your sessions. This should
+	| correspond to a connection in your "database" configuration file.
+	|
+	*/
+
+	'connection' => null,
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session Database Table
+	|--------------------------------------------------------------------------
+	|
+	| When using the "database" session driver, you may specify the table we
+	| should use to manage the sessions. Of course, a sensible default is
+	| provided for you; however, you are free to change this as needed.
+	|
+	*/
+
+	'table' => 'sessions',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session Sweeping Lottery
+	|--------------------------------------------------------------------------
+	|
+	| Some session drivers must manually sweep their storage location to get
+	| rid of old sessions from storage. Here are the chances that it will
+	| happen on a given request. By default, the odds are 2 out of 100.
+	|
+	*/
+
+	'lottery' => array(2, 100),
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session Cookie Name
+	|--------------------------------------------------------------------------
+	|
+	| Here you may change the name of the cookie used to identify a session
+	| instance by ID. The name specified here will get used every time a
+	| new session cookie is created by the framework for every driver.
+	|
+	*/
+
+	'cookie' => 'laravel_session',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session Cookie Path
+	|--------------------------------------------------------------------------
+	|
+	| The session cookie path determines the path for which the cookie will
+	| be regarded as available. Typically, this will be the root path of
+	| your application but you are free to change this when necessary.
+	|
+	*/
+
+	'path' => '/',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Session Cookie Domain
+	|--------------------------------------------------------------------------
+	|
+	| Here you may change the domain of the cookie used to identify a session
+	| in your application. This will determine which domains the cookie is
+	| available to in your application. A sensible default has been set.
+	|
+	*/
+
+	'domain' => null,
+
+);

+ 20 - 0
app/config/testing/cache.php

@@ -0,0 +1,20 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Cache Driver
+	|--------------------------------------------------------------------------
+	|
+	| This option controls the default cache "driver" that will be used when
+	| using the Caching library. Of course, you may use other drivers any
+	| time you wish. This is the default when another is not specified.
+	|
+	| Supported: "file", "database", "apc", "memcached", "redis", "array"
+	|
+	*/
+
+	'driver' => 'array',
+
+);

+ 21 - 0
app/config/testing/session.php

@@ -0,0 +1,21 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Session Driver
+	|--------------------------------------------------------------------------
+	|
+	| This option controls the default session "driver" that will be used on
+	| requests. By default, we will use the lightweight native driver but
+	| you may specify any of the other wonderful drivers provided here.
+	|
+	| Supported: "native", "cookie", "database", "apc",
+	|            "memcached", "redis", "array"
+	|
+	*/
+
+	'driver' => 'array',
+
+);

+ 31 - 0
app/config/view.php

@@ -0,0 +1,31 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| View Storage Paths
+	|--------------------------------------------------------------------------
+	|
+	| Most templating systems load templates from disk. Here you may specify
+	| an array of paths that should be checked for your views. Of course
+	| the usual Laravel view path has already been registered for you.
+	|
+	*/
+
+	'paths' => array(__DIR__.'/../views'),
+
+	/*
+	|--------------------------------------------------------------------------
+	| Pagination View
+	|--------------------------------------------------------------------------
+	|
+	| This view will be used to render the pagination link output, and can
+	| be easily customized here to show any view you like. A clean view
+	| compatible with Twitter's Bootstrap is given to you by default.
+	|
+	*/
+
+	'pagination' => 'pagination::slider',
+
+);

+ 31 - 0
app/config/workbench.php

@@ -0,0 +1,31 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Workbench Author Name
+	|--------------------------------------------------------------------------
+	|
+	| When you create new packages via the Artisan "workbench" command your
+	| name is needed to generate the composer.json file for your package.
+	| You may specify it now so it is used for all of your workbenches.
+	|
+	*/
+
+	'name' => '',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Workbench Author E-Mail Address
+	|--------------------------------------------------------------------------
+	|
+	| Like the option above, your e-mail address is used when generating new
+	| workbench packages. The e-mail is placed in your composer.json file
+	| automatically after the package is created by the workbench tool.
+	|
+	*/
+
+	'email' => '',
+
+);

+ 0 - 0
app/controllers/.gitkeep


+ 18 - 0
app/controllers/BaseController.php

@@ -0,0 +1,18 @@
+<?php
+
+class BaseController extends Controller {
+
+	/**
+	 * Setup the layout used by the controller.
+	 *
+	 * @return void
+	 */
+	protected function setupLayout()
+	{
+		if ( ! is_null($this->layout))
+		{
+			$this->layout = View::make($this->layout);
+		}
+	}
+
+}

+ 23 - 0
app/controllers/HomeController.php

@@ -0,0 +1,23 @@
+<?php
+
+class HomeController extends BaseController {
+
+	/*
+	|--------------------------------------------------------------------------
+	| Default Home Controller
+	|--------------------------------------------------------------------------
+	|
+	| You may wish to use controllers instead of, or in addition to, Closure
+	| based routes. That's great! Here is an example controller method to
+	| get you started. To route to this controller, just add the route:
+	|
+	|	Route::get('/', 'HomeController@showWelcome');
+	|
+	*/
+
+	public function showWelcome()
+	{
+		return View::make('hello');
+	}
+
+}

+ 0 - 0
app/database/migrations/.gitkeep


+ 0 - 0
app/database/production.sqlite


+ 0 - 0
app/database/seeds/.gitkeep


+ 17 - 0
app/database/seeds/DatabaseSeeder.php

@@ -0,0 +1,17 @@
+<?php
+
+class DatabaseSeeder extends Seeder {
+
+	/**
+	 * Run the database seeds.
+	 *
+	 * @return void
+	 */
+	public function run()
+	{
+		Eloquent::unguard();
+
+		// $this->call('UserTableSeeder');
+	}
+
+}

+ 80 - 0
app/filters.php

@@ -0,0 +1,80 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Application & Route Filters
+|--------------------------------------------------------------------------
+|
+| Below you will find the "before" and "after" events for the application
+| which may be used to do any work before or after a request into your
+| application. Here you may also register your custom route filters.
+|
+*/
+
+App::before(function($request)
+{
+	//
+});
+
+
+App::after(function($request, $response)
+{
+	//
+});
+
+/*
+|--------------------------------------------------------------------------
+| Authentication Filters
+|--------------------------------------------------------------------------
+|
+| The following filters are used to verify that the user of the current
+| session is logged into this application. The "basic" filter easily
+| integrates HTTP Basic authentication for quick, simple checking.
+|
+*/
+
+Route::filter('auth', function()
+{
+	if (Auth::guest()) return Redirect::guest('login');
+});
+
+
+Route::filter('auth.basic', function()
+{
+	return Auth::basic();
+});
+
+/*
+|--------------------------------------------------------------------------
+| Guest Filter
+|--------------------------------------------------------------------------
+|
+| The "guest" filter is the counterpart of the authentication filters as
+| it simply checks that the current user is not logged in. A redirect
+| response will be issued if they are, which you may freely change.
+|
+*/
+
+Route::filter('guest', function()
+{
+	if (Auth::check()) return Redirect::to('/');
+});
+
+/*
+|--------------------------------------------------------------------------
+| CSRF Protection Filter
+|--------------------------------------------------------------------------
+|
+| The CSRF filter is responsible for protecting your application against
+| cross-site request forgery attacks. If this special token in a user
+| session does not match the one given in this request, we'll bail.
+|
+*/
+
+Route::filter('csrf', function()
+{
+	if (Session::token() != Input::get('_token'))
+	{
+		throw new Illuminate\Session\TokenMismatchException;
+	}
+});

+ 20 - 0
app/lang/en/pagination.php

@@ -0,0 +1,20 @@
+<?php 
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Pagination Language Lines
+	|--------------------------------------------------------------------------
+	|
+	| The following language lines are used by the paginator library to build
+	| the simple pagination links. You are free to change them to anything
+	| you want to customize your views to better match your application.
+	|
+	*/
+
+	'previous' => '&laquo; Previous',
+
+	'next'     => 'Next &raquo;',
+
+);

+ 22 - 0
app/lang/en/reminders.php

@@ -0,0 +1,22 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Password Reminder Language Lines
+	|--------------------------------------------------------------------------
+	|
+	| The following language lines are the default lines which match reasons
+	| that are given by the password broker for a password update attempt
+	| has failed, such as for an invalid token or invalid new password.
+	|
+	*/
+
+	"password" => "Passwords must be six characters and match the confirmation.",
+
+	"user"     => "We can't find a user with that e-mail address.",
+
+	"token"    => "This password reset token is invalid.",
+
+);

+ 98 - 0
app/lang/en/validation.php

@@ -0,0 +1,98 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Validation Language Lines
+	|--------------------------------------------------------------------------
+	|
+	| The following language lines contain the default error messages used by
+	| the validator class. Some of these rules have multiple versions such
+	| such as the size rules. Feel free to tweak each of these messages.
+	|
+	*/
+
+	"accepted"         => "The :attribute must be accepted.",
+	"active_url"       => "The :attribute is not a valid URL.",
+	"after"            => "The :attribute must be a date after :date.",
+	"alpha"            => "The :attribute may only contain letters.",
+	"alpha_dash"       => "The :attribute may only contain letters, numbers, and dashes.",
+	"alpha_num"        => "The :attribute may only contain letters and numbers.",
+	"array"            => "The :attribute must be an array.",
+	"before"           => "The :attribute must be a date before :date.",
+	"between"          => array(
+		"numeric" => "The :attribute must be between :min - :max.",
+		"file"    => "The :attribute must be between :min - :max kilobytes.",
+		"string"  => "The :attribute must be between :min - :max characters.",
+		"array"   => "The :attribute must have between :min - :max items.",
+	),
+	"confirmed"        => "The :attribute confirmation does not match.",
+	"date"             => "The :attribute is not a valid date.",
+	"date_format"      => "The :attribute does not match the format :format.",
+	"different"        => "The :attribute and :other must be different.",
+	"digits"           => "The :attribute must be :digits digits.",
+	"digits_between"   => "The :attribute must be between :min and :max digits.",
+	"email"            => "The :attribute format is invalid.",
+	"exists"           => "The selected :attribute is invalid.",
+	"image"            => "The :attribute must be an image.",
+	"in"               => "The selected :attribute is invalid.",
+	"integer"          => "The :attribute must be an integer.",
+	"ip"               => "The :attribute must be a valid IP address.",
+	"max"              => array(
+		"numeric" => "The :attribute may not be greater than :max.",
+		"file"    => "The :attribute may not be greater than :max kilobytes.",
+		"string"  => "The :attribute may not be greater than :max characters.",
+		"array"   => "The :attribute may not have more than :max items.",
+	),
+	"mimes"            => "The :attribute must be a file of type: :values.",
+	"min"              => array(
+		"numeric" => "The :attribute must be at least :min.",
+		"file"    => "The :attribute must be at least :min kilobytes.",
+		"string"  => "The :attribute must be at least :min characters.",
+		"array"   => "The :attribute must have at least :min items.",
+	),
+	"not_in"           => "The selected :attribute is invalid.",
+	"numeric"          => "The :attribute must be a number.",
+	"regex"            => "The :attribute format is invalid.",
+	"required"         => "The :attribute field is required.",
+	"required_if"      => "The :attribute field is required when :other is :value.",
+	"required_with"    => "The :attribute field is required when :values is present.",
+	"required_without" => "The :attribute field is required when :values is not present.",
+	"same"             => "The :attribute and :other must match.",
+	"size"             => array(
+		"numeric" => "The :attribute must be :size.",
+		"file"    => "The :attribute must be :size kilobytes.",
+		"string"  => "The :attribute must be :size characters.",
+		"array"   => "The :attribute must contain :size items.",
+	),
+	"unique"           => "The :attribute has already been taken.",
+	"url"              => "The :attribute format is invalid.",
+
+	/*
+	|--------------------------------------------------------------------------
+	| Custom Validation Language Lines
+	|--------------------------------------------------------------------------
+	|
+	| Here you may specify custom validation messages for attributes using the
+	| convention "attribute.rule" to name the lines. This makes it quick to
+	| specify a specific custom language line for a given attribute rule.
+	|
+	*/
+
+	'custom' => array(),
+
+	/*
+	|--------------------------------------------------------------------------
+	| Custom Validation Attributes
+	|--------------------------------------------------------------------------
+	|
+	| The following language lines are used to swap attribute place-holders
+	| with something more reader friendly such as E-Mail Address instead
+	| of "email". This simply helps us make messages a little cleaner.
+	|
+	*/
+
+	'attributes' => array(),
+
+);

+ 52 - 0
app/models/User.php

@@ -0,0 +1,52 @@
+<?php
+
+use Illuminate\Auth\UserInterface;
+use Illuminate\Auth\Reminders\RemindableInterface;
+
+class User extends Eloquent implements UserInterface, RemindableInterface {
+
+	/**
+	 * The database table used by the model.
+	 *
+	 * @var string
+	 */
+	protected $table = 'users';
+
+	/**
+	 * The attributes excluded from the model's JSON form.
+	 *
+	 * @var array
+	 */
+	protected $hidden = array('password');
+
+	/**
+	 * Get the unique identifier for the user.
+	 *
+	 * @return mixed
+	 */
+	public function getAuthIdentifier()
+	{
+		return $this->getKey();
+	}
+
+	/**
+	 * Get the password for the user.
+	 *
+	 * @return string
+	 */
+	public function getAuthPassword()
+	{
+		return $this->password;
+	}
+
+	/**
+	 * Get the e-mail address where password reminders are sent.
+	 *
+	 * @return string
+	 */
+	public function getReminderEmail()
+	{
+		return $this->email;
+	}
+
+}

+ 17 - 0
app/routes.php

@@ -0,0 +1,17 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Application Routes
+|--------------------------------------------------------------------------
+|
+| Here is where you can register all of the routes for an application.
+| It's a breeze. Simply tell Laravel the URIs it should respond to
+| and give it the Closure to execute when that URI is requested.
+|
+*/
+
+Route::get('/', function()
+{
+	return View::make('hello');
+});

+ 13 - 0
app/start/artisan.php

@@ -0,0 +1,13 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Register The Artisan Commands
+|--------------------------------------------------------------------------
+|
+| Each available Artisan command must be registered with the console so
+| that it is available to be called. We'll register every command so
+| the console gets access to each of the command object instances.
+|
+*/
+

+ 83 - 0
app/start/global.php

@@ -0,0 +1,83 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Register The Laravel Class Loader
+|--------------------------------------------------------------------------
+|
+| In addition to using Composer, you may use the Laravel class loader to
+| load your controllers and models. This is useful for keeping all of
+| your classes in the "global" namespace without Composer updating.
+|
+*/
+
+ClassLoader::addDirectories(array(
+
+	app_path().'/commands',
+	app_path().'/controllers',
+	app_path().'/models',
+	app_path().'/database/seeds',
+
+));
+
+/*
+|--------------------------------------------------------------------------
+| Application Error Logger
+|--------------------------------------------------------------------------
+|
+| Here we will configure the error logger setup for the application which
+| is built on top of the wonderful Monolog library. By default we will
+| build a rotating log file setup which creates a new file each day.
+|
+*/
+
+$logFile = 'log-'.php_sapi_name().'.txt';
+
+Log::useDailyFiles(storage_path().'/logs/'.$logFile);
+
+/*
+|--------------------------------------------------------------------------
+| Application Error Handler
+|--------------------------------------------------------------------------
+|
+| Here you may handle any errors that occur in your application, including
+| logging them or displaying custom views for specific errors. You may
+| even register several error handlers to handle different types of
+| exceptions. If nothing is returned, the default error view is
+| shown, which includes a detailed stack trace during debug.
+|
+*/
+
+App::error(function(Exception $exception, $code)
+{
+	Log::error($exception);
+});
+
+/*
+|--------------------------------------------------------------------------
+| Maintenance Mode Handler
+|--------------------------------------------------------------------------
+|
+| The "down" Artisan command gives you the ability to put an application
+| into maintenance mode. Here, you will define what is displayed back
+| to the user if maintenace mode is in effect for this application.
+|
+*/
+
+App::down(function()
+{
+	return Response::make("Be right back!", 503);
+});
+
+/*
+|--------------------------------------------------------------------------
+| Require The Filters File
+|--------------------------------------------------------------------------
+|
+| Next we will load the filters file for the application. This gives us
+| a nice separate location to store our route and application filter
+| definitions instead of putting them all in the main routes file.
+|
+*/
+
+require app_path().'/filters.php';

+ 3 - 0
app/start/local.php

@@ -0,0 +1,3 @@
+<?php
+
+ //

+ 1 - 0
app/storage/.gitignore

@@ -0,0 +1 @@
+services.manifest

+ 2 - 0
app/storage/cache/.gitignore

@@ -0,0 +1,2 @@
+*
+!.gitignore

+ 2 - 0
app/storage/logs/.gitignore

@@ -0,0 +1,2 @@
+*
+!.gitignore

+ 2 - 0
app/storage/meta/.gitignore

@@ -0,0 +1,2 @@
+*
+!.gitignore

+ 2 - 0
app/storage/sessions/.gitignore

@@ -0,0 +1,2 @@
+*
+!.gitignore

+ 2 - 0
app/storage/views/.gitignore

@@ -0,0 +1,2 @@
+*
+!.gitignore

+ 17 - 0
app/tests/ExampleTest.php

@@ -0,0 +1,17 @@
+<?php
+
+class ExampleTest extends TestCase {
+
+	/**
+	 * A basic functional test example.
+	 *
+	 * @return void
+	 */
+	public function testBasicExample()
+	{
+		$crawler = $this->client->request('GET', '/');
+
+		$this->assertTrue($this->client->getResponse()->isOk());
+	}
+
+}

+ 19 - 0
app/tests/TestCase.php

@@ -0,0 +1,19 @@
+<?php
+
+class TestCase extends Illuminate\Foundation\Testing\TestCase {
+
+	/**
+	 * Creates the application.
+	 *
+	 * @return Symfony\Component\HttpKernel\HttpKernelInterface
+	 */
+	public function createApplication()
+	{
+		$unitTesting = true;
+
+		$testEnvironment = 'testing';
+
+		return require __DIR__.'/../../bootstrap/start.php';
+	}
+
+}

+ 13 - 0
app/views/emails/auth/reminder.blade.php

@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en-US">
+	<head>
+		<meta charset="utf-8">
+	</head>
+	<body>
+		<h2>Password Reset</h2>
+
+		<div>
+			To reset your password, complete this form: {{ URL::to('password/reset', array($token)) }}.
+		</div>
+	</body>
+</html>

+ 46 - 0
app/views/hello.blade.php

@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang="de">
+<head>
+	<meta charset="utf-8">
+	<title>Filmabend-Planer</title>
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<link href="{{ asset('css/bootstrap.css') }}" type="text/css" rel="stylesheet">
+	<link href="{{ asset('css/general.css') }}" type="text/css" rel="stylesheet">
+	@yield('styles')
+</head>
+<body><div id="wrap">
+    <div class="navbar navbar-inverse navbar-static-top" role="navigation">
+	    <div class="container">
+    		<div class="navbar-header">
+		    	<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+			    	<span class="icon-bar"></span>
+				    <span class="icon-bar"></span>
+				    <span class="icon-bar"></span>
+			    </button>
+			    {{ HTML::link('/', 'Dumbo', array("class" => "navbar-brand")) }}
+			</div>     
+		    <div class="navbar-collapse collapse">
+				<ul class="nav navbar-nav">
+					<li>{{ HTML::link('/', 'Vorschläge') }}</li>
+					<li>{{ HTML::link('/', 'Liste') }}</li>
+				</ul>
+		    </div>
+	    </div>
+    </div>
+
+<div class="container" id="content">
+	@yield('content')
+</div>
+<div id="push"></div>
+</div>
+<footer id="footer">
+	<div class="container">
+		<hr>
+		<small>&copy; 2013 &mdash; Daniel M&uuml;llers</small>
+	</div>
+</footer>
+
+<script type="text/javascript" src="{{ asset('js/jquery-2.0.3.min.js') }}"></script>
+<script type="text/javascript" src="{{ asset('js/bootstrap.min.js') }}"></script>
+</body>
+</html>

+ 74 - 0
artisan

@@ -0,0 +1,74 @@
+#!/usr/bin/env php
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Register The Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader
+| for our application. We just need to utilize it! We'll require it
+| into the script here so that we do not have to worry about the
+| loading of any our classes "manually". Feels great to relax.
+|
+*/
+
+require __DIR__.'/bootstrap/autoload.php';
+
+/*
+|--------------------------------------------------------------------------
+| Turn On The Lights
+|--------------------------------------------------------------------------
+|
+| We need to illuminate PHP development, so let's turn on the lights.
+| This bootstrap the framework and gets it ready for use, then it
+| will load up this application so that we can run it and send
+| the responses back to the browser and delight these users.
+|
+*/
+
+$app = require_once __DIR__.'/bootstrap/start.php';
+
+$app->boot();
+
+/*
+|--------------------------------------------------------------------------
+| Load The Artisan Console Application
+|--------------------------------------------------------------------------
+|
+| We'll need to run the script to load and return the Artisan console
+| application. We keep this in its own script so that we will load
+| the console application independent of running commands which
+| will allow us to fire commands from Routes when we want to.
+|
+*/
+
+$artisan = Illuminate\Console\Application::start($app);
+
+/*
+|--------------------------------------------------------------------------
+| Run The Artisan Application
+|--------------------------------------------------------------------------
+|
+| When we run the console application, the current CLI command will be
+| executed in this console and the response sent back to a terminal
+| or another output device for the developers. Here goes nothing!
+|
+*/
+
+$status = $artisan->run();
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running. We will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$app->shutdown();
+
+exit($status);

+ 75 - 0
bootstrap/autoload.php

@@ -0,0 +1,75 @@
+<?php
+
+define('LARAVEL_START', microtime(true));
+
+/*
+|--------------------------------------------------------------------------
+| Register The Composer Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader
+| for our application. We just need to utilize it! We'll require it
+| into the script here so that we do not have to worry about the
+| loading of any our classes "manually". Feels great to relax.
+|
+*/
+
+require __DIR__.'/../vendor/autoload.php';
+
+/*
+|--------------------------------------------------------------------------
+| Include The Compiled Class File
+|--------------------------------------------------------------------------
+|
+| To dramatically increase your application's performance, you may use a
+| compiled class file which contains all of the classes commonly used
+| by a request. The Artisan "optimize" is used to create this file.
+|
+*/
+
+if (file_exists($compiled = __DIR__.'/compiled.php'))
+{
+	require $compiled;
+}
+
+/*
+|--------------------------------------------------------------------------
+| Setup Patchwork UTF-8 Handling
+|--------------------------------------------------------------------------
+|
+| The Patchwork library provides solid handling of UTF-8 strings as well
+| as provides replacements for all mb_* and iconv type functions that
+| are not available by default in PHP. We'll setup this stuff here.
+|
+*/
+
+Patchwork\Utf8\Bootup::initMbstring();
+
+/*
+|--------------------------------------------------------------------------
+| Register The Laravel Auto Loader
+|--------------------------------------------------------------------------
+|
+| We register an auto-loader "behind" the Composer loader that can load
+| model classes on the fly, even if the autoload files have not been
+| regenerated for the application. We'll add it to the stack here.
+|
+*/
+
+Illuminate\Support\ClassLoader::register();
+
+/*
+|--------------------------------------------------------------------------
+| Register The Workbench Loaders
+|--------------------------------------------------------------------------
+|
+| The Laravel workbench provides a convenient place to develop packages
+| when working locally. However we will need to load in the Composer
+| auto-load files for the packages so that these can be used here.
+|
+*/
+
+if (is_dir($workbench = __DIR__.'/../workbench'))
+{
+	Illuminate\Workbench\Starter::start($workbench);
+}

+ 57 - 0
bootstrap/paths.php

@@ -0,0 +1,57 @@
+<?php
+
+return array(
+
+	/*
+	|--------------------------------------------------------------------------
+	| Application Path
+	|--------------------------------------------------------------------------
+	|
+	| Here we just defined the path to the application directory. Most likely
+	| you will never need to change this value as the default setup should
+	| work perfectly fine for the vast majority of all our applications.
+	|
+	*/
+
+	'app' => __DIR__.'/../app',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Public Path
+	|--------------------------------------------------------------------------
+	|
+	| The public path contains the assets for your web application, such as
+	| your JavaScript and CSS files, and also contains the primary entry
+	| point for web requests into these applications from the outside.
+	|
+	*/
+
+	'public' => __DIR__.'/../public',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Base Path
+	|--------------------------------------------------------------------------
+	|
+	| The base path is the root of the Laravel installation. Most likely you
+	| will not need to change this value. But, if for some wild reason it
+	| is necessary you will do so here, just proceed with some caution.
+	|
+	*/
+
+	'base' => __DIR__.'/..',
+
+	/*
+	|--------------------------------------------------------------------------
+	| Storage Path
+	|--------------------------------------------------------------------------
+	|
+	| The storage path is used by Laravel to store cached Blade views, logs
+	| and other pieces of information. You may modify the path here when
+	| you want to change the location of this directory for your apps.
+	|
+	*/
+
+	'storage' => __DIR__.'/../app/storage',
+
+);

+ 74 - 0
bootstrap/start.php

@@ -0,0 +1,74 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Create The Application
+|--------------------------------------------------------------------------
+|
+| The first thing we will do is create a new Laravel application instance
+| which serves as the "glue" for all the components of Laravel, and is
+| the IoC container for the system binding all of the various parts.
+|
+*/
+
+$app = new Illuminate\Foundation\Application;
+
+$app->redirectIfTrailingSlash();
+
+/*
+|--------------------------------------------------------------------------
+| Detect The Application Environment
+|--------------------------------------------------------------------------
+|
+| Laravel takes a dead simple approach to your application environments
+| so you can just specify a machine name or HTTP host that matches a
+| given environment, then we will automatically detect it for you.
+|
+*/
+
+$env = $app->detectEnvironment(array(
+
+	'local' => array('your-machine-name'),
+
+));
+
+/*
+|--------------------------------------------------------------------------
+| Bind Paths
+|--------------------------------------------------------------------------
+|
+| Here we are binding the paths configured in paths.php to the app. You
+| should not be changing these here. If you need to change these you
+| may do so within the paths.php file and they will be bound here.
+|
+*/
+
+$app->bindInstallPaths(require __DIR__.'/paths.php');
+
+/*
+|--------------------------------------------------------------------------
+| Load The Application
+|--------------------------------------------------------------------------
+|
+| Here we will load the Illuminate application. We'll keep this is in a
+| separate location so we can isolate the creation of an application
+| from the actual running of the application with a given request.
+|
+*/
+
+$framework = $app['path.base'].'/vendor/laravel/framework/src';
+
+require $framework.'/Illuminate/Foundation/start.php';
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;

+ 36 - 0
composer.json

@@ -0,0 +1,36 @@
+{
+	"name": "laravel/laravel",
+	"description": "The Laravel Framework.",
+	"keywords": ["framework", "laravel"],
+	"require": {
+		"laravel/framework": "4.0.*"
+	},
+	"autoload": {
+		"classmap": [
+			"app/commands",
+			"app/controllers",
+			"app/models",
+			"app/database/migrations",
+			"app/database/seeds",
+			"app/tests/TestCase.php"
+		]
+	},
+	"scripts": {
+		"post-install-cmd": [
+			"php artisan optimize"
+		],
+		"pre-update-cmd": [
+			"php artisan clear-compiled"
+		],
+		"post-update-cmd": [
+			"php artisan optimize"
+		],
+		"post-create-project-cmd": [
+			"php artisan key:generate"
+		]
+	},
+	"config": {
+		"preferred-install": "dist"
+	},
+	"minimum-stability": "dev"
+}

+ 18 - 0
phpunit.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="false"
+         backupStaticAttributes="false"
+         bootstrap="bootstrap/autoload.php"
+         colors="true"
+         convertErrorsToExceptions="true"
+         convertNoticesToExceptions="true"
+         convertWarningsToExceptions="true"
+         processIsolation="false"
+         stopOnFailure="false"
+         syntaxCheck="false"
+>
+    <testsuites>
+        <testsuite name="Application Test Suite">
+            <directory>./app/tests/</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>

+ 8 - 0
public/.htaccess

@@ -0,0 +1,8 @@
+<IfModule mod_rewrite.c>
+    Options -MultiViews
+    RewriteEngine On
+
+	RewriteCond %{REQUEST_FILENAME} !-d
+    RewriteCond %{REQUEST_FILENAME} !-f
+    RewriteRule ^ index.php [L]
+</IfModule>

BIN
public/bootstrap-3.0.0-dist.zip


File diff suppressed because it is too large
+ 6805 - 0
public/css/bootstrap-default.css


+ 384 - 0
public/css/bootstrap-theme.css

@@ -0,0 +1,384 @@
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn:active,
+.btn.active {
+  background-image: none;
+}
+
+.btn-default {
+  text-shadow: 0 1px 0 #fff;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#e6e6e6));
+  background-image: -webkit-linear-gradient(top, #ffffff, 0%, #e6e6e6, 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #e6e6e6 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #e6e6e6 100%);
+  background-repeat: repeat-x;
+  border-color: #e0e0e0;
+  border-color: #ccc;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
+}
+
+.btn-default:active,
+.btn-default.active {
+  background-color: #e6e6e6;
+  border-color: #e0e0e0;
+}
+
+.btn-primary {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9));
+  background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%);
+  background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
+  background-repeat: repeat-x;
+  border-color: #2d6ca2;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+}
+
+.btn-primary:active,
+.btn-primary.active {
+  background-color: #3071a9;
+  border-color: #2d6ca2;
+}
+
+.btn-success {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44));
+  background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%);
+  background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+  background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+  background-repeat: repeat-x;
+  border-color: #419641;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+}
+
+.btn-success:active,
+.btn-success.active {
+  background-color: #449d44;
+  border-color: #419641;
+}
+
+.btn-warning {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f));
+  background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%);
+  background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+  background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+  background-repeat: repeat-x;
+  border-color: #eb9316;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+}
+
+.btn-warning:active,
+.btn-warning.active {
+  background-color: #ec971f;
+  border-color: #eb9316;
+}
+
+.btn-danger {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c));
+  background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%);
+  background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+  background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+  background-repeat: repeat-x;
+  border-color: #c12e2a;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+}
+
+.btn-danger:active,
+.btn-danger.active {
+  background-color: #c9302c;
+  border-color: #c12e2a;
+}
+
+.btn-info {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5));
+  background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%);
+  background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+  background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+  background-repeat: repeat-x;
+  border-color: #2aabd2;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+}
+
+.btn-info:active,
+.btn-info.active {
+  background-color: #31b0d5;
+  border-color: #2aabd2;
+}
+
+.thumbnail,
+.img-thumbnail {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus,
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  background-color: #357ebd;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
+  background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%);
+  background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+}
+
+.navbar {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8));
+  background-image: -webkit-linear-gradient(top, #ffffff, 0%, #f8f8f8, 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
+  background-repeat: repeat-x;
+  border-radius: 4px;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+}
+
+.navbar .navbar-nav > .active > a {
+  background-color: #f8f8f8;
+}
+
+.navbar-brand,
+.navbar-nav > li > a {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
+}
+
+.navbar-inverse {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222));
+  background-image: -webkit-linear-gradient(top, #3c3c3c, 0%, #222222, 100%);
+  background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%);
+  background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
+}
+
+.navbar-inverse .navbar-nav > .active > a {
+  background-color: #222222;
+}
+
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  border-radius: 0;
+}
+
+.alert {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.alert-success {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc));
+  background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #c8e5bc, 100%);
+  background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+  background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+  background-repeat: repeat-x;
+  border-color: #b2dba1;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
+}
+
+.alert-info {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0));
+  background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #b9def0, 100%);
+  background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+  background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+  background-repeat: repeat-x;
+  border-color: #9acfea;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
+}
+
+.alert-warning {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0));
+  background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #f8efc0, 100%);
+  background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+  background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+  background-repeat: repeat-x;
+  border-color: #f5e79e;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
+}
+
+.alert-danger {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3));
+  background-image: -webkit-linear-gradient(top, #f2dede, 0%, #e7c3c3, 100%);
+  background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+  background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+  background-repeat: repeat-x;
+  border-color: #dca7a7;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
+}
+
+.progress {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5));
+  background-image: -webkit-linear-gradient(top, #ebebeb, 0%, #f5f5f5, 100%);
+  background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+  background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
+}
+
+.progress-bar {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9));
+  background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%);
+  background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+}
+
+.progress-bar-success {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44));
+  background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%);
+  background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+  background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+}
+
+.progress-bar-info {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5));
+  background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%);
+  background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+  background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+}
+
+.progress-bar-warning {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f));
+  background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%);
+  background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+  background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+}
+
+.progress-bar-danger {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c));
+  background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%);
+  background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+  background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+}
+
+.list-group {
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  text-shadow: 0 -1px 0 #3071a9;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3));
+  background-image: -webkit-linear-gradient(top, #428bca, 0%, #3278b3, 100%);
+  background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
+  background-repeat: repeat-x;
+  border-color: #3278b3;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
+}
+
+.panel {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.panel-default > .panel-heading {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8));
+  background-image: -webkit-linear-gradient(top, #f5f5f5, 0%, #e8e8e8, 100%);
+  background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+}
+
+.panel-primary > .panel-heading {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
+  background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%);
+  background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
+  background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+}
+
+.panel-success > .panel-heading {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6));
+  background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #d0e9c6, 100%);
+  background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+  background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
+}
+
+.panel-info > .panel-heading {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3));
+  background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #c4e3f3, 100%);
+  background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+  background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
+}
+
+.panel-warning > .panel-heading {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc));
+  background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #faf2cc, 100%);
+  background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+  background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
+}
+
+.panel-danger > .panel-heading {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc));
+  background-image: -webkit-linear-gradient(top, #f2dede, 0%, #ebcccc, 100%);
+  background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+  background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
+}
+
+.well {
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5));
+  background-image: -webkit-linear-gradient(top, #e8e8e8, 0%, #f5f5f5, 100%);
+  background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+  background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+  background-repeat: repeat-x;
+  border-color: #dcdcdc;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
+  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+          box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+}

File diff suppressed because it is too large
+ 1 - 0
public/css/bootstrap-theme.min.css


File diff suppressed because it is too large
+ 7376 - 0
public/css/bootstrap.css


File diff suppressed because it is too large
+ 9 - 0
public/css/bootstrap.min.css


+ 44 - 0
public/css/general.css

@@ -0,0 +1,44 @@
+/**
+ * Generelles CSS für LCARS.
+ * @author Daniel
+ */
+
+html, body {
+	height: 100%;
+}
+
+#wrap {
+	min-height: 100%;
+	height: auto !important;
+	height: 100%;
+	margin: 0 auto -80px;
+}
+
+#footer, #push {
+	height: 80px;
+}
+
+#footer {
+	background-color: cccccc;
+}
+
+@media (max-width: 767px) {
+	#footer {
+	  margin-left: -20px;
+	  margin-right: -20px;
+	  padding-left: 20px;
+	  padding-right: 20px;
+	}
+}
+
+#content {
+	margin-top: 40px;
+}
+
+.annotation {
+	margin-top: 5px;
+	font-size: smaller;
+	font-color: 666;
+	font-style: italic;
+}
+

+ 0 - 0
public/favicon.ico


BIN
public/fonts/glyphicons-halflings-regular.eot


File diff suppressed because it is too large
+ 228 - 0
public/fonts/glyphicons-halflings-regular.svg


BIN
public/fonts/glyphicons-halflings-regular.ttf


BIN
public/fonts/glyphicons-halflings-regular.woff


+ 62 - 0
public/index.php

@@ -0,0 +1,62 @@
+<?php
+/**
+ * Laravel - A PHP Framework For Web Artisans
+ *
+ * @package  Laravel
+ * @author   Taylor Otwell <taylorotwell@gmail.com>
+ */
+
+/*
+|--------------------------------------------------------------------------
+| Register The Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader
+| for our application. We just need to utilize it! We'll require it
+| into the script here so that we do not have to worry about the
+| loading of any our classes "manually". Feels great to relax.
+|
+*/
+
+require __DIR__.'/../bootstrap/autoload.php';
+
+/*
+|--------------------------------------------------------------------------
+| Turn On The Lights
+|--------------------------------------------------------------------------
+|
+| We need to illuminate PHP development, so let's turn on the lights.
+| This bootstraps the framework and gets it ready for use, then it
+| will load up this application so that we can run it and send
+| the responses back to the browser and delight these users.
+|
+*/
+
+$app = require_once __DIR__.'/../bootstrap/start.php';
+
+/*
+|--------------------------------------------------------------------------
+| Run The Application
+|--------------------------------------------------------------------------
+|
+| Once we have the application, we can simply call the run method,
+| which will execute the request and send the response back to
+| the client's browser allowing them to enjoy the creative
+| and wonderful applications we have created for them.
+|
+*/
+
+$app->run();
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once the app has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$app->shutdown();

File diff suppressed because it is too large
+ 1999 - 0
public/js/bootstrap.js


File diff suppressed because it is too large
+ 6 - 0
public/js/bootstrap.min.js


File diff suppressed because it is too large
+ 6 - 0
public/js/jquery-2.0.3.min.js


+ 0 - 0
public/packages/.gitkeep


+ 2 - 0
public/robots.txt

@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: 

BIN
public/v3.0.0.zip


+ 21 - 0
readme.md

@@ -0,0 +1,21 @@
+## Laravel PHP Framework
+
+[![Latest Stable Version](https://poser.pugx.org/laravel/framework/version.png)](https://packagist.org/packages/laravel/framework) [![Total Downloads](https://poser.pugx.org/laravel/framework/d/total.png)](https://packagist.org/packages/laravel/framework) [![Build Status](https://travis-ci.org/laravel/framework.png)](https://travis-ci.org/laravel/framework)
+
+Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.
+
+Laravel aims to make the development process a pleasing one for the developer without sacrificing application functionality. Happy developers make the best code. To this end, we've attempted to combine the very best of what we have seen in other web frameworks, including frameworks implemented in other languages, such as Ruby on Rails, ASP.NET MVC, and Sinatra.
+
+Laravel is accessible, yet powerful, providing powerful tools needed for large, robust applications. A superb inversion of control container, expressive migration system, and tightly integrated unit testing support give you the tools you need to build any application with which you are tasked.
+
+## Official Documentation
+
+Documentation for the entire framework can be found on the [Laravel website](http://laravel.com/docs).
+
+### Contributing To Laravel
+
+**All issues and pull requests should be filed on the [laravel/framework](http://github.com/laravel/framework) repository.**
+
+### License
+
+The Laravel framework is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)

+ 19 - 0
server.php

@@ -0,0 +1,19 @@
+<?php
+
+$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
+
+$uri = urldecode($uri);
+
+$paths = require __DIR__.'/bootstrap/paths.php';
+
+$requested = $paths['public'].$uri;
+
+// This file allows us to emulate Apache's "mod_rewrite" functionality from the
+// built-in PHP web server. This provides a convenient way to test a Laravel
+// application without having installed a "real" web server software here.
+if ($uri !== '/' and file_exists($requested))
+{
+	return false;
+}
+
+require_once $paths['public'].'/index.php';