info@ejadtech.sa
966555861076
+

Enterprise Architecture Software Architecture

Document Change Control

Release NoRelease DateIssued ByVersion CommentClickUp Version Time
1.025/06/2025Ayman Mohamedinitial version on ClickUp

 

1.127/11/2025Mahmoud El-BadryUpdate document

 

List of Approvers

NameTitleApproved Release No
Ayman MohamedSoftware Manager

 

Tarek RamadanSoftware Development Director

 

Mahmoud Ezz.EldeenBranch Manager

 

Hamza AbdelrazikCTO

 

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:

  1. 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?
  2. Data Architecture (DA): Defines how data is structured, stored, and shared. Key focus: Implementing the National Data Management Office (NDMO) standards.
  3. 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)?
  4. Technology Architecture (TA): The underlying infrastructure (Cloud, Servers, Network). Key focus: Moving to the Government Cloud (Deem) or approved cloud providers.

  

3. Abbreviations & Definitions

AbbreviationDefinition
Application Programming InterfaceA set of rules that allows one piece of software to interact with another.
Model View ControllerArchitectural pattern separating business logic, UI, and input logic.
Object-Relational MappingConverts data between databases and objects (e.g., Odoo ORM, SQLAlchemy).
Continuous Integration / Continuous DeploymentAutomated 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:

  1. (Nora):
    • Represents Base of EA in the Saudi Arabia.
    • EA interacts with this system to process and update EA.
  2. (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 IDDecision SummaryAlternatives ConsideredRationaleImpacted ModulesDateOwner
1AD-001Choose between Implement Project Stages or Depend on Category Stages Use default Odoo approvals- Logical Requirement- Team Knowledge- Community Support  projects2024-05-1Lead Architect

 

2AD-002Use hr jobscore module and do enhance on it

 

Use default Odoo approvalsThe default was too rigidejad_erp_hr2024-05-1Lead Architect

 

3AD-003Generate New model for “الدليل المهني الموحد”

 

Generate new custom model to fit needsThe default was not fill the gapsejad_erp_hr2024-05-1Lead Architect

 

4AD-004User default accounting module and enhance on it

 

Generate new custom model to fit needsThe default was not fill tall needed requirementsnajran_accounting_enhancement2024-10-1Product Owner

 

5AD-005Enhance on stock module to fit all needsDepend on Stock.picking we generate new views and workflow for inventoryThe default was not fill tall needed requirementsnajran_inventory_custom2024-10-31Product Owner
6AD-006Enhance on Leaves module to fit all needsDepend on hr.leaves we generate new views and workflow for HolidaysThe default was not fill tall needed requirementsejad_erp_holidays2024-12-01Product Owner

   

#Module NameCategory(Default, Customized, built from scratch, Third Party Module)DAR Link

 

ITSMSDLCSurveysDocumentsProjectsAdministration CommunicationsTasks CoursesCustomizedfrom scratchDefaultDefaultCustomizedfrom scratchCustomizedDefaultLinkLinkLinkLinkLinkLinkLinkLink

   - 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