Community development
Main Page > Community > Community/Community resources > Community/Community resources/Development
In this section of the wiki, we'll add links to custom patches, plugins, themes, images, forks, and other resources developed by community users and publicly available for developers to explore and work with.
Tip
Have you developed custom code for your AtoM installation? Let us know! And... why not consider contributing your code to the public project? That way, we maintain the code for you through future releases, and the entire community benefits from your work! Here are some links to get you started:
CENDARI Shibboleth authentication plugin
CENDARI (Collaborative European Digital Archive Infrastructure) is a research collaboration aimed at integrating digital archives and resources for research on medieval and modern European history. They have chosen AtoM for use as their collaborative Archival Directory (site here, more information here), and have done some custom development, including a plugin to integrate with Shibboleth, an "open-source project that provides Single Sign-On capabilities and allows sites to make informed authorization decisions for individual access of protected online resources in a privacy-preserving manner."
The plugin was developed against AtoM 2.1, and has not yet been tested with other releases. The development was done by Carsten Thiel, primarily between November and December of 2014.
PeaceWorks MAID plugins
In March of 2015, PeaceWorks Technology Solutions helped to launch MAID (Mennonite Archival Image Database), a collaborative project of the Mennonite Historical Society of Canada which includes Mennonite archival partners in British Columbia, Alberta, Saskatchewan, Manitoba, and Ontario, with images held in a shared AtoM instance. Over the course of the 2-year design and development project leading up to the launch, PeaceWorks developed several custom features and plugins for use in MAID, including an eCommerce "shopping cart" plugin for purchasing prints of images available in MAID; an image carousel for the home page; integration with TinyMCE to add a WYSIWYG set of editing tools to AtoM's static pages (e.g. so users did not need to know basic HTML to style static pages); and the ability to upload a different watermark (to be applied to digital object derivatives) for each institution. More details on each below.
eCommerce plugin
This plugin has been developed by Jason Hildebrand of PeaceWorks Technology Solutions, primarily between July 2014 and March 2015.
According to the plugin documentation's Overview section, "This plugin allows website visitors to select and purchase individual photos. Payment for the photos happens via PayPal. E-Commerce admins review each order and may approve or reject (remove) photos from the order. After approval, the customer is sent an email containing a link which they can use to download the image(s).
Users have access to a shopping cart, where photos from multiple repositories can be added as users browse the site, and then ordered/checked out via PayPal. The shopping cart has basic integration with AtoM's PREMIS rights module, so when Dissemination = "Disallow," a message about restrictions is supplied instead. Other features include a vacation setting and a sales report.
- PeaceWorks GitHub AtoM fork, eCommerce branch
- eCommerce plugin documentation
- MAID, where you can see the shopping cart in action
Home page carousel plugin
This plugin has been developed by Jason Hildebrand of PeaceWorks Technology Solutions, primarily between July 2014 and March 2015.
This plugin adds a slideshow to the AtoM front page which displays up to 30 of the most recently added/updated photos in the system. Photos and their captions (if available) are displayed. Users may click a photo to go to its archival description.
- PeaceWorks GitHub AtoM fork, Carousel branch
- Carousel README documentation
- MAID homepage, where you can see the carousel in action
TinyMCE visual editor integration for editing static pages
This integration has been developed by Jason Hildebrand of PeaceWorks Technology Solutions, primarily between April 2014 and March 2015. At this time, this integration has not been packaged as a plugin.
TinyMCE is " a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL," that, when integrated with AtoM, allows users unfamiliar with HTML to style static pages using familiar buttons, tools, and other user interface elements. The integration includes basic text styling (bold, underline, italics), table creation, image and file upload, link creation, and more.
Per-institution watermarks for digital objects
This integration has been developed by Jason Hildebrand of PeaceWorks Technology Solutions, between July 2014 and March 2015 (primarily in July 2014). At this time, this integration has not been packaged as a plugin.
AtoM includes the little-known ability to apply a watermark to uploaded photos. However there is only provision for a single global watermark which is applied to all images. This customization allows each institution to have their own watermark, and institutional watermarks can be uploaded and managed via the user interface, in the archival institution's "Edit theme" page. Uploading a new watermark will not affect photos already present in AtoM, but AtoM does provide a way for a developer to cause all watermarks to be re-applied (see “Regenerating Derivatives” in the Command-line tools section of the Administrator's Manual of the AtoM documentation for more details).
- Peaceworks GitHub AtoM fork, multiple-watermarks branch
- the commit with the changes
- Multiple watermarks README documentation
Docker and AtoM
Two different community developers have combined AtoM with Docker, an open, container-based virtualization platform for distributed applications. Details below.
AtoM Docker Image
Created by Pedro "Ammo" Amorim (@ammopt), this is a Docker image for AtoM 2.1.2, and registered in Docker Hub, a hosted registry service for Docker images. The developer notes: "This is a fresh install for AtoM - Acess to memory 2.1.2. It does not contain MySql server and no linking is required, just set the remote host in installation."
AtoM Docker Compose recipe
Created by John Fink (@jbfink), this is a Docker Compose recipe for AtoM. Compose is described by Docker as "a tool for defining and running multi-container applications with Docker. With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running."
The developer adds, "Note that I've only tested this on 64bit native Linux using Docker directly, so if you're using boot2docker or a VM things might be different." For further configuration information and troubleshooting, see the README provided.
- [ Docker Compose recipe for AtoM - GitHub repository]
- README file for configuration and troubleshooting
- Related AtoM User Forum thread