Giter Site home page Giter Site logo

ariadne-portal's Introduction

#ARIADNE Portal

The ARIADNE Portal is a web application bases on Laravel. It's main purpose is to offer access to the ARIADNE catalog data provided through Elasticsearch.

##Setup for development

###Install composer https://getcomposer.org Follow install instructions for your operating system

###Setup Clone this repo from GitHub Create local config file Make a copy of .env.example and name it .env Edit .env in a text editor, update info about elastic search etc.

###Install vendor libraries via composer navigate to the root folder of the project (where composer.json is located) run:

composer install

Libraries used by the portal will now be downloaded, this could take a while The libraries will be downloaded into the directory called “vendor”, this directory is ignored in the file .gitignore If you have project files from your IDE in the same folder as the source code, add these to .gitignore

###Compile JS and CSS files

Gulp is used to compile SCSS into CSS files and to combine and minify all JavaScript files. Before deployment gulp has to be run:

npm install
bower install
gulp

For Windows:

  1. Download node.js https://nodejs.org/en/download/
  2. Download python https://www.python.org/getit/windows/
  3. Run npm install -g node-gyp
  4. Run npm install
  5. Run npm install -g bower
  6. Run npm install -g gulp

###Run the portal during development To run the portal in PHP:s built in webserver:

php artisan serve

The portal will now be accessible via http://localhost:8000

To automatically recompile js and css files after changes

gulp watch

###Development setup with apache

Easiest way to do development is to create a virtual host (vhost). Example config:

<VirtualHost ariadne.laravel.localhost:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/Users/karl/ariadne-portal/public/"
	
	<Directory "C:/Users/karl/ariadne-portal/public/">
        Options Indexes FollowSymLinks Includes ExecCGI 
        Order allow,deny  
        Allow from all  
        AllowOverride All 
        AddDefaultCharset UTF-8
	</Directory>
	
    ServerName ariadne.laravel.localhost
    ErrorLog "logs/ariadne.laravel.localhost-error.log"
    CustomLog "logs/ariadne.laravel.localhost-access.log" common
</VirtualHost>

Observe the path of the directory, DocumentRoot should be the folder named public inside the project folder. Place this file in apaches vhost directory, be sure the line for loading the module vhost_alias_module and “Include conf/extra/httpd-vhosts.conf” is uncommented.

Next add an entry to your host file: (on windows C:\Windows\System32\Drivers\etc\hosts, mac: Open /Applications/Utilities/NetInfo Manager, linux: sudo nano /etc/hosts) ariadne.laravel.localhost 127.0.0.1

The portal should now be hosted via http://ariadne.laravel.localhost

###Distribution

In order to create a distribution package run:

gulp dist

##Deployment

The tar.gz package built with gulp dist - which can also be downloaded here - contains all files needed to run the application on a web server.

The contents of this package can be extracted and made available through any WebServer that supports PHP.

After extracting make sure that the variables in .env are set up for the particular environment.

Example configuration for Apache

    <VirtualHost *:80>
            ServerName portal.ariadne-infrastructure.eu
            ServerAlias ariadne-portal.dcu.gr
            DocumentRoot /var/www/ariadne-portal/public
            ServerAdmin webmaster@localhost
            Alias / "/var/www/ariadne-portal/public/"
            <Directory /var/www/ariadne-portal/public>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride All
                    Order allow,deny
                    allow from all
                    AddDefaultCharset UTF-8
            </Directory>
            ErrorLog ${APACHE_LOG_DIR}/ariadne-portal_error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

ariadne-portal's People

Contributors

borsna avatar danielmarreirosdeoliveira avatar janwieners avatar jfihn avatar scuy avatar tkleinke avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

eighttrigrams

ariadne-portal's Issues

Create a robots.txt

Until public announcement no page of the portal should be indexed by search engines.

Refined ranking

The ranking of search results should be refined.

One particular goal is to prevent resources from data providers with fewer items to get buried underneath other data.

Also it could make sense to boost certain fields, for example to rank resources higher whose titles match the query.

Subject landing page

A separate view for displaying details about a single subject should be implemented.

screen shot 2015-11-16 at 17 09 00

Cool URIs & content negotiation

