Setting up a document management system with xwiki

Hi All!
My name is Andreas and I am pretty new, when it comes to xwiki. I am quite familiar, when it comes to confluence and jira. I am currently working on a concept for using xwiki as a document management system, which it obviously is. And it does this very well as far as I know by now.
What I would like to achieve additionaly, is some sort of document management system which consists of 2 main parts:

First one is some sort of reviewed and approved pages like it is used in a quality management system.
So the owner of a process creates a description, a qualified user reviews it for correct content and a user with special permissions like a quality team member relelases the document. All other people can only see the released aka. approved page. A new version would replace the old one for these people and old versions can only be seen by people with special permissions. I guess, this can be achieved with publication workflow. For this one, could somebody please point me to a good documentation to start with? I am a little bit stuck.

Second functionality is similar, but not completely: one person creates a report for example, which has to be approved by one or more other persons, depending on the topic. E.g. a member of the development team creates a report about fixing cybersecurity issues. This report should be approved by the leader of the dev team as well as the cybersecurity tester. So the names as well as numbers of the approvers change, depending on the page. Another example: a person requests to buy the license of a software. So he/she creates a page with all needed information. The page is approved by the leader of this person as well as the responsible purchase officer.

In confluence, both can easily be implemented using comala document management plugin. I wonder, if it is possible to do this in xwiki. Maybe this functionality can be implemented with some plugin. And if not, maybe someone can please point me to a starting point to implement this on my own. Thanks for your help in advance!
Best, Andreas

Great, so you can tell us where we are better and where we fall short :wink:

This looks similar to the https://extensions.xwiki.org/xwiki/bin/view/Extension/XWiki%20Publication%20Workflow%20Application extension.

Of course it’s possible to build this yourself to your needs too.

Note that in a potentially near future, we’d also like to add support for a “GitHub Pull-Request” feature in XWiki.

In XWiki you’d create an XClass to represent your custom metadata and then use XObjects in pages to fill this metadata. Some pointers:

This is actually where XWiki shines compared to other wikis.

First of all, thanks for the answer! I already figured out, that xwiki is great, when it comes to development and extending. In the company, where I work, we use confluence but my own project should run on top of xwiki.
Thanks for the links. I definitely will investigate publication workflow. It didn´t work out of the box, but I have to get more familiar to working with xwiki and extensions. So I have to take a deeper look!

And I will start to get into development for xwiki. Within confluence, I did some tasks with REST-API calls and implemented some stuff using groovy and json. As xwiki has it´s own REST-API I will definitely use that interface within my system.

Thanks again for the response!
Best,
Andreas