Currently, @damingo is implementing projects (#222). The question came up if deletion of projects should be supported in the software. This is what @damingo had to say about that:
Shall a project allowed to be deleted with the UI at all? I simple alert "Are you sure" doesn't seem to be sufficient. So I would have to build a extra page with something like "Type the name of the project to confirm" but then I would have to make the delete also efficient as with a big project many thousand queries would be executed by default and might trigger a timeout.
So alternatives are
Simply do not allow to delete a project in the UI - can still be done on the Rails console.
Add "archived" to project and do not allow to delete them. Archived projects are then not listed in the projects dropdown in the sidebar.
Implement the delete as soft-delete. So the project and all it's data is still in the DB but no longer listed in the UI
We decided that, for now, alternative 1 (no deletion support) will be our solution, as no project deletion is needed for Edgeryders' internal purposes. We also decided that, for feature completeness, a proper project deletion feature should be implemented later. This is the issue for that.
Requirements for the proper project deletion feature of the future:
Data protection. A page called "danger area" to start a project deletion and a page with a message "Type the name of the project to confirm" seem a good approach. Like done on Github for repo deletion. And perhaps project deletion would only be possible for users who additionally have the Discourse "moderator" or "admin" role, not for "ordinary" ethnographers. This ties the system closer to Discourse than we'd like, but also seems like an elegant approach compared to a duplicate implementation of a user role system.
Efficient execution. PostgreSQL cascading deletes can probably make things efficient enough to not run into timeout issues.
Currently, @damingo is implementing projects (#222). The question came up if deletion of projects should be supported in the software. This is what @damingo had to say about that:
We decided that, for now, alternative 1 (no deletion support) will be our solution, as no project deletion is needed for Edgeryders' internal purposes. We also decided that, for feature completeness, a proper project deletion feature should be implemented later. This is the issue for that.
Requirements for the proper project deletion feature of the future: