Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions docs/developer_guide/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,23 @@ Some examples of modularity are:
- Calculation of entitlement
- {term}`deduplication` of beneficiaries

## High-level Functional Reference Architecture
## High-level functional reference architecture

![High-level functional reference architecture diagram showing data layer, Odoo core, Open G2P core, functional layer, user engagement layer, stakeholders layer, and integration layer](architecture/highlevel_architecture.jpg)

The OpenSPP functional architecture diagram above presents an overview of the components and layers of a typical OpenSPP implementation.

**Data Layer**
**Data layer**

The Data Layer is responsible for storing and managing the data generated by and used within the OpenSPP system.
It consists of the following:

- **Database:** The database stores structured data, such as program information, {term}`beneficiary` records, and transaction data.
It uses a relational database management system (RDBMS) such as PostgreSQL.
- **Object Storage:** Object Storage is a component that stores unstructured data, such as images, documents, or other multimedia files.
- **Object storage:** Object Storage is a component that stores unstructured data, such as images, documents, or other multimedia files.
Currently, file storage has been used.

**Data Access Layer/Odoo ORM**
**Data access Layer/Odoo ORM**

The layer simplifies data interaction through object-oriented constructs and offers CRUD operations, querying, and filtering.

Expand Down Expand Up @@ -104,7 +104,7 @@ Non-functional requirements are the characteristics of the OpenSPP platform that
These include security, privacy, audibility, monitoring, performance, scalability, availability, and maintainability.
Only a couple of non-functional requirements are shown in the diagram.

## High-level Deployment Reference Architecture
## High-level deployment reference architecture

The on-premises deployment of OpenSPP encompasses a suite of interconnected components, each playing a vital role in delivering secure, robust, and highly efficient service.
This document is intended to provide an high-level understanding of the OpenSPP on-premises deployment architecture and its key components.
Expand All @@ -118,30 +118,30 @@ This document is intended to provide an high-level understanding of the OpenSPP
Serving as the entry point, the Firewall regulates the inbound and outbound network traffic based on predetermined security rules.
It protects the system's integrity by preventing unauthorized access and mitigating potential security threats.

**Application Load Balancer**
**Application load balancer**

The Load Balancer optimizes the performance of OpenSPP application servers by evenly distributing the incoming network traffic across multiple servers.
This not only enhances resource utilization and throughput but also prevents server overload.
The presence of active and passive nodes ensures failover protection and high availability.

**Identity Server**
**Identity server**

The Identity Server effectively manages user identities and controls access to resources.
It employs advanced features such as single sign-on, access delegation, and identity federation to ensure secure and compliant access to system resources.

**API Manager**
**API manager**

The API Manager in OpenSPP manages and secures APIs, controls access, and collects usage analytics.
Acting as a gateway, it validates and routes API calls, manages request rates, and supports API versioning.
It's instrumental in enhancing system security and optimizing service quality.

**OpenSPP Application Servers**
**OpenSPP application servers**

These servers form the nucleus of the OpenSPP system.
They execute the OpenSPP application and coordinate with databases and the API Gateway.
The use of active and passive nodes guarantees continuous service and failover protection.

**Database Load Balancer**
**Database load balancer**

The Database Load Balancer facilitates the efficient distribution of database queries across various instances.
This ensures optimal resource usage and high availability of database {term}`services`.
Expand All @@ -152,36 +152,36 @@ Databases serve as the data storage centers of the system.
They interact directly with the application servers and are crucial for OpenSPP's functioning.
Given the large volume of data handled by OpenSPP, a scalable and highly available database system is indispensable.

**Caching Databases**
**Caching databases**

Caching Databases enhances system performance by temporarily storing frequently accessed data.
This reduces the strain on primary databases and expedites data retrieval processes.

**Object Storage**
**Object storage**

This component caters to storing unstructured data such as files.
Its high scalability makes it an ideal solution for storing large data volumes.

**File Storage**
**File storage**

File Storage manages the storage of structured data in a hierarchical file system.
It handles files such as documents and spreadsheets.

**Email Gateway**
**Email gateway**

The Email Gateway is tasked with managing email communications in a secure and efficient manner.
It plays a pivotal role in sending and receiving emails within the system.

**SMS Gateway**
**SMS gateway**

The SMS Gateway allows the system to send and receive SMS messages, ensuring a seamless channel for alerts, notifications, and two-factor {term}`authentication`.

**Monitoring and Alerting System**
**Monitoring and alerting system**

This component vigilantly monitors the health and performance of the system.
It promptly issues alerts for any detected anomalies or performance issues, ensuring rapid response and resolution.

