uim-ecm-server ~main

Enterprise Content Management System using D, UIM-framework and Vibe.d


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

Enterprise Content Management System (ECM)

A modern Enterprise Content Management system built with D language (dlang), UIM-framework, and Vibe.d.

Features

  • Document Management: Create, update, delete, and organize documents
  • Version Control: Track document versions and changes
  • Workflow Management: Define and execute document workflows
  • Full-Text Search: Search documents by content, metadata, and tags
  • User Authentication & Authorization: Role-based access control (RBAC)
  • Metadata Management: Custom metadata and properties
  • Audit Trail: Track all user actions and document changes
  • REST API: Comprehensive REST API for all operations

Project Structure

ECM/
├── source/
│   ├── app.d                    # Main application entry point
│   └── ecm/
│       ├── core/                # Core ECM domain models
│       │   ├── document.d       # Document and Folder classes
│       │   └── metadata.d       # Metadata and Search classes
│       ├── api/                 # REST API routes and controllers
│       │   └── routes.d         # API endpoint definitions
│       ├── storage/             # Persistence layer
│       │   └── repository.d     # In-memory and DB repository
│       ├── auth/                # Authentication and authorization
│       │   └── user.d           # User, Role, and Permission classes
│       └── workflow/            # Workflow engine
│           └── process.d        # Workflow definitions and tasks
├── config/                      # Configuration files
│   └── config.json              # Application configuration
├── tests/                       # Unit and integration tests
└── dub.json                     # DUB package configuration

Prerequisites

  • D Language: Version 2.100+
  • DUB: D's package manager (comes with D)
  • Vibe.d: Web framework
  • UIM-framework: UI framework
  • PostgreSQL: Database (optional, can use in-memory storage)

Installation

1. Clone or initialize the project

2. Install dependencies

dub fetch

3. Build the project

dub build                    # Debug build
dub build -b release         # Release build

4. Run the server

dub run                      # Development mode
./bin/ecm-server             # Run compiled binary

The server will start at http://localhost:8080

API Endpoints

Health Check

  • GET /api/v1/health - Server health status

Documents

  • GET /api/v1/documents - List all documents
  • POST /api/v1/documents - Create new document
  • GET /api/v1/documents/:id - Get document by ID
  • PUT /api/v1/documents/:id - Update document
  • DELETE /api/v1/documents/:id - Delete document
  • POST /api/v1/documents/:id/publish - Publish document
  • POST /api/v1/documents/:id/archive - Archive document

Folders

  • GET /api/v1/folders - List all folders
  • POST /api/v1/folders - Create new folder
  • GET /api/v1/folders/:id - Get folder by ID
  • PUT /api/v1/folders/:id - Update folder
  • POST /api/v1/search - Search documents with filters

Configuration

Edit config/config.json to configure:

  • Server: Host and port settings
  • Database: Connection details
  • Storage: File storage settings
  • Authentication: JWT and token settings
  • Features: Enable/disable features

Development

Running Tests

dub test

Code Organization

  • Core Layer: Domain models (Document, Folder, User, etc.)
  • API Layer: REST endpoints and request handling
  • Storage Layer: Data persistence and repository pattern
  • Auth Layer: User authentication and authorization
  • Workflow Layer: Document workflow management

Future Enhancements

  • [ ] Database integration (PostgreSQL/MongoDB)
  • [ ] File storage backend (S3, MinIO)
  • [ ] Advanced workflow engine
  • [ ] Audit logging system
  • [ ] Notification system
  • [ ] Document conversion services
  • [ ] Full-text search indexing
  • [ ] Web UI with UIM-framework
  • [ ] Docker containerization
  • [ ] Kubernetes deployment

Contributing

  1. Create a feature branch
  2. Make your changes
  3. Write tests
  4. Submit a pull request

License

MIT License - See LICENSE file for details

References

Support

For issues, questions, or contributions, please refer to the project documentation.

Version: 0.1.0 Last Updated: January 2026

Authors:
  • Ozan Nurettin Süel
Dependencies:
uim-framework
Versions:
0.1.1 2026-Jan-25
~main 2026-Jan-26
Show all 2 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 6 downloads total

Score:
0.1
Short URL:
uim-ecm-server.dub.pm