Skip to main content

Welcome Developers

Welcome to the OpenRegister development documentation. This guide will help you set up your first development environment with OpenRegister.

Setting Up a Production Environment

Step 1: Setting Up a Generic Nextcloud Development Environment

To begin, you need to install Nextcloud. Follow the official Nextcloud installation guide to set up a generic Nextcloud environment on your server or local machine. Ensure that the Nextcloud instance is configured and running smoothly.

Step 2: Setting Up This Specific Repository

With Nextcloud operational, proceed to set up the OpenRegister repository. Clone the repository from GitHub into the apps-extra folder of your Nextcloud installation using the following command:

git clone https://github.com/your-repo/OpenRegister.git /path/to/nextcloud/apps/OpenRegister

Navigate into the cloned repository and install the necessary dependencies with:

cd /path/to/nextcloud/apps-extra/OpenRegister
npm install
composer install

Step 3: Useful Commands

After setting up, there are several commands that can assist you in development. To watch for changes and automatically rebuild the project, use:

npm run watch

To ensure your code is properly formatted, run the linting command:

npm run lint

Step 4: Setting Up a Database Connection

The next step is to set up a database connection. Use DBeaver as your database management tool, which can be downloaded from https://dbeaver.io/. Open DBeaver and configure a new database connection to your Nextcloud database using the following default settings:

SettingValue
hostlocalhost
port8215
databasenextcloud
usernamenextcloud
passwordnextcloud

By completing these steps, you will have a fully functional development environment for OpenRegister. Happy coding!

Core Services

OpenRegister is built on several key services that handle different aspects of the application:

Performance & Caching

Object Management

  • ObjectService: High-level object orchestration and bulk operations
  • SaveObject: Individual object save/create/update logic with relations handling
  • GetObject: Object retrieval with RBAC and multi-tenancy
  • DeleteObject: Object deletion with cascade handling

Data Validation

  • ValidateObject: Schema validation and error handling
  • ValidationService: General validation utilities

Search & Faceting

  • FacetService: Hyper-performant faceting system with intelligent caching
  • SearchService: Full-text search capabilities
  • SearchTrailService: Search analytics and trail logging

Configuration & Schema

  • ConfigurationService: Schema and register configuration management
  • SchemaPropertyValidatorService: Schema property validation

Multi-tenancy & Organizations

  • OrganisationService: Multi-tenant organization management
  • RegisterService: Register lifecycle management

Import/Export

  • ImportService: Bulk data import capabilities
  • ExportService: Data export in various formats
  • UploadService: File upload handling

Files & Assets

  • FileService: File attachment management
  • DownloadService: File download and streaming

For detailed technical documentation on these services, see the Cache Invalidation System and Unified Faceting System.