Coder Social home page Coder Social logo

kelvinikome / webumenia.sk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from slovaknationalgallery/webumenia.sk

0.0 1.0 0.0 37.57 MB

an online collection platform to explore digitised art collections from galleries and museums

Home Page: https://www.webumenia.sk

License: MIT License

PHP 27.87% CSS 10.68% JavaScript 45.03% HTML 16.39% Dockerfile 0.02% Shell 0.01% TypeScript 0.01%

webumenia.sk's Introduction

Welcome

Build Status License: MIT

Web umenia is an open platform to explore digitized art collections from public galleries and museums.

Web umenia is developed by lab.SNG: the digital R&D lab of the Slovak National Gallery. We are working with public art organisations to make their art accessible and explorable online so curious people around the world can learn more about works of art and the context they've been created in.

Web umenia offers a user-friendly way to search and explore art from collections of multiple galleries and museums.

Digital reproductions of public domain artworks from several collections are available for download in high resolution for both personal and commercial use

Art organisation with digitized artworks organised in a Collection Management System can easily publish their art via CSV imports or OAI-PMH harvests. If you would like to know more about using Web umenia in your organisation, contact us via [email protected]

Developers interested to build applications on top of Web umenia can use our API. See our wiki on GitHub for more info.

Contributing

We greatly encourage others to get involved! See our contributing guidelines for more info about different ways to contribute to Web umenia.

We are committed to providing a welcoming and inspiring community for all and expect others who participate in the project to honour our code of conduct.

Tech setup

Requirements

This software is built with the Laravel5 framework.

It requires

  • PHP 5.5.9+
  • MySQL
  • Elasticsearch

Local Installation

Here are the steps for installation on a local machine.

  1. Clone this repository.
    [email protected]:SlovakNationalGallery/web-umenia-2.git webumenia/
    cd webumenia/
    
  2. Setup database in your favourite database editor. set:
    • db name
    • username
    • password
  3. Configure access to your database in /app/config/database.php
  4. Set .env file. you can copy values from .env.example
  5. Run composer install to fulfil required libraries.
  6. Make sure elasticsearch is running. you can set the index name in app/config/app.php
  7. Run migrations to setup the database with php artisan migrate --seed
  8. Start your queue listener and setup the Laravel scheduler (optional)

Local Installation with Docker

This requires docker-compose these steps will set up a linked system of 4 containers: web service (nginx webserver) php service (contains our application code) database container -- CAVEAT: don't use 'root' user for db, .env.example has sample username / password when you first build the stack the mysql dockerfile builds a new database and creates a specific user with which web_umenia accesses the db, which is as it should be. You may still access the db as 'root' yourself through elasticsearch container that will communicate internally with one another

  1. Clone this repository.
    [email protected]:SlovakNationalGallery/web-umenia-2.git webumenia/
    cd webumenia/
    
  2. create a .env file (you can use the included env.example as a base)
  3. build the whole stack (mysql, elasticsearch, laravel php app + nginx server) with docker-compose:
    docker-compose build
    
    the first time you do this it will take a while, a lot of different components need to be fetched from remote servers. Be patient, subsequent builds won't take nearly as long. 3.5 - choose a database - you can set $DB_DATABASE in the environment and switch between different variants by editing that variable.
  4. start the app
    docker-compose up
    
    or
    docker-compose up -d
    
    to run it in the background. (In this case you can watch the output of a component like this: docker-compose logs -f php)
  5. install dependencies
    docker-compose exec php composer install --no-plugins --no-scripts --no-interaction
    
  6. run migrations
    docker-compose exec php php artisan migrate --seed
    
  7. setup elasticsearch
    docker-compose exec php php artisan es:setup
    
  8. visit http://localhost:8080 in your browser to have a look

to stop the dockerized application: docker-compose down

Running tests

Create .env.testing file (you can use the included .env.testing.example as a base) and run:

The local way:

php vendor/bin/phpunit

The Docker way:

docker-compose -f docker-compose.yml -f docker-compose.test.yml run php

Harvesting Data

You can now fill artworks by adding them manually or importing using the "spice harvester" (harvests using OAI-PMH protocol) using php artisan oai-pmh:harvest and choosing to harvest 1 [item] Europeana SNG. Or login to admin at http://yourlocalhost/admin using default credentials admin/admin and go to Import -> Spice Harvester -> Spustiť.

IIPImage

This application uses IIPImage server for zoomable (and downloadable) images.

IIPImage must be seen locally, what can be achieved using a ProxyForwarding.

To enable image server for default oai set (Europeana), put this lines of code into your virtualhost setup:

ProxyPass /fcgi-bin/iipsrv.fcgi http://imi.sng.cust.eea.sk/publicIS/fcgi-bin/iipsrv.fcgi

ProxyPassReverse /fcgi-bin/iipsrv.fcgi http://imi.sng.cust.eea.sk/publicIS/fcgi-bin/iipsrv.fcgi

Setting up Elastic Search

  • info about the files and plugins can be found in the separated README
  • command to generate ES2 compatible index: php artisan es:setup
  • command to reindex data to the index php artisan es:reindex

Style Compilation (LESS)

We use LESS to compile styles imported into a main file into a single CSS file:

lessc public/css/less/style.less public/css/style.css --clean-css

For a better developer experience, use less-watch-compiler to watch a directory for changes and automatically compile LESS into CSS. Thanks to the config file less-watch-compiler.config.json all you have to run (from root dir) is:

less-watch-compiler

Maintainer

This project is maintained by lab.SNG. If you have any questions please don't hesitate to ask them by creating an issue or email us at [email protected].

License

Source code in this repository is licensed under the MIT license. Please see the License File for more information.

webumenia.sk's People

Contributors

igor-kamil avatar phivk avatar rastislav-chynoransky avatar crawdaddie avatar ustengrav avatar laravel-shift avatar martin-havala avatar eronisko avatar kyslik avatar mcudrnak avatar npmcdn-to-unpkg-bot avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.