Files
plumbing-dashy/PROGRESS.md
T

3.4 KiB

Dashy Project Refactor: Progress Report

Objective: Transition Dashy from a browser-based SQLite (local storage) application to a Client-Server architecture using a Python FastAPI backend with a persistent database.


Completed Tasks

1. Backend Infrastructure Setup

  • Created backend/ directory structure.
  • Configured requirements.txt with essential libraries (fastapi, sqlalchemy, pydantic, jose, etc.).
  • Fix: Pinned bcrypt==4.0.1 to resolve compatibility issues with passlib.

2. Database Modeling

  • Schema Design: Translated the original db.js schema into SQLAlchemy models in models.py.
  • Relationships: Established Many-to-Many relationships for Task Tags and One-to-Many for User Tasks and Notes.
  • Audit Logging: Implemented a robust Audit Log system to track all user actions.

3. API Development

  • Main App (main.py): Set up FastAPI with CORS middleware enabled for frontend communication.
  • Authentication: Built JWT-based login flow in auth.py.
  • Endpoints: Created initial endpoints for:
    • User retrieval
    • Task CRUD (Create, Read, Update)
    • Audit log retrieval/creation

4. Data Migration & Environment Handling

  • Seeding: Created seed.py to migrate initial prototype data into the new database.
  • CIFS/NAS Fix:
    • Implemented DASHY_DB_PATH environment variable support to allow the database file to reside on a local disk while code stays on the NAS.
    • Added a 30-second connection timeout to mitigate network latency.

🚧 Current Status

  • Backend: Feature-complete for the first phase.
  • Database: Schema is stabilized, seeding logic is verified, and database is active.
  • Frontend: Integrated with FastAPI backend via api.js. Legacy WASM SQLite files archived.

⏭️ Upcoming Steps

Phase 2: Frontend Refactor & Workflow Polish ( Completed)

  1. API Service: Created api.js to dynamically connect to the backend (resolved connection refused issues by using dynamic hostnames) and handle all network requests.
  2. Authentication Hook: Updated the Login screen to use real JWT tokens.
  3. Component Updates:
    • Swapped DashyDB calls for async API calls in app.jsx.
    • Fixed UI state refresh issues by silently loading subsequent data updates.
  4. Task Workflows:
    • Completion: Added a "Mark as completed" button in TaskDetail that changes task status to closed, records it in the Audit Log, and removes the task from the main Overview board.
    • Reopening: Added a "Reopen task" button to restore accidentally closed tasks back to the queue.
    • User Views: Updated UserScreen to accurately display open task counts and render a dedicated, faded "Completed" section at the bottom for closed tasks.
    • Audit Rendering: Fixed crash in TaskDetail by passing global API audit logs and filtering them locally for individual tasks.
  5. Cleanup: Archived db.js, data.jsx to Dashy-v1/scraps/ and removed sql.js WASM dependency from Dashy.html.

Phase 3: Advanced Features

  • Real-time Notifications: Explore WebSockets for task assignments.
  • iMessage Integration: Develop the "Molty" bridge for phone-to-task creation.
  • File Uploads: Support for attaching photos/documents to tasks.

Last Updated: Monday, May 11, 2026 Status: Phase 2 Complete / Ready for Phase 3