Skip to content
All projects

Document and Quality Management System

A modular enterprise management system that brings corporate processes, document versioning, and quality management under a single roof.

Date
October 2024
My role
Full-stack Developer
Technologies
  • ASP .Net Core
  • C#
  • React
  • Bootstrap 5
  • Dapper
  • REST API
  • MySQL

About the Project

Document and Quality Management System (DQMS) is a comprehensive enterprise platform developed for businesses to securely manage their corporate document workflows, quality standards, retention periods, and external sources digitally. Thanks to its multi-layered structure, it gathers the modules required by different departments into a single centralized panel.

The Problem

Since the application featured a multi-module enterprise architecture, attempting to render all components and sub-pages independently and individually caused severe performance bottlenecks, unnecessary re-render cycles, and high memory consumption on the client side.

What I Did

  • Categorized all scattered sub-modules under logical main module wrappers to optimize the architecture.
  • Built a centralized parent component (DocumentParent) on the React side to ensure route-based and controlled loading of sub-module pages.
  • Designed high-performance, query-optimized data retrieval services tailored to these main modules using ASP.NET Core 8.0 and Dapper on the backend.

Technical Notes

An example structure implementing a centralized parent component (DocumentParent) optimized for route changes (location.pathname) without performance degradation:

const DocumentParent = () => {
    const [currentStep, setCurrentStep] = useState(1);
    const location = useLocation();

    const steps = [
        { id: 1, path: "/dokuman/listesi", component: <DocumentList/> },
        { id: 2, path: "/dokuman/arsiv-suresi", component: <ArchiveDuration/> },
        { id: 3, path: "/dokuman/dis-kaynakli", component: <ExternalDocuments/> },
        { id: 4, path: "/dokuman/olustur", component: <CreateDocuments/> },
        { id: 5, path: "/dokuman/prosedur", component: <ProcedurDoc/> },
        { id: 6, path: "/dokuman/dokumanlarim", component: <MyDocuments/> },
    ];

    useEffect(() => {
        const matchedStep = steps.find((step) => step.path === location.pathname);
        setCurrentStep(matchedStep ? matchedStep.id : 1);
    }, [location.pathname]);

    const renderCurrentStepComponent = () => {
        const matchedStep = steps.find((step) => step.id === currentStep);
        return matchedStep ? matchedStep.component : <div>Page not found!</div>;
    };

    return (
        <div className="document-parent">
            <Sidebar/>
            <div className="content-container" data-aos="fade-up">
                <div className="step-content">{renderCurrentStepComponent()}</div>
            </div>
        </div>
    );
};

export default DocumentParent;
Result
Client-side performance losses were resolved through modular categorization and an optimized, route-based rendering strategy. Page transitions became significantly faster, delivering a much smoother and more stable user experience for enterprise operators.