**Log Aggregation**
**Log aggregation**

The Log Aggregation component centralizes log data collection from all system components.
It is a critical tool for analyzing system behavior, aiding in diagnosing and troubleshooting issues.
Expand Down
4 changes: 2 additions & 2 deletions docs/developer_guide/index.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
myst:
html_meta:
"title": "Developer Guide"
"title": "Developer guide"
"description": "Technical documentation and guides for developers working with OpenSPP - setup, architecture, module development, integrations, and API usage"
"keywords": "OpenSPP, developer guide, technical documentation, module development, API, integration, architecture"
---

# Developer Guide
# Developer guide

This section provides technical information and instructions for developers who need to customize, extend, integrate with, or contribute to OpenSPP.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer_guide/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ myst:

# Development setup

## OpenSPP Docker Setup Using Doodba
## OpenSPP Docker setup using Doodba

Docker simplifies the installation of Odoo and its dependencies, with the added benefits offered by Doodba.

Expand Down
14 changes: 7 additions & 7 deletions docs/getting_started/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ myst:
"keywords": "OpenSPP, installation, setup, SP-MIS, Social Registry, Farmer Registry"
---

# Getting Started
# Getting started

Welcome to OpenSPP! This guide will help you get your social protection platform up and running quickly.

Expand All @@ -15,25 +15,25 @@ Welcome to OpenSPP! This guide will help you get your social protection platform
:::::{grid} 2
:gutter: 3

::::{grid-item-card} New Installation
::::{grid-item-card} New installation

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The heading should be in sentence case, capitalizing only the first word and proper nouns. This improves readability and consistency in the documentation.

Suggested change
::::{grid-item-card} New installation
:::::{grid-item-card} New installation

Start here if you're setting up OpenSPP for the first time:

1. **{doc}`Installation Guide <installation_deb>`**
1. **{doc}`Installation guide <installation_deb>`**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The heading should be in sentence case, capitalizing only the first word and proper nouns. This improves readability and consistency in the documentation.

Suggested change
1. **{doc}`Installation guide <installation_deb>`**
1. **{doc}`Installation guide <installation_deb>`**

Install OpenSPP on Debian/Ubuntu (30 minutes)

2. **{doc}`Module Installation <module_installation>`**
2. **{doc}`Module installation <module_installation>`**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The heading should be in sentence case, capitalizing only the first word and proper nouns. This improves readability and consistency in the documentation.

Suggested change
2. **{doc}`Module installation <module_installation>`**
2. **{doc}`Module installation <module_installation>`**

Choose {doc}`SP-MIS <../overview/products/sp_mis>`, {doc}`Social Registry <../overview/products/social_registry>`, or {doc}`Farmer Registry <../overview/products/farmer_registry>`

3. **Initial Setup**
3. **Initial setup**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The heading should be in sentence case, capitalizing only the first word and proper nouns. This improves readability and consistency in the documentation.

Suggested change
3. **Initial setup**
3. **Initial setup**

Configure your first program and import data
::::

::::{grid-item-card} Learn the System
::::{grid-item-card} Learn the system

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The heading should be in sentence case, capitalizing only the first word and proper nouns. This improves readability and consistency in the documentation.

Suggested change
::::{grid-item-card} Learn the system
:::::{grid-item-card} Learn the system

Explore OpenSPP's capabilities:

- **{doc}`Features <../overview/features/index>`** - Understand key features
- **{doc}`Products <../overview/products/index>`** - Choose the right product configuration
- **{doc}`User Guide <../user_guide/index>`** - Learn day-to-day operations
- **{doc}`User guide <../user_guide/index>`** - Learn day-to-day operations
::::
:::::

Expand Down
44 changes: 22 additions & 22 deletions docs/getting_started/installation_deb.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ myst:
"keywords": "OpenSPP, installation, Ubuntu 24.04, Debian 12, PostgreSQL, APT repository, setup guide"
---

# Installation Guide
# Installation guide

This guide walks you through installing OpenSPP on Ubuntu 24.04 or Debian 12 (Bookworm) using the official APT repository hosted on Nexus.

Expand All @@ -22,7 +22,7 @@ Before installing OpenSPP, ensure you have:
- Internet connection for downloading packages
- Access to https://builds.acn.fr (OpenSPP APT repository)

## Step 1: Update System
## Step 1: Update system

First, ensure your system is up to date and install `wget` and `gnupg2`:

