Scope 25: Site Survey Utility#
Scope ID: 25
Owner: Charles Winans
Duration: 40 Hours
Date: 10/10/2024
Due: 10/12/2024
Actual Completion Date: 10/27/2024
Overview#
Create modular utility to run a minimal workign version of a site survey while remaining consistent with existing metacrud standards and adapting standards as neccesary.
Justification#
Site survey has been cumbersome and far from self-service requiring developer assistance through the lack of design and implementation completion. This is the most expedient path to this goal of a continuously operable service.
Deliverables#
Complete the following steps: 1. Database docker container w/ running PostGreSQL database 2. Server docker container w/ running Python utility on a loop that restarts every 5 seconds 3. PostGreSQL connection details in /etc directory 4. R2 connection details in /etc directory 5. Find site survey manifests within bucket and add to database 6. Find directories within bucket 7. Find subdirectories/PDF sets within site survey
Conenct the python application to the postgresql database
Use credentials to look for new manifest files
- Index manifests
Organizations
Directories(Make if missing)
Subdirectories(Make if missing)
Migration of existing schemas to PostGreSQL
Migration of existing data to PostGreSQL
Function: Read manifest file from directory
Function: Locate and index all directories and subdirectories within site survey
Function: Read all individual pages
Function: Read all sets and break into pages
Function: Add organization to database
Function: Add sets to database
Function: Add pages to database
Query: Produce metadata for set
Query: Produce metadata for page
Function: Create set cover
Function: Create all set covers
Function: Create page cover
Function: Assemble sets with pages and page labels
Function: Output all
Python function to read manifest file as currently organized and populate shcemas with information and relations between objects within schemas for organization, set, page, version, etc.
Library of set and page label sheets
Query to produce JSON metadata for set and page labels
Generation of set label
Generation of page pabel
Separation of PDf sets into pages
Insertion of covers and pages into sets
Assembly of sets into complete set
Potential Future Scopes of Work#
1. Python application cleanup, standardization, and documentation 1. API specification site 2. OpenAPI specification based on src/metacrud2/openapi.json 3. OpenAPI compliance server 4. Proxy OpenAPI compliant server via nginx and via cloudflare w/ service acct auth 4. Proxy OpenAPI compliant server via nginx and via cloudflare w/ auth0 auth