Giter Club home page Giter Club logo

rit-magic-dh-prototypes's Introduction

RIT MAGIC Digital Humanities Prototypes

A collection of prototypes developed for RIT's MAGIC Center to test ways to display and collect digital humanities information.

Investigation and analysis of different platforms for the display of digital humanities information with temporal and spatial data (timelines and maps) and the collection of digital humanities information from users. Platforms investigated include HistoryPin, Omeka, and Google Tour Builder.

A webapp designed to collect responses and files relating to users' recollections of their experiences on September 11th, 2001.

Other small modules developed which could be used in a digital humanities webapp.

rit-magic-dh-prototypes's People

Contributors

faokryn avatar

Watchers

James Cloos avatar  avatar

rit-magic-dh-prototypes's Issues

Drag-and-drop Reorder Module

Create a new module that allows a user to drag and drop images into whatever order they would like, then, upon pressing a button, display the order data.

This module could be used to ask users in what order, chronologically, they believe a set of photos were taken, and submit this data to an app.

This will be included with Other Modules.

Edit Button on File Displays

Add an Edit button to the file displays in the Collective Memory homepage form.

Clicking such an edit button should re-open the add file modal, but filled with the data from the hidden form inputs for the associated file.

Trouble so far has been caused by the file input. For security reasons, the value of file inputs cannot be copied. To circumvent this, the code moves the file input DOM element from the hidden form to the modal when opening the modal, and back when closing it. The problem occurs when a user clicks the edit button (opening the modal and moving the file input to the modal), changes the file, but then cancels the edit (returning the file input to the form). Because a single file input exists and is relocated in the DOM, rather than copying value, this changes the file even though the user cancelled the action. The previous value cannot be saved to be restored, because file inputs' values cannot be copied. One possible solution would be to implement the following behavior:

  • User clicks the edit button for file N (fN)
  • The values of all metadata inputs for fN are copied to their associated inputs in the modal
  • The text field of the modal's file input group is changed to display the file in fN
  • A new file input is created in the modal's file input group
  • An event handler is created to change the value of the text field of the modal's file input group when the new file input is changed
  • If the user saves the edit:
    • Delete the file input for fN
    • Move the new file input to the hidden form where the fN file input was previously
    • Add the appropriate name and id to the new file input ("fN-file")
    • Change the file display's text field to display the new file name
  • If the user cancel's the edit:
    • Delete the new file input
    • Make sure the file display's text field is the file name of fN

Also consider that the modal's title should be "Edit File" instead of "Add File", and the modal's primary button should be "Save" instead of "Add", when editing a file.

Also consider that moving data-file-id from the delete button to the display div containing the delete button and the edit button will allow both buttons to use the same data attribute and keep the code more DRY.

Replace "Location" Text Field with a Google Maps API Map in Add File Modal

Add a Google Maps API map to collect the file's location metadata in the add file modal of the Collective Memories homepage. This should look and function like the map already implemented in the main form of the Collective Memories homepage, but should not interfere with that map's function. As such, many parts of map.js may need to be refactored and made more generic.

This will require new hidden inputs for each file (i.e. "fN-location-lat" and "fN-location-lng") which will replace the "fN-location" text input. The database and submit.php must be modified to accept this new location format.

Investigate - Prepared Statements with No User Input

Currently, in submit.php, database queries that do not take user input still use prepared statements. Investigate:

  • Are prepared statements necessary for queries with no user input?
  • If not, is there any detriment (performance, standards) to using them anyway? Note always using them makes the code more uniform.
  • If so, what is the best way to perform queries with no user input?

After investigation, if a better solution is discovered, implement that solution.

Handle Arbitrary Number of File Uploads Based on MAX_FILES

Currently, fileCollection.js contains a constant, MAX_FILES, set to 5 by default. However, both the Collective Memory homepage and submit.php expect there to be a maximum of 5 files. Handle up to an arbitrary number of files based on MAX_FILES in fileCollection.js. This will require:

  • Generating MAX_FILES hidden file input groups in the Collective Memory homepage form, preferably via fileCollection.js
  • Generating MAX_FILES input display groups in the Collective Memory homepage form, preferably via fileCollection.js
  • Passing MAX_FILES to submit.php
  • Handling checking up to MAX_FILES file submissions and adding them to the database appropriately in submit.php (Note that in the current implementation, submitted files' may not be in numeric order. e.g. file 2 may be submitted even if file 1 is not)

Files should be given the identifiers "f1" through "f[MAX_FILES]" for consistency. That includes names and ids in the Collective Memory homepage (f1-file, f1-title, etc.) and variable names in submit.php.

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.