Files
plumbing-dashy/PROGRESS.md
T

2.6 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 ( Completed)

  1. API Service: Created api.js to handle all network requests to the FastAPI backend.
  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.
    • Implemented "Loading" states for UI responsiveness during network calls.
  4. Cleanup: Archived db.js, data.jsx, 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