A bare-bones (work-in-progress) Laravel 4 app setup for Digital Humanities projects. This is not a completed app, just a skeleton with useful back- and front-end libraries, etc included. It won't do much out-of-the-box.
Delete the stuff you don't need to use.
##Requirements
- Meet the Laravel Requirements
- Have Composer installed (for managing the PHP dependencies)
- Have Bower installed (for managing the front-end dependencies)
- Install Grunt for managing the front-end build process
##Configuration:
- Run
composer install - Run
php artisan key:generateto generate a new application key - If using User Accounts, run
php artisan auth:remindersandphp artisan migrate - Fill in the details in
/app/config/author.php(and, optionally, the config files forgeo.phpandeuropeana.php) - Visit
/publicand runbower installto install the suggested Javascript packages (you need to have Bower installed)
##Routes
####Static Pages
View files for these can be found in /app/views/static
- /about
- /about/team
- /about/contact
- /about/development
Routes are also declared for
/docs(see DocReader section below)/api/v1- this route group is intended as a starting point for the app's API
##Resources
There's a basic catalogue resource declared in app/routes.php as a starting point for building an item catalogue.
Take a look at app/controllers/CatalogueController.php for its setup. There is a simple catalogue search, and a CSV import function included - you can configure the fields searched and imported in app/models/Catalogue.php.
View templates are in app/views/catalogue, with localisation options for headings, labels, etc held in app/lang/en/catalogue.php and app/lang/en/messages.php.
To set it up, run the database migration provided. You can optionally seed the database with a single test record, or import a CSV to seed the database (look at /app/database/seeds/CatalogueTableDataSeeder.php). Alter the migration schema and update the Catalogue model at app/models/Catalogue.php to extend it.
##Front-end related
There is some NUIG branding included (as this was created for NUIG projects) - you can delete that from the app/views/layout/layout_main.blade.php file if using for a non-NUIG project.
####LESS The skeleton uses LESS for stylesheets. You'll need to use a pre-processor on them to generate the CSS - (CodeKit and Prepos are worth a look)...or you can use Grunt (there's a GruntFile included). Large parts of the styling are built on Twitter Bootstrap 3.0.*
####JavaScript
It includes a number of JavaScript libraries at /public/js/bower_components/. Versions can be set/updated running bower install on /public/bower.json
- d3
d3/d3.min.js - jQuery
jquery/jquery.min.js - Leaflet.js
leaflet/dist/leaflet.js - Modernizr
modernizr/modernizr.js(there's a .min.js version, but that's created by CodeKit, and is not downloaded as part of the library)
To use Grunt, update /public/package.json and /public/Gruntfile.js as required, and run npm install in /public.
##External Components
###DocsReader
The documentation is handled by the integrated DocsReader which produces documentation from Markdown files. You can find the markdown source in /docs. (/docs/documentation.md contains the left side navigation).
##Recommended
###JSON-LD
If this JSON-LD Processor is included, the API will return compacted JSON-LD data. You will need to update the Context in /models/Catalogue.php to their correct Schema.org (or other) values.
If adding the Processor, you can put it in /app/helpers and require it in /app/start/global.php.
###Backups
Add the following to /composer.json
"heybigname/backup-manager": "dev-master",
"dropbox/dropbox-sdk": "dev-master"
...and follow the installation instructions in the project's GitHub Readme. For Dropbox backups, you can configure a new Dropbox App through the through the Dropbox Developer Portal.
###Other options Some other optional integrations are included in the NOTES.md file.