2.6 KiB
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.txtwith essential libraries (fastapi,sqlalchemy,pydantic,jose, etc.). - Fix: Pinned
bcrypt==4.0.1to resolve compatibility issues withpasslib.
2. Database Modeling
- Schema Design: Translated the original
db.jsschema into SQLAlchemy models inmodels.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.pyto migrate initial prototype data into the new database. - CIFS/NAS Fix:
- Implemented
DASHY_DB_PATHenvironment 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.
- Implemented
🚧 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
- API Service: Create
src/api.jsto handle all network requests to the FastAPI backend. - Authentication Hook: Update the Login screen to use real JWT tokens.
- Component Updates:
- Swap
DashyDBcalls forasyncAPI calls. - Implement "Loading" states for UI responsiveness during network calls.
- Swap
- Cleanup: Remove
db.js,data.jsx, and thesql.jsWASM 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