Files
plumbing-dashy/PROGRESS.md
T

61 lines
2.6 KiB
Markdown

# 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. Ready for testing and integration.
- **Database:** Schema is stabilized and seeding logic is verified.
- **Frontend:** Currently still using the old `db.js` (WASM SQLite) layer.
---
## ⏭️ Upcoming Steps
### Phase 2: Frontend Refactor
1. **API Service:** Create `src/api.js` to handle all network requests to the FastAPI backend.
2. **Authentication Hook:** Update the Login screen to use real JWT tokens.
3. **Component Updates:**
- Swap `DashyDB` calls for `async` API calls.
- Implement "Loading" states for UI responsiveness during network calls.
4. **Cleanup:** Remove `db.js`, `data.jsx`, and the `sql.js` WASM dependency.
### 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:** Backend Operational / Awaiting Frontend Integration