diff --git a/PROGRESS.md b/PROGRESS.md new file mode 100644 index 0000000..dc83e26 --- /dev/null +++ b/PROGRESS.md @@ -0,0 +1,60 @@ +# 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