Document Management System#

And of course, one of my last assignments was developing software that allowed everything to sort of exist on a single site. This included designing the database from scratch, using TDD, and setting up RBAC to ensure the right people were accessing the correct documents.

I also added semantic search for every document and documentation site uploaded, as well as set up a chatbot on a RAG pipeline. I gave the chatbot access to specific functionality that would allow users to say something like, “Upload this PDF to this repository,” and the PDF would be uploaded to the database and integrated into the CI/CD. Additionally, I made a lot of the AI workflows for developing manuals more intuitive and easier for someone using the software to create them by filling out a simple form.

The form would require one of the following: a site URL, a PDF, or another piece of documentation, along with some piece of instruction, although it was tested with little to no instruction as well. At that point, the agent would apply all of the knowledge and settings that I had configured and create the manual. This resulted in 70 page manuals being created in as little as 30 minutes, something that had previously taken a few months to get right. See this slightly redacted version here: redacted manual.

Other features that I included in this software:

  • A centralized definition collaboration section, which allowed users to add new definitions for terms used across our software. This utilized an upvote feature that allowed for cross collaboration.

  • A Microsoft Word like experience for editing existing documentation sites, made possible through the patterned nature of RST and Sphinx.

  • A QA area with a ticketing system connected to the codebase and chatbot, allowing users to submit a ticket through the chatbot.

  • An audit trail in the UI that showed who was doing what.

  • A graduated troubleshooting system for the chatbot to follow in case someone asked for help, which included an escalation pipeline dictated by a JSON library.

  • User management.

  • Access to documentation sites throughout the organization, protected by RBAC authorization.

See also

Detailed breakdown: Projects (DMS overview) · DMS Tech Stack · DMS Additional