{"id":19147661,"url":"https://github.com/adamjarling/loc-speculative-annotations","last_synced_at":"2025-10-23T23:16:51.350Z","repository":{"id":49113706,"uuid":"319151452","full_name":"adamjarling/loc-speculative-annotations","owner":"adamjarling","description":"Library of Congress Labs, Artist in Residency program project.  Speculative Annotation.","archived":false,"fork":false,"pushed_at":"2021-07-28T16:42:02.000Z","size":145951,"stargazers_count":16,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T17:57:48.586Z","etag":null,"topics":["canvas","fabricjs","iiif","openseadragon","react"],"latest_commit_sha":null,"homepage":"https://nervous-gates-006218.netlify.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adamjarling.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-06T23:12:18.000Z","updated_at":"2024-12-30T12:08:09.000Z","dependencies_parsed_at":"2022-09-13T05:40:26.619Z","dependency_job_id":null,"html_url":"https://github.com/adamjarling/loc-speculative-annotations","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamjarling%2Floc-speculative-annotations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamjarling%2Floc-speculative-annotations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamjarling%2Floc-speculative-annotations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamjarling%2Floc-speculative-annotations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adamjarling","download_url":"https://codeload.github.com/adamjarling/loc-speculative-annotations/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252802444,"owners_count":21806503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canvas","fabricjs","iiif","openseadragon","react"],"created_at":"2024-11-09T07:51:04.417Z","updated_at":"2025-10-23T23:16:46.315Z","avatar_url":"https://github.com/adamjarling.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n*** Thanks for checking out the Best-README-Template. If you have a suggestion\n*** that would make this better, please fork the repo and create a pull request\n*** or simply open an issue with the tag \"enhancement\".\n*** Thanks again! Now go create something AMAZING! :D\n***\n***\n***\n*** To avoid retyping too much info. Do a search and replace for the following:\n*** github_username, repo_name, twitter_handle, email, project_title, project_description\n--\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n\n\u003c!--\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n--\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/adamjarling/loc-speculative-annotations\"\u003e\n    \u003cimg src=\"public/logo2.png\" alt=\"Logo\" width=\"534\" height=\"367\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n# Speculative Annotation\n\n  \u003c!-- \u003cp\u003e\n    \u003ca href=\"https://labs.loc.gov/work/experiments/annotation/?loclr=blogsig\"\u003e\u003cstrong\u003eMore info »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/adamjarling/loc-speculative-annotations\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/adamjarling/loc-speculative-annotations/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/adamjarling/loc-speculative-annotations/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e --\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails open=\"open\"\u003e\n  \u003csummary\u003e\u003ch2 style=\"display: inline-block\"\u003eTable of Contents\u003c/h2\u003e\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#demo\"\u003eDemo\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#running-the-application-locally\"\u003eRunning the application locally\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#styleguide\"\u003eStyleguide\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#source-images\"\u003eSource Images\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#selecting-items\"\u003eThings to Consider When Selecting Items for Annotation\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#librarian-annotations\"\u003eLibrarian Annnotations\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#iiif-manifests\"\u003eIIIF Manifests\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#custom-theme\"\u003eCustom Theme\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgements\"\u003eAcknowledgements\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About The Project\n\n**Speculative Annotation** is a dynamic website and public art project by Library of Congress Innovator in Residence Courtney McClellan. The tool presents a unique mini collection of Free to Use items from the Library of Congress for students, teachers, and users of all ages to annotate through captions, drawings, and other types of markmaking. Working with curators at the Library and students and teachers in the classroom, McClellan developed Speculative Annotation to provide a way for students to speak back to history.\n\nSpeculative Annotation connects items from the past with the day-to-day experience of users. It was made with a K-12 audience in mind, with the hope that primary sources from the Library’s collection will be used by educators. The items are shared with contextual aids including curator annotations and links to additional resources for further research on the Library’s website.\n\nThe experimental application will premier at the Library of Congress in the summer of 2021 at https://labs.loc.gov/work/experiments/. We hope that other cultural heritage organizations will use this open source tool with their own materials to spark engagement and dialogue with historical objects.\n\nVisit [Library of Congress Labs](https://labs.loc.gov/work/experiments/annotation/) for more information.\n\n\u003ca href=\"https://labs.loc.gov/\"\u003e\n  \u003cimg src=\"public/social-media-logos-Labs.svg\" alt=\"Logo\" style=\"height: 200px; width: auto;\" /\u003e\n\u003c/a\u003e\n\n### Demo\n\n[Test drive the application](https://nervous-gates-006218.netlify.app/)\n\nThe staging environment is currently hosted with [Netlify](https://www.netlify.com/), and builds are synced with Github pushes to https://github.com/adamjarling/loc-speculative-annotations `main` branch.\n\n### Built With\n\n- [React](https://reactjs.org/)\n- [FabricJS](http://fabricjs.com/)\n- [IIIF](https://iiif.io/)\n- [OpenSeadragon](https://openseadragon.github.io/)\n- [Chakra UI](https://chakra-ui.com/)\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\nTo get a local copy up and running follow these simple steps.\n\n### Prerequisites\n\nYou must be running a local copy of NodeJS and `npm` or `yarn` for package management. We'll use `yarn` in these examples:\n\n### Installation\n\n1. Clone the repo\n   ```sh\n   git clone https://github.com/adamjarling/loc-speculative-annotations.git\n   ```\n2. Install NPM packages\n   ```sh\n   yarn install\n   ```\n\n### Running the application locally\n\nTo run the application locally in your development environment:\n\n```sh\nyarn start\n```\n\nTo run tests (coming soon...)\n\n```sh\nyarn test\n```\n\n### Styleguide\n\n[View styleguide](https://www.figma.com/file/laNqMbfi7FSeHweqgyH8Jn/Speculative-Annotation-Style-Guide?node-id=0%3A1)\n\n## Usage\n\n### Source images\n\nSource images are currently hosted locally and defined and imported in the following configuration file:\n\n`src/services/loc-images.js`\n\nAn Work image file names should be its LOC `id`. Image files, thumbnails of images, and Curator annotation image files are located in:\n\n```\nsrc/images/loc-images\nsrc/images/loc-images/thumbnails\nsrc/images/curator-annotations\n```\n\nThe application uses the OpenSeadragon Viewer to render images, so your source images can be a combination of locally hosted images (within the application), or externally hosted images (for example, served from a IIIF image server).\n\n### Selecting items\n\nWhen putting together the Speculative Annotation mini collection, the project team was careful to consider the ethics of annotation and what items would or would not be appropriate for public annotation, as well as what kinds of items would engage students. This includes issues of copyright (all items are free to use at the Library) but also concerns about defacement. We considered issues of culturally specific imagery, religious materials, and human figures, particularly black and brown bodies, minors and private citizens. \n\nWhen adding your own images to your instance of the application, here are some questions to consider:\n - Does this item depict civilians who did not agree to their picture being taken?\n - Does this item depict minors?\n - Does this item depict human figures, particularly black and brown bodies, that could be defaced or harmed through annotation?\n - Was the item created for public consumption and by who?\n - Have you considered how the culture depicted in the item or that created the item sees annotation?\n - Does the item spark imagination and storytelling?\n - Can the item stand on its own? How much context is required?\n\n### IIIF Manifests\n\nApplication metadata is represented by a combination of local IIIF Presentation API 3.0 manifest files, and Library of Congress hosted IIIF manifest files. The organization of local files is as follows:\n\n_Top level manifest:_\n`public/iiif/speculative-annotations-manifest.json`\n\n- Top level **Collection** type manifest resource which contains information about the Speculative Annotation works as a collection.\n- Individual **Manifest** type manifests which each represent a Work, its metadata, annotations, containing LOC Collection, and more.\n- Placeholder Library of Congress Collection manifests which contain metadata about a containing Collection for each Work.\n\nThe naming convention here is also cued off a Work's LOC `id`. Every Work image in the app should have a corresponding folder in:\n\n`public/iiif/[LOC_WORK_ID_HERE]`\n\nEvery work image in the app should also be an object entry in the `public/iiif/speculative-annotations-manifest.json` file as well.\n\n### Custom theme\n\nIf you'd like to update the UI with your own custom colors, fonts, etc. this is possible via Style Props and custom theming. This app uses the wonderful Chakra UI package, and see [Chakra UI Customize Theme](https://chakra-ui.com/docs/theming/customize-theme) for details.\n\n### Testing\n\nCurrently only broad, high-level integration testing is supported via the Cypress.io testing library. To manually run tests, from the command line do:\n\n```\nyarn cypress:open\n```\n\nSee all available application scripts and commands in the `package.json` file.\n\n## Roadmap\n\nSee the [open issues](https://github.com/adamjarling/loc-speculative-annotations/issues) for a list of proposed features (and known issues).\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\n### Library of Congress Labs\n\nJaime Mears - Innovator in Residence Program Manager jame@loc.gov\n\nLC Labs - (https://labs.loc.gov) lc-labs@loc.gov\n\nCourtney McClellan - Innovator in Residence - www.courtneymcclellan.com\n\n### Developers / Designers\n\nAdam J. Arling - UI Developer - [@adamjarling](https://github.com/adamjarling)\n\nJessica VU - UX Consultant\n\nOlivia Graham - Grahpic Design Intern\n\n## Acknowledgements\n\nRemi Kalir PhD and Antero Garcia PhD\nEmily Kirkpatrick and the National Council of Teachers of English\nKaleena Stasiak, Printmaker\nJosh Hadro and the team at IIIF\n\nThe contributing staff of the Library of Congress:\nManuscript Division\nPrints and Photographs Division\nHispanic Section\nNear East Section\nAmerican Folklife Center\nPerforming Arts Division\nMusic Division\nSerial and Government Publications\nRare Book Division\nGeography and Maps Division\nProfessional Learning, Outreach \u0026 Initiatives Office\nMotion Picture, Broadcasting \u0026 Recorded Sound\nUser Experience Design Section\nMission Platforms Section\nSoftware Engineering Division\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/adamjarling/repo.svg?style=for-the-badge\n[contributors-url]: https://github.com/adamjarling/repo/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/adamjarling/repo.svg?style=for-the-badge\n[forks-url]: https://github.com/adamjarling/repo/network/members\n[stars-shield]: https://img.shields.io/github/stars/adamjarling/repo.svg?style=for-the-badge\n[stars-url]: https://github.com/adamjarling/repo/stargazers\n[issues-shield]: https://img.shields.io/github/issues/adamjarling/repo.svg?style=for-the-badge\n[issues-url]: https://github.com/adamjarling/repo/issues\n[license-shield]: https://img.shields.io/github/license/adamjarling/repo.svg?style=for-the-badge\n[license-url]: https://github.com/adamjarling/repo/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/adamjarling\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamjarling%2Floc-speculative-annotations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamjarling%2Floc-speculative-annotations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamjarling%2Floc-speculative-annotations/lists"}