Expand All @@ -41,7 +41,7 @@ sudo apt-get install -y postgresql postgresql-client
sudo systemctl status postgresql
```

## Step 3: Configure OpenSPP Repository
## Step 3: Configure OpenSPP repository

Add the OpenSPP Public Key and APT repository to your system:

Expand All @@ -61,7 +61,7 @@ Install OpenSPP directly from the repository:
sudo apt-get install -y openspp-17-daily
```

### Alternative: Manual Download
### Alternative: Manual download

If you prefer to download the package manually or the repository is not accessible:

Expand Down Expand Up @@ -102,7 +102,7 @@ sudo -u postgres psql -c "ALTER USER openspp WITH PASSWORD 'your_secure_password

## Step 6: Configure OpenSPP

### Basic Configuration
### Basic configuration

The main configuration file is located at `/etc/openspp/odoo.conf`.

Expand All @@ -125,15 +125,15 @@ Find and update these lines (paste the generated password):
admin_passwd = YOUR_STRONG_PASSWORD_HERE
```

2. **Database Management Settings**:
2. **Database management settings**:

```ini
; Database Management
list_db = True ; IMPORTANT: Set to True to enable database creation via web UI
; Set to False for production (more secure)
```

3. **Queue Job Configuration** (REQUIRED for OpenSPP):
3. **Queue job configuration** (REQUIRED for OpenSPP):

OpenSPP uses the queue_job module for asynchronous operations. The package includes default configuration, but you may need to adjust it:

Expand Down Expand Up @@ -170,7 +170,7 @@ longpolling_port = 8072 ; For real-time features
log_level = info ; Options: debug, info, warning, error, critical
```

### Database Configuration
### Database configuration

By default, the package is configured to use Unix socket authentication (peer). This means the `openspp` system user can connect to PostgreSQL without a password.

Expand All @@ -186,7 +186,7 @@ db_host = localhost
db_password = your_postgresql_password
```

## Step 7: Start OpenSPP Service
## Step 7: Start OpenSPP service

### Enable the service to start on boot
```bash
Expand All @@ -210,9 +210,9 @@ Required to apply any changes to the configuration:
sudo systemctl restart openspp
```

## Step 8: Create Your First Database
## Step 8: Create your first database

### Option A: Via Web Interface (Recommended)
### Option A: Via web interface (recommended)

**Prerequisites**: Ensure `list_db = True` is set in `/etc/openspp/odoo.conf` (see Step 6).

Expand All @@ -233,7 +233,7 @@ sudo systemctl restart openspp

3. Click "Create Database" and wait (this may take 2-3 minutes)

### Option B: Via Command Line
### Option B: Via command line

Create the database, then restart the service:
```bash
Expand All @@ -253,7 +253,7 @@ Once the database is created:
- **Email**: The email you provided during database creation
- **Password**: The password you set for the admin user

## Step 10: Install OpenSPP Modules
## Step 10: Install OpenSPP modules

After logging in, you'll need to activate the OpenSPP modules:

Expand All @@ -270,17 +270,17 @@ After logging in, you'll need to activate the OpenSPP modules:
## Getting Help

- **Documentation**: https://docs.openspp.org
- **Community Forum**: https://community.openspp.org
- **Issue Tracker**: https://github.com/openspp/openspp-modules/issues
- **Email Support**: support@openspp.org
- **APT Repository**: https://builds.acn.fr/repository/apt-openspp/
- **Community forum**: https://community.openspp.org
- **Issue tracker**: https://github.com/openspp/openspp-modules/issues
- **Email support**: support@openspp.org
- **APT repository**: https://builds.acn.fr/repository/apt-openspp/


## Next Steps
## Next steps

Now that OpenSPP is installed, here are some recommended next steps:

- **Learn to Use OpenSPP**: Start with the {doc}`../user_guide/index` to understand core features.
- **Administer the System**: Refer to the {doc}`../user_guide/administration/index` for guides on security, maintenance, and troubleshooting.
- **Customize and Develop**: Explore the {doc}`../developer_guide/index` to learn how to extend the platform.
- **Set Up a Pilot Program**: Follow the {doc}`../overview/poc_and_pilot` guide to launch a Proof of Concept (PoC).
- **Learn to use OpenSPP**: Start with the {doc}`../user_guide/index` to understand core features.
- **Administer the system**: Refer to the {doc}`../user_guide/administration/index` for guides on security, maintenance, and troubleshooting.
- **Customize and develop**: Explore the {doc}`../developer_guide/index` to learn how to extend the platform.
- **Set Up a pilot program**: Follow the {doc}`../overview/poc_and_pilot` guide to launch a Proof of Concept (PoC).
Loading