Comprehensive web-based event management and conference lifecycle management platform.
npx @tessl/cli install tessl/pypi-indico@3.3.00
# Indico
1
2
Indico is a comprehensive web-based conference lifecycle management and meeting/lecture scheduling tool. It provides a complete event management platform with features for organizing conferences, managing meetings, handling registrations, paper reviewing, and room booking. As a web application framework, Indico's public API focuses on administrative operations via CLI commands, extension development via plugins, and testing infrastructure for developers.
3
4
## Package Information
5
6
- **Package Name**: indico
7
- **Package Type**: pypi
8
- **Language**: Python
9
- **Installation**: `pip install indico`
10
11
## Core Imports
12
13
```python
14
# Plugin development
15
from indico.core.plugins import IndicoPlugin, PluginCategory
16
from indico.core.plugins import url_for_plugin, get_plugin_template_module
17
18
# CLI development
19
from indico.cli.core import cli_command, cli_group
20
21
# Testing utilities
22
from indico.testing.util import bool_matrix
23
# Fixtures are automatically available when using the pytest plugin
24
```
25
26
## Basic Usage
27
28
### Creating a Plugin
29
30
```python
31
from indico.core.plugins import IndicoPlugin, PluginCategory
32
33
class MyPlugin(IndicoPlugin):
34
"""A simple Indico plugin example."""
35
36
configurable = True
37
category = PluginCategory.other
38
default_settings = {
39
'enabled': False,
40
'max_items': 10
41
}
42
43
def init(self):
44
"""Initialize the plugin when loaded."""
45
super().init()
46
# Plugin initialization code here
47
48
def get_blueprints(self):
49
"""Return Flask blueprints for this plugin."""
50
return []
51
```
52
53
### Using CLI Commands
54
55
```bash
56
# Initialize database
57
indico db prepare
58
59
# Compile translations
60
indico i18n compile
61
62
# Create new user
63
indico user create admin@example.com
64
```
65
66
## Architecture
67
68
Indico follows a modular architecture designed for extensibility:
69
70
- **Core Framework**: Flask-based web application with SQLAlchemy ORM
71
- **Plugin System**: Extensible architecture allowing custom functionality via plugins
72
- **CLI Interface**: Administrative commands for system management and maintenance
73
- **Settings Management**: Hierarchical settings system (global, event-specific, user-specific)
74
- **Testing Infrastructure**: Comprehensive test fixtures and utilities for development
75
76
The plugin system is the primary extension mechanism, enabling custom event types, payment processors, authentication providers, and integration with external systems.
77
78
## Capabilities
79
80
### Command Line Interface
81
82
Administrative and management commands for database operations, user management, event lifecycle management, internationalization, and system maintenance.
83
84
```python { .api }
85
def cli(): ...
86
def cli_command(name=None, **attrs): ...
87
def cli_group(name=None, **attrs): ...
88
```
89
90
[CLI Commands](./cli-commands.md)
91
92
### Plugin Development API
93
94
Base classes and utilities for creating Indico plugins, including settings management, blueprint registration, template hooks, and event handling.
95
96
```python { .api }
97
class IndicoPlugin:
98
configurable: bool = False
99
category: PluginCategory = PluginCategory.other
100
default_settings: dict = {}
101
default_event_settings: dict = {}
102
default_user_settings: dict = {}
103
acl_settings: set = set()
104
strict_settings: bool = True
105
106
def init(self): ...
107
def get_blueprints(self): ...
108
def get_vars_js(self): ...
109
```
110
111
[Plugin Development](./plugin-development.md)
112
113
### Testing Infrastructure
114
115
Comprehensive testing utilities including pytest integration, test fixtures for events, users, rooms, and other domain objects, plus utilities for parameterized testing.
116
117
```python { .api }
118
def bool_matrix(template, mask, expect): ...
119
```
120
121
[Testing Utilities](./testing-utilities.md)