The FertiScan application currently lacks integration with a database, limiting its ability to manage data efficiently. We need to establish a robust database integration and implement CRUD (Create, Read, Update, Delete) operations across the frontend, backend, and datastore layers. This will improve data management, enhance user experience, and provide a scalable solution for future development.
Desired Outcomes:
Database Integration
[x] Set up a database instance.
[x] Ensure the database schema is well-defined and documented.
Datastore Layer
[x] Ensure that the datastore layer is correctly implemented to interact with the database.
Backend Implementation
[x] #89
[x] Ensure proper error handling and validation in the API routes.
[x] Implement unit and integration tests to validate CRUD operations.
Frontend Implementation
[ ] Develop or update frontend components to interact with the new CRUD API routes.
[ ] Add a new page to display all the currently stored form. (Issue 176 frontend)
Extra Notes
For the CRUD operations:
Create
Retrieve
Update
The backend offers a dedicated endpoint for managing user updates incrementally until final confirmation.
This endpoint should incorporate a mechanism to indicate to the database when an update is definitive.
Discard
The backend supplies an endpoint to discard unconfirmed analyses.
Upon activation, this endpoint is responsible for erasing any temporary data related to the analysis session from all involved services/databases, ensuring no other sessions are affected.
Epic Issue
Context
The FertiScan application currently lacks integration with a database, limiting its ability to manage data efficiently. We need to establish a robust database integration and implement CRUD (Create, Read, Update, Delete) operations across the frontend, backend, and datastore layers. This will improve data management, enhance user experience, and provide a scalable solution for future development.
Desired Outcomes:
Database Integration
Datastore Layer
Backend Implementation
Frontend Implementation
Extra Notes
For the CRUD operations:
Child Issues
Datastore & Database
Backend
Frontend
Cross Layer Communication