Full-Stack Python Developer for Local Knowledge Graph UI
Budget: $15.0 - $35.0
HOURLY / PART_TIME
⭐ 5.00 (1)
United States
neo4j, react-js, typescript
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.
Ouvrir sur Upwork