← Missions

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