The portal should be able to resolve the URIs defined in the Gothenburg meeting.

It was decided that the following schema should be implemented:

http://registry.ariadne-infrastructure.eu/resource/{id}
http://registry.ariadne-infrastructure.eu/page/{id} (html)
http://registry.ariadne-infrastructure.eu/data/{id} (xml)
http://registry.ariadne-infrastructure.eu/resource/{id}.json

http://registry.ariadne-infrastructure.eu/provider/resource/{id} 
http://registry.ariadne-infrastructure.eu/provider/page/{id}
http://registry.ariadne-infrastructure.eu/provider/data/{id}
http://registry.ariadne-infrastructure.eu/provider/resource/{id}.json

http://registry.ariadne-infrastructure.eu/subject/resource/{id}
http://registry.ariadne-infrastructure.eu/subject/page/{id}
http://registry.ariadne-infrastructure.eu/subject/data/{id}
http://registry.ariadne-infrastructure.eu/subject/resource/{id}.json

See also: http://www.w3.org/TR/cooluris/

Browse View: Timeline (When)

The timeline browse view should offer a way of navigating a search result or the whole catalog similar to the map browse view. It should display the distribution of resources in time and allow selecting a date range for starting or refining a search.

Similarly to the map view it should make use of aggregations that get refined when the user "zooms in".

screen shot 2015-11-16 at 17 01 48

Hierarchical query expansion based on AAT subjects

Elasticsearch could be configured as described in Ceri Bindings paper "Implementing hierarchical semantic expansion in ARIADNE".

Another possibility would be enrich the data with ancestor concepts before ingest into elasticsearch in MoRe.

Search result filters: Map

A map that displays the distribution of the current search results and allows filtering based on a bounding box.

Browse view: Subjects (What)

There should be a view that visualizes the distribution of different subjects in the catalog or a particular search result.

This view should include the AAT subjects, the languages and the data providers.

More flexible view for browsing similar resources

In addition to showing the context of the current in the sidebar on the resource landing page a separate full-page view could be implemented to allow fine-grained filtering of similar resources.

Better page titles

The portal should display more meaningful page titles in order to improve search engine visibility and to allow a better user experience when navigating the browser history.

Map on resource landing page contains marker for source resource

Auf Basis der location der angezeigten Resource wird eine geo distance gefilterte Query ausgeführt,
die die umliegenden Objekte aufliststet. Unter diesen befindet sich auch die location der originalen Resource, was derzeit nicht auffällt, da die originale
Resource später gezeichnet und Orange markiert wird.

IP ranges for elasticsearch

The access to the elasticsearch API should be restricted to localhost and certain IP address ranges.

If we find the time to set up local development instances of elasticsearch the access can be restricted to just localhost.

Hide types, make resource types more prominent

As discussed at the meeting in Vienna resource types should be the prominent category in the portal interface.

This means that the resource type should be the topmost facet and should also be the basis for the icons in the search result view.

The current types are technical details that should be hidden from the user.

Simplify distribution and deployment

Installing all the build tools (like npm, gulp, ...) on servers should be avoided and manually copying the files necessary for running the application can be a tedious task. Therefore a gulp task should be implemented that collects just the necessary files and packages them in an archive that can be copied and extracted for deployment.

Rename index types

The elasticsearch index will be restructured by dimitris. These changes should be reflected in the portal.

Use restructured index

After #33 is solved, the ariadne portal application has to be refactored to account for the new index structure.

Browse view: Better Heatmap (Where)

Investigate if it is possible to display a real heatmap instead of the boxes based on the existing geohash grid aggregation.

In order to be able start a search the user should be able to select a bounding box on the map.

Upgrade Laravel to 5.1

Simplifies the implementation of content negotiation (#23) since middleware can now receive parameters.

Icons for archaeological resource types

List of types to make icons for:

  • Fieldwork archives
  • Event/Intervention resources
  • Sites and monuments databases or inventories
  • Scientific datasets
  • Artefact databases or image collections
  • Burial databases

Filter map only shows places of current page

When the parameter page is present the filter map on the search results page only shows the places of the resources in the current page.

This can easily be fixed by resetting the page parameter in the query object before initialiazing the map.

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.