Procedure

Based on the requirements for this project, we have decided to implement a web app for our solution. By using a web app, our product will be usable on almost any OS platform. Using a web app will also give us access to all of the powerful web libraries that exist; like Openlayers, Node JS and Web Frameworks like Flask. Using a web app for our solution, means we will need to include ISIS with our app installation. ISIS is currently only available on Unix systems (Linux, OSX, etc.). To avoid alienating Windows users, we decided to use Docker as our installation method. Docker is a virtual “container” that acts like a virtual machine. With Docker, we plan to install linux (Ubuntu), and ISIS as well as our web app. This allows us to effectively install and run ISIS on Non Windows systems. To host our web app, we need to host it on a local server. To accomplish this, we are going to use the Flask framework. Flask, offers a wide array of tutorials and seems to be more beginner friendly than some of its alternatives. It also has extensive documentation and all of our team members know python. Finally our web app has to have the following functionality:

  • Upload .cub images
  • Crop .cub images
  • Extract metadata from .cub images
  • Add graphics to image based on extracted Metadata
  • Export metadata in CSV format and also in a specialized template used in publications


To implement this functionality with our web app, we plan on using base Flask and python for setting up the foundation of the web app. For implementing functionality of cropping and exporting of an image, we plan on using the Openlayers library. This treats base images as a “map”. Map images can be easily cropped and exported to a number of formats. Because Openlayers is used for maps, it can also take into account more complex map phenomenon, like shortening a scale bar when close to a pole. In summary, our solution will include the following:

  • A Docker container that includes:
    • Ubuntu installed
    • A Flask web server hosting our front facing web app
    • ISIS
  • A front facing web app with all functionality outlined above