Project breakdown
SEGCD Document Management System
Stable proof of concept for workflow-based document management
- ASP.NET Core ·
- React ·
- PostgreSQL ·
- EF Core ·
- JWT ·
- Docker
Quick overview
Built a document workflow proof-of-concept from scratch with ASP.NET Core, PostgreSQL, EF Core, JWT authentication, permission-key authorization, audit history, reporting, batch attachments, and a React frontend. The system modeled department-based document routing with forward/back/complete/close actions and sensitive document access rules.
Details are anonymized and summarized without exposing internal code, customer data, or proprietary implementation details.
Context, responsibility, outcome, and takeaway
Context
SEGCD was a document workflow system implemented from scratch as a proof-of-concept. It was designed around department-based document routing, where documents moved through different departments and users assigned to the current department could perform specific actions such as forward, back, complete, or close.
My role
I built the application myself while discussing architecture and implementation approach with another technical person. My work covered backend modules, authentication, permission-key authorization, document workflow services, reporting, batch attachments, audit history, and React operational screens.
Result
The proof-of-concept was presented to the client as a platform with potential to continue beyond the initial version. It demonstrated a full workflow system with backend business logic, access control, auditability, reporting, attachments, and a working frontend.
Takeaway
Workflow systems need explicit state transitions, department ownership, permission-key authorization, and auditability before UI polish matters.
Document routing and auditability
01
Submit
02
Department action
03
Forward / Back
04
Complete / Close
05
Audit & report
Request handling, workflow services, persistence, and traceability
01
User
02
Department
03
Workflow action
04
PostgreSQL
05
Audit log
Visual proof
Anonymized proof panels
Structured interface-style panels that show the project shape without exposing real users, client data, or private code.
Workflow queue
My Tasks queue
DOC-1042 · Legal department · Waiting
DOC-1048 · Finance department · Sent back
DOC-1051 · Registry · Ready to close
Document lifecycle
Document details
Current state: In review
Actions: Forward / Back / Complete / Close
Batch attachments: main document + supporting files
Traceability
Audit history
09:32 · Created by requester
10:14 · Routed to department
11:05 · Reviewed with comment
Expandable details for the technical story
Architecture
The backend was implemented with ASP.NET Core, PostgreSQL, EF Core, JWT authentication, and permission-key based authorization. The system separated API endpoints, workflow services, persistence, audit, permissions, and document/task concepts so workflow rules could stay explicit.
Workflow rules
The workflow was based on departments. A document moved between departments, and users assigned to the current department could perform allowed actions such as forward, back, complete, and close. Once all required business steps were completed, the document reached a final business-finished state.
Authorization
Permissions were enforced through permission keys and department assignment. A user could only act on a document if their department was currently responsible for it, departments could not move documents outside their stage, and non-privileged users could not view sensitive documents.
Audit and traceability
The audit system stored user, action, timestamp, IP address, document-related state, and relevant metadata so workflow decisions could be reviewed later and document history could show who did what and when.
Validation rules
Important validations prevented actions on finalized documents, prevented departments from acting on documents not assigned to them, blocked unauthorized access to sensitive documents, and rejected invalid workflow transitions.
Core responsibilities and engineering details
- Implemented authentication and login functionality with JWT-based access
- Built permission-key based authorization instead of relying only on hardcoded roles
- Implemented department-based workflow actions such as forward, back, complete, and close
- Added user/department access rules so only the responsible department could act on the current document stage
Additional technical details 4 more points
- Added validations to prevent invalid workflow transitions, unauthorized access, and actions on finalized documents
- Implemented audit logging for user actions, timestamps, IP information, document state, and workflow metadata
- Built reporting modules and batch attachment functionality
- Built a React frontend with dashboard, document/task views, workflow screens, users/departments, reports, and audit pages
Architecture and extension guide
- Layered backend structure across Core, Application, Persistence, Infrastructure, and Api projects
- Workflow lifecycle rules for document registration, department assignment, forward/back/complete/close actions, and final business-finished states
- Permission conventions using resource.action keys, policy-based authorization, and backend enforcement as the source of truth
- Global audit and document-level audit coverage for authentication, document actions, workflow transitions, attachments, and admin operations
- Document file model covering current main document, main-document version history, and additional attachments
- Extension patterns for adding new document actions, filters, CRUD modules, audit events, and workflow action types
- Operational guidance for Docker development modes, API/frontend run commands, build commands, tests, and migration flow
- Definition of done for new features: permission, backend validation, audit, UI guards, 403/404/409 handling, common components, tests, and build verification
Concrete topics this project supports
- Department-based document routing with forward, back, complete, and close actions
- Permission-key authorization and user/department access rules
- Audit history for user actions, timestamps, IP information, and document/workflow metadata
- Document lifecycle, batch attachments, task views, and reporting modules
- Expected 403/404/409 behavior for permission, missing resource, and state-conflict cases
- Docker/PostgreSQL local setup and EF Core persistence structure