# Falah OS Master - Repository Guide ## 📚 Overview Falah OS Master is a monorepo structure that manages the Falah Operating System ecosystem through Git submodules. This repository contains links to all core modules and services that make up the complete Falah OS platform. ## 🏗️ Repository Structure This project follows a **modular architecture** with the following components: ``` Falah-OS-Master/ ├── .gitmodules # Submodule configuration ├── README.md # This file ├── falah-os/ # Core OS ├── ulp-portal/ # User Portal ├── falah-os-sdk-py/ # Python SDK ├── falah-os-sdk/ # Main SDK ├── falah-os-mocknet/ # Mock Network ├── alah-os-mocknet/ # Alternative Mock Network ├── falah-os-ummahid/ # UmmaID Component ├── falah-os-ramz/ # RAMZ Component ├── falah-os-admin/ # Admin Dashboard ├── falah-os-app/ # Main Application ├── falah-os-istore/ # Store Interface ├── falah-os-dev-porta/ # Developer Portal └── falah-os-landing/ # Landing Page ``` ## 📋 Module Documentation ### Core Modules | Module | Repository | Purpose | Status | |--------|-----------|---------|--------| | **falah-os** | `maifors/falah-os` | Core operating system kernel and runtime | Active | | **falah-os-sdk** | `maifors/falah-os-sdk` | Main SDK for development | Active | | **falah-os-sdk-py** | `maifors/falah-os-sdk-py` | Python SDK wrapper | Active | ### Portal & Interface Modules | Module | Repository | Purpose | Status | |--------|-----------|---------|--------| | **ulp-portal** | `maifors/ulp-portal` | User Portal Interface | Active | | **falah-os-admin** | `maifors/falah-os-admin` | Administration Dashboard | Active | | **falah-os-dev-porta** | `maifors/falah-os-dev-porta` | Developer Portal | Active | | **falah-os-landing** | `maifors/falah-os-landing` | Marketing Landing Page | Active | ### Application & Service Modules | Module | Repository | Purpose | Status | |--------|-----------|---------|--------| | **falah-os-app** | `maifors/falah-os-app` | Main Application | Active | | **falah-os-istore** | `maifors/falah-os-istore` | App Store Interface | Active | ### Identity & Network Modules | Module | Repository | Purpose | Status | |--------|-----------|---------|--------| | **falah-os-ummahid** | `maifors/falah-os-ummahid` | Identity Management (UmmaID) | Active | | **falah-os-ramz** | `maifors/falah-os-ramz` | RAMZ Protocol/Service | Active | ### Testing & Infrastructure Modules | Module | Repository | Purpose | Status | |--------|-----------|---------|--------| | **falah-os-mocknet** | `maifors/falah-os-mocknet` | Mock Network for Testing | Active | | **alah-os-mocknet** | `maifors/alah-os-mocknet` | Alternative Mock Network | Active | --- ## 🚀 Getting Started ### Prerequisites - Git (v2.13+) - Basic Unix/Linux knowledge - Access to all submodule repositories ### Initial Setup #### Clone the Repository with All Submodules ```bash # Clone with recursive submodules initialization git clone --recurse-submodules https://github.com/Falah-Consultancy-Limited/Falah-OS-Master.git # Navigate to the repository cd Falah-OS-Master ``` #### If Already Cloned Without Submodules ```bash # Initialize and fetch all submodules git submodule update --init --recursive # Or use the shorthand git submodule init git submodule update ``` #### Update All Submodules to Latest ```bash # Fetch the latest commits from all submodules git submodule foreach git pull origin main # Or use the parallel version (Git 2.8+) git submodule foreach --parallel git pull origin main ``` --- ## 📖 Development Workflow (SDLC) ### Phase 1: Planning & Requirements 1. **Issue Creation**: Create GitHub issues for new features/bugs 2. **Milestone Assignment**: Assign to relevant milestones 3. **Documentation**: Update module documentation if affected ### Phase 2: Development #### Branch Strategy (Git Flow) ``` main (production) └── develop (staging) ├── feature/description ├── bugfix/issue-number └── hotfix/issue-number ``` #### Creating Feature Branches ```bash # Update main/develop git checkout develop git pull origin develop # Create feature branch git checkout -b feature/ISSUE-NUMBER-description # For specific module cd falah-os git checkout -b feature/ISSUE-NUMBER-description git push origin feature/ISSUE-NUMBER-description ``` #### Working with Submodules ```bash # Navigate to specific module cd falah-os-admin # Create and checkout feature branch git checkout -b feature/new-feature # Make changes and commit git add . git commit -m "feat: add new feature" # Push changes git push origin feature/new-feature # Go back to master repo cd .. # Update submodule reference (if needed) git add falah-os-admin git commit -m "chore: update falah-os-admin submodule" git push origin feature/ISSUE-NUMBER ``` ### Phase 3: Testing #### Unit Testing ```bash # Run tests in specific module cd npm test # For Node.js projects pytest # For Python projects go test ./... # For Go projects ``` #### Integration Testing ```bash # Use mock networks for integration testing cd falah-os-mocknet # Follow module-specific test documentation ``` #### Staging Deployment - Deploy to staging environment - Run end-to-end tests - Validate across all modules ### Phase 4: Code Review & Quality #### Pull Request Checklist - [ ] Feature branch created from `develop` - [ ] All tests pass locally - [ ] Code follows project style guide - [ ] Documentation updated - [ ] No breaking changes - [ ] Linked to relevant GitHub issues #### Review Requirements - Minimum 2 approvals required - CI/CD pipeline passes - No merge conflicts - Code coverage maintained ### Phase 5: Deployment #### Staging Release ```bash # Create release branch git checkout -b release/v1.x.x develop # Update version numbers and documentation # Test thoroughly # Create PR to main # After approval and merge, tag the release git tag -a v1.x.x -m "Release version 1.x.x" git push origin v1.x.x ``` #### Production Deployment - Merge `release/v1.x.x` to `main` - Tag with version number - Deploy to production - Update all submodules references if needed --- ## 📝 Documentation Standards ### Commit Message Format ``` ():