Чтобы можно было их архивировать перед большими изменениями, архивацией или для переноса на другой инстанс. Например вытащить tndt как самый большой проект на dev, чтобы там протестить как оно работает.
Экспортировать будем, думается через json, может быть с каким-нибудь json-ld или подобным позволяющим определить схему. Если мы когда-нибудь в будущем решим проект вновь переписать, например на java, его так можно будет переехать.
Сущности относящиеся к проекту просто выбираются по проекту и сериализируются.
Что делать с пользователями? Либо ставить все задачам никого, но потом муторно будет устанавливать. Либо искать соответсвтие по логинам, либо дать админу проставить соответствие. Тем, кому нет соответсвия можно тоже создавать, но это странно. Видимо надо делать отдельный флаг активный, или в принципе менять флаг заблокирован на флаг активен. Тогда созданные пользователи будут иметь флаг неактивен и будут серыми, а не зачеркнутыми.
Так как у нас появляются файлы, было бы правильно при экспорте указывать, экспортиовать ли вложения, и елси да, формировать не только json с данными, но архив в котором будет и json и все вложения.