
Enterprise Architecture Software Architecture
Document Change Control
| Release No | Release Date | Issued By | Version Comment | ClickUp Version Time |
| 1.0 | 25/06/2025 | Ayman Mohamed | initial version on ClickUp |
|
| 1.1 | 27/11/2025 | Mahmoud El-Badry | Update document |
|
List of Approvers
| Name | Title | Approved Release No |
| Ayman Mohamed | Software Manager |
|
| Tarek Ramadan | Software Development Director |
|
| Mahmoud Ezz.Eldeen | Branch Manager |
|
| Hamza Abdelrazik | CTO |
|
1. Introduction
This document outlines the software architecture and high-level design decisions for the EA Project.
2. System Overview
EA follows industry standards (like TOGAF) but is customized for the Saudi government context. It is built on four core architecture layers that you will need to document for your enterprise:
- Business Architecture (BA): Defines your entity's services, processes, and strategy. Question to ask: What services does my entity provide to citizens or other government bodies?
- Data Architecture (DA): Defines how data is structured, stored, and shared. Key focus: Implementing the National Data Management Office (NDMO) standards.
- Application Architecture (AA): Maps out your software portfolio. Key focus: Which applications are redundant? Which ones need to talk to the National Information Center (NIC)?
- Technology Architecture (TA): The underlying infrastructure (Cloud, Servers, Network). Key focus: Moving to the Government Cloud (Deem) or approved cloud providers.
3. Abbreviations & Definitions
| Abbreviation | Definition |
| Application Programming Interface | A set of rules that allows one piece of software to interact with another. |
| Model View Controller | Architectural pattern separating business logic, UI, and input logic. |
| Object-Relational Mapping | Converts data between databases and objects (e.g., Odoo ORM, SQLAlchemy). |
| Continuous Integration / Continuous Deployment | Automated testing, building, and deployment of code. |
4. Architectural Principles
- Adherence to standard Odoo architecture practices
- Avoidance of core modifications
- Emphasis on modular and maintainable code
- Support for the Arabic language
- Compliance with local regulations (e.g., NCA, Nafath)
5. High-Level Architecture Diagram
- Context Diagram

.1 External Entities:
- (Nora):
- Represents Base of EA in the Saudi Arabia.
- EA interacts with this system to process and update EA.
- (Nafath):
- Nafath is likely a government identity verification system used for user authentication.
- EA communicates with Nafath to verify user identity and validate credentials.
5.2 Internal Entities:
1.(HR System) As Example:
- Represents the licensing system or authority responsible for managing license issuance, renewals, and related activities.
- EA interacts with this system to process and update licenses.
2.(Emails) As an Example:
- Represents the licensing system or authority responsible for managing license issuance, renewals, and related activities.
- EA interacts with this system to process and update licenses.
5.3 Architecture Design.
- Colors:
- Default Modules: Light Green
- Customized Modules: Light Blue
- Built From Scratch: Light Red
6. Client Layer (Front-End)
- User Interfaces (UI): Provides an intuitive, user-friendly interface for end-users to access electronic services and manage their licenses.
- Technologies: Odoo v17, Python 3.10, PostgreSQL 16 for database, and an efficient component-based architecture.
- Access Points: Web Application (browser-based interface for service access, license applications, status tracking, and payments).
- Authentication & Authorization: Utilizes OAuth 2.0 or JWT tokens for secure access and Single Sign-On (SSO) across services.
7. Service Layer (Business Logic)
- Service-Oriented Architecture (SOA): Designed with modular, reusable, and loosely coupled services.
- Microservices:
- Electronic Services Management: Manages service requests, workflows, and fulfillment.
- License Management: Manages the lifecycle of licenses (application, issuance, renewal, revocation).
- Payment Gateway: Integrates with third-party payment services like Sadad.
- Notification Service: Sends notifications (SMS, email) to end-users about service/license status.
- Analytics Service: Tracks user activity and service utilization.
- API Gateway: Exposes services via REST, using API Gateway tools such as Kong, AWS API Gateway, or Nginx.
8. Data Layer (Database & Storage)
- Database: PostgreSQL for structured data (user information, transactions, licenses) and MongoDB for unstructured data (logs, notifications).
- Document Management System (DMS): Stores documents (scanned licenses, certificates) using Odoo Filestore or Google Cloud Storage.
9. Integration Layer
- External Systems Integration: Connects with external governmental or regulatory systems for verification.
- Third-Party APIs: Integrates for payment processing and address verification, such as Nafath.
- Enterprise Service Bus (ESB): Employs Apache Camel to orchestrate communication between services and external systems.
- - Component Diagram.
- - ERD.
11. External Interfaces
11.1 Nafath
Interface Summary
- Interface Name: Nafath Authentication API
- Direction: Outbound
- Protocol: HTTPS (REST API)
- Format: JSON
- Adding Swaqqer or Postman Collection Reference Link
11.2 Active Directory
Interface Summary
- Interface Name: Nafath Authentication API
- Direction: Outbound
- Protocol: HTTPS (REST API)
- Format: JSON
- Adding Swaqqer or Postman Collection Reference Link
12. Architectural Decisions
| # | Decision ID | Decision Summary | Alternatives Considered | Rationale | Impacted Modules | Date | Owner |
| 1 | AD-001 | Choose between Implement Project Stages or Depend on Category Stages | Use default Odoo approvals | - Logical Requirement- Team Knowledge- Community Support | projects | 2024-05-1 | Lead Architect
|
| 2 | AD-002 | Use hr jobscore module and do enhance on it
| Use default Odoo approvals | The default was too rigid | ejad_erp_hr | 2024-05-1 | Lead Architect
|
| 3 | AD-003 | Generate New model for “الدليل المهني الموحد”
| Generate new custom model to fit needs | The default was not fill the gaps | ejad_erp_hr | 2024-05-1 | Lead Architect
|
| 4 | AD-004 | User default accounting module and enhance on it
| Generate new custom model to fit needs | The default was not fill tall needed requirements | najran_accounting_enhancement | 2024-10-1 | Product Owner
|
| 5 | AD-005 | Enhance on stock module to fit all needs | Depend on Stock.picking we generate new views and workflow for inventory | The default was not fill tall needed requirements | najran_inventory_custom | 2024-10-31 | Product Owner |
| 6 | AD-006 | Enhance on Leaves module to fit all needs | Depend on hr.leaves we generate new views and workflow for Holidays | The default was not fill tall needed requirements | ejad_erp_holidays | 2024-12-01 | Product Owner |
| # | Module Name | Category(Default, Customized, built from scratch, Third Party Module) | DAR Link |
| ITSMSDLCSurveysDocumentsProjectsAdministration CommunicationsTasks Courses | Customizedfrom scratchDefaultDefaultCustomizedfrom scratchCustomizedDefault | LinkLinkLinkLinkLinkLinkLinkLink |
- Use PostgreSQL instead of MySQL for full Odoo support- Use XML-RPC for internal integrations instead of direct DB calls
13. Non-Functional Requirements
- Performance: < 3 seconds average response time- Availability: 99.9% uptime required- Security: OAuth2, SSL/TLS, API Keys- Scalability: Multi-tenant support for future SaaS expansion
14. Integrations
- Swagger:
Swaggerhubapp.swaggerhub.com/apis/MELBADRY_1/Mwan-...
- Postman Collection:
Swaggerhubapp.swaggerhub.com/apis/MELBADRY_1/Mwan-...