with
Project Details | Links | Team | Objectives Accomplished | Deliverables | Contribution | Post GSoC | Acknowledgement
Check out my blog or follow me on Twitter for more updates.
Digital Library Management is about preparing a dashboard that can show an admin the visual assets of the digital library for each artifact but also add, edit, delete, images using our archival images serve as a source of better quality images to prepare their web counterpart. Access to images should also be managed there (some images are not public).
Develop a dashboard and a series of workflows so admins can manage the digital library (dl) Populate the tables with information from the current dl Keep the system flexible so we can create an extension for crowdsourcing of images in the future
Assist in setting up an automated grab of archival and raw images from the VM, to the archival server. These images will have been uploaded through the images manager or the minio interface. Set up a granular access to images at the image level (instead of at the artifact level) Operations handled by the images manager
- Create web version of images for an artifact using the archival version
- Change the type for an image (main, detail, envelope, lineart, lineart detail, etc)
- Associate existing images with a different artifact (when an error was made)
- Associate images with artifacts, images which are currently associated with no artifact
- Overview of assets for one artifact
- Overview of assets for all artifacts (stats, also per collection)
- Granular access for images management
- Daksh Paleria - Mentee
- Jacob L. Dahl - Mentor
- Émilie Pagé-Perron - Mentor
- CakePHP 4
- Python
- Docker
- HTML
-
- A python script for web images, archival images.
- Scanning the folders, files and dumping them into CSV.
- Make folders for specific type of assets.
Script The python script with the instructions to run mentioned on top. - The script should handle the creation of folder for
VCModels/3D Models
on the basis of the file name. - In 3D Model folder we have two (in some cases more) files for every artifact. One is
.ply
model and the other is its.jpg
image. - I was supposed to handle creation of a folder for every artifact with all the entities related to it inside the folder.
Structure Before Running Script You can see all the entities inside one folder ie VCModels - Once the script runs it scans through VCModels and makes folder on the basis of file name.
Structure After Running Script You can see all the entities inside their own specific folder under the parent folder of VCModels - Once the scanning is done we pick up all our necessary information and dump them inside an CSV.
Resulting CSV These are the few information we are scanning for our requirements. - Since there were issues in python version which then in turn interferes with versions of libraries being used.
- We dockerized the complete script so that it can run inside a docker container, the admins can go inside the containers and access the stuff needed.
Script Inside the Container Running a few sh
commands can take the admins inside the container where they can run the script, navigate through the folders accordingly.- You can see the complete script here.
Complete Script The complete script in action. - We have a similar script for archival images which just has a few changed regarding the folder structure of the assets.
Complete Script Inside Docker Container The complete script in action inside the docker container. -
- The next important task was to design the pages required by the project.
- The most challenging part was to keep the design user friendly (as most of people uing my projects are research scholars).
- I have reused most of the existing elements from the current design.
Home Screens for Single View The complete script in action inside the docker container. - The complete design file can be accessed from here.
-
- It was time to decide upon the strcuture of the images table.
- The users would require a few specifics in order to make a decision for one specific file.
Images Table The structure of images table we decided upon. - Since the server which stored all the web images was facing a few issues we decided to fill the table with a few test images and start working upon the backend and frontend of the project.
Images Table The images table filled with a few test data. -
- I was supposed to work on the frontend and make the templates for the project.
- The main page was the index, the second page is list of all visual asset related to one artifact.
- The third page is where the admins can edit, delete the images.
Walkthrough for Frontend The complete fronted of the project. - The design team helped a lot in finalizing the designs, tons of discussions with Jacob resulted into this design.
-
- The next task was to integrate the functionalities of backend into frontend.
- We wanted to restrict this project just to the admins and not to the normal users.
Admin Access Only admins, super-admins are able to access the functionalities provided by project. - The other functionality we were trying to provide is to view all the visual assets related to an specific artifact.
View for Single Artifact Displaying all the visual assets related to one specific artifact. - Single View for one visual asset was the other task.
- Since the visual asset could be of type jpg (image), pdf, ply (models) we were supposed to display them to the users in order to make a decision.
Handling Different Types of Files Handling different types of files (pdf, svg, etc). - The next functionality was to change the type of visual asset, change its access level.
- We have around 25 types of visual asset and the admin has the access to change its type, change its access level (public or private).
Manage Type of Visual Asset Changing the type of visual asset. - While changing the visual assets there will be a case where the visual asset of other type already exists.
- At such situations the admins should be able to able to overwrite the existing visual asset with the one they are changing.
Renaming Asset, Removing Duplicate Entries Changing the type of visual asset.
During these three months I have completed all the essential objectives which includes
# | Objectives | PR/Commit/Link | Associated Deliverables | Status |
---|---|---|---|---|
1 | Design Pages | Link | Design the pages for viewing archival images, selecting multiple artifacts at a time, upload archival images #609 | Completed |
2 | Prepare Images Table | Link | Storing information regarding images in our table #87 | Completed |
3 | Work Around Web Images | !355, !377 | Allowing the admins to work around the web images by giving them the option to add, edit, delete #87 | Completed |
4 | Python Script | -- | A python script to extarct information and dump them in CSV. #87 | Completed |
5 | Testing Functionalities | -- | Testing fucntionalities of the web images. | Completed |
# | Status | Objectives | Associated Deliverables | issue(s) |
---|---|---|---|---|
1 | ✔️ | Design Pages | Design the pages for viewing archival images, selecting multiple artifacts at a time, upload archival images | #609 |
2 | ✔️ | Prepare Image Table | Storing information regarding images in our table | #87 |
3 | ✔️ | Work Around Web Images | Allowing the admins to work around the web images by giving them the option to add, edit, delete | #87 |
4 | ✔️ | Python Script to store details | A python script to extarct information and dump them in CSV. | #87 |
5 | 🚫 | Dealing with Archival Images | Adding the functionality to convert, view and peform operations on archival images. | #87 |
- Dealing with arcival images is the task which is now on my to-do list.
- We have to work around the conversion algorithm which can help us in displaying the images to admin on the framework and then allow them to make changes on it.
- I would like to thank my mentor Jacob L. Dahl & Émilie Pagé-Perron for helping and guiding throughout the GSoC Journey :)
- Thanks to other mentees and mentors for collaboration.
- I am thankful to Google Summer Of Code for providing me with an opportunity to work with CDLI.