Full-Stack Python Developer for Local Knowledge Graph UI
Worldwide
We are looking for a developer to build the UI layer for a local-first Conservation Management Platform. The backend text and image ingestion pipelines already exist; this project focuses on creating a desktop or local web interface that can launch those scripts, monitor progress, stream logs/errors, show processed vs. unprocessed files, connect to a local Neo4j knowledge graph, allow basic node/relationship editing, provide a natural-language query interface, display simple visualizations, and browse media results by person, place, event, or date. The ideal developer is comfortable with Python-backed desktop apps, Neo4j/Cypher, job runners, clean UI/UX, and local-first privacy-focused software. ## UI Milestones ### Milestone 1: UI Architecture Setup **Goal:** Establish the basic desktop or local web application architecture and confirm that the UI can communicate with the local backend, Neo4j, and Python scripts. **Acceptance Criteria:** * Desktop app framework is selected: Tauri, Electron, or local Flask/FastAPI. * UI can connect to the local backend. * UI can check Neo4j availability. * UI can call one test Python script. * Logs from the test script appear in the UI. * Basic project structure is documented. --- ### Milestone 2: Builder Tab **Goal:** Build the main pipeline-control interface where the user can select folders, launch backend scripts, monitor progress, and review processed/unprocessed files. **Test:** Verify Builder tab functionality works. **How to Test:** Select a test folder, launch different pipeline scripts from different buttons, verify that log output updates in real time, and verify that file lists refresh after each run. **Acceptance Criteria:** * Folder selection reflects the user’s choice and persists between sessions. * Each script launches its pipeline without crashing the UI. * Progress and log output stream in real time. * The “processed” and “not processed” file lists update after each run. * Re-running a script on the same folder skips already-processed files. * No duplicate nodes are created in the knowledge graph. --- ### Milestone 3: Editor Tab **Goal:** Build an interface for viewing, creating, editing, linking, unlinking, and deleting Neo4j knowledge graph nodes and relationships. **Test:** Verify Editor tab functionality works. **How to Test:** Create a node, edit its properties, link it to another node, delete a node, and verify that all changes are reflected in the Neo4j database. **Acceptance Criteria:** * Node properties can be edited in place and saved to Neo4j. * Creating a new node succeeds, and the node is visible in subsequent queries. * Linking two nodes produces a valid edge with a chosen relationship type. * Unlinking two nodes works. * Deletions cascade or prompt a warning when connected edges exist. * Edits are reversible through an undo action or are clearly logged with confirmation warnings. --- ### Milestone 4: Query Tab **Goal:** Build a natural-language query interface that allows the user to ask questions about the local knowledge graph and receive readable answers. **Test:** Verify Query tab functionality works. **How to Test:** Ask five questions of varying complexity, such as “Show me photos from 2020” or “Who did I email most this year?”, and verify the answers. **Acceptance Criteria:** * Questions are answered correctly at least 85% of the time on the test set. * Answers are returned in a readable format, such as a table, list, or prose response. * Query failures display an error message without crashing the UI. * The LLM can handle follow-up questions that reference prior context within the tab. * Sensitive queries are not sent to a hosted LLM if the user has selected a local model. --- ### Milestone 5: Visualization Tab **Goal:** Build visual tools for exploring the knowledge graph through timelines, relationship graphs, counts, and category summaries. **Test:** Verify Visualization tab functionality works. **How to Test:** Filter on each available dimension individually and in combination, then verify that the visualizations update accordingly. **Acceptance Criteria:** * At least three visualization types are available: timeline, network graph, and histogram. * Filters apply in real time. * Empty-result states are handled with a clear message. * Visualizations can be exported to PNG or SVG. * Performance is acceptable on archives of at least 10,000 nodes. --- ### Milestone 6: Multimedia Tab **Goal:** Build a media-browsing interface that allows the user to filter and view photos or other media by person, place, event, date, or query result. **Test:** Verify Multimedia tab functionality works. **How to Test:** Filter on a specific person and verify that only photos depicting that person appear. Filter on a date range and verify that the results match. **Acceptance Criteria:** * Filters correctly restrict the returned photo set. * Thumbnails load without blocking the UI. * Clicking a thumbnail opens the full-resolution image with a metadata overlay. * Photos are pulled from original storage paths, not duplicated. * The gallery handles folders with at least 1,000 matching photos.
- Less than 30 hrs/weekHourly
- 1-3 monthsDuration
- IntermediateExperience Level
$15.00
-
$35.00
Hourly- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:50+
- Last viewed by client:3 days ago
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- United StatesWoodruff6:14 AM
- $5.9K total spent5 hires, 2 active
- 247 hours
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by