Inspiration
HACC 2020 Challenge: Hawaii State Archives – Gamification of Crowdsource Indexing
What it does
Project CLIO is a web application that allows Hawaii State Archives to crowdsource the indexing effort by gamifying it.
The user can create a job for the public by uploading a XML file that describes what and which kind of information needs to be extracted from the uploaded historical records.
The XML file is converted into a validating dynamic form for the volunteers to fill out and points are given per record. Overtime points could lead to awards being given.
The data submitted can be extracted as .csv
How we built it
The team was split into a frontend and a backend group that took care of issues created on GitHub.
The front-end of the application is built with React and it is hosted on an Microsoft Azure instance. We wanted to utilized client-side rendering to relieve the extra pressure that the system could experience while streaming over large binary data.
The back-end uses Spring, which is a Java framework, and with the help of Spring Data JPA. Spring Data JPA is a library that uses Java Persistence API and Hibernate framework to store Java objects directly into a relational data, cutting down on the amount of SQL that needed to be written by the developer. We tried our best to meet the recommendations provided by the challenge.
Challenges we ran into
Learning Spring, Lombok Annotations, Java Persistence Query Language and a lot of other new tools
Storing non-relational data such as .pdf and .xml was a challenge as PostgreSQL was not made for storing such contents, even though they do have supports up to a certain extent with LOB, bytea etc.
Working with our own API instead of a provided one and coding all the business logic
Hosting the site gave us a bit of a challenge when certain elements would not function, such as page routing.
Accomplishments that we're proud of
Building our own RESTful API
Creating a production CD/CI pipeline which combines continuous integration (CI) and continuous delivery (CD) to constantly and consistently build your code and ship it.
Being able to work collaboratively even though some people were physically distant and some in tough times and or packed schedules.
What we learned
We learned about ways to make a web application that is built with less abstractions and thus much more difficult. We also learned to make informed decisions regarding architectural designs, tools, languages, security, database types etc.
Dev Ops techniques such as automating pipelines.
What's next for Project CLIO
Support for .zip uploads for records
More awards
Badges (Icons and Colors)
Official Logo
OAuth Support (Facebook, Google etc...)
More robust security filters and session renewal
Ability to store more formats
Creating a upload endpoint that allows for multiple same name files to be save separately
Smoothing out the website with animations and a theme

Log in or sign up for Devpost to join the conversation.