20 مستودعات
Mediator layers that decouple the domain logic from specific data source implementations.
Distinct from Backend Data Access Layers: Focuses on the repository as a mediator between layers rather than a generic backend data access layer.
Explore 20 awesome GitHub repositories matching data & databases · Repository Patterns. Refine with filters or upvote what's useful.
This project is a collection of reference implementations demonstrating recommended patterns for organizing code and managing data flow in Android applications. It provides structural examples of layered architecture, separating code into presentation, domain, and data layers to decouple business logic from data sources. The repository includes specific samples for implementing declarative user interfaces that automatically update their visual state based on underlying data changes. It further demonstrates how to manage object lifetimes and component dependencies to reduce boilerplate and sim
Uses a repository-based data access pattern to separate the presentation layer from local and remote data sources.
This project is an ASP.NET Core solution template and boilerplate that implements a clean architecture pattern for building enterprise applications and web API backends. It provides a standardized project scaffold designed to separate business logic from infrastructure and user interfaces to ensure high testability and low coupling. The project features a database agnostic structure that allows for switching persistence providers without altering core business logic. It includes a command line tool for enterprise application bootstrapping, enabling the automated generation of project structur
Abstracts data persistence behind a standard interface to decouple business logic from specific database technologies.
This is a reference implementation of Uncle Bob's clean architecture for Android, structured into distinct domain, data, and presentation layers. The project demonstrates how to organize an Android application around business use cases, keeping domain logic and entities free from framework dependencies. The architecture enforces dependency inversion through layered separation, where inner domain layers define interfaces that outer layers implement. This approach enables repository abstractions for data source switching, presenter-view separation for testable UI logic, and use-case composition
A pattern that decouples data sources from business logic by defining repository interfaces in the domain layer and implementing them in the data layer.
eShopOnWeb is a reference application for ASP.NET Core that demonstrates a sample e-commerce site. It serves as a template for building scalable services using domain-driven design to separate business logic from infrastructure and data access. The project implements a decoupled messaging pattern through a request pipeline to separate web controllers from application logic. It utilizes a repository pattern to abstract data persistence and isolate the core application logic from the specific database storage mechanism. The application covers a broad surface of web capabilities, including user
Utilizes the repository pattern to abstract data persistence and isolate domain logic from the database.
Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc
Implements the repository pattern to encapsulate query logic and decouple the domain layer from data access.
This project is a boilerplate and template for Go applications implementing Clean Architecture. It provides a standardized project structure designed to organize code into decoupled layers, ensuring that core business logic remains independent of databases, frameworks, and user interfaces. The implementation focuses on a domain-driven design that utilizes dependency injection and the repository pattern to abstract data storage. It enforces architectural boundaries through internal package encapsulation and layer-based dependency inversion. The project includes a development toolchain that au
Decouples domain logic from specific data storage implementations through the repository pattern.
This project is a reference implementation of the Model-View-ViewModel pattern using Android Jetpack components. It serves as an architecture template and layering guide, dividing application code into view, domain, and data layers to ensure a unidirectional flow of dependencies. The implementation focuses on state management and configuration change handling. It demonstrates how to synchronize UI updates across multiple screens using shared state containers and preserves application state during transitions between portrait and landscape orientations. The codebase covers a broad surface of
Abstracts data sources into a single API to decouple business logic from network or local database implementations.
Tivi is a cross-platform application for discovering and tracking television shows, built with Kotlin Multiplatform and Compose Multiplatform to share its user interface across Android, iOS, and desktop platforms. The app follows the Model-View-Intent (MVI) architecture pattern, where user actions are modelled as sealed class intents that reduce into a single immutable state object, ensuring predictable and unidirectional data flow managed through Kotlin coroutines and StateFlow. The application uses Hilt for compile-time dependency injection and SQLDelight for type-safe local data storage, c
Combines Retrofit network calls with SQLDelight local caching for offline data access.
This project is a PHP library for implementing a spec-compliant OAuth 2.0 authorization server. It serves as an authentication framework for managing user identities and client authorizations, providing the necessary components to issue and validate access and refresh tokens. The server supports a wide range of standardized authorization flows, including authorization code exchange, device grants, implicit flows, and PKCE enforcement. It handles complex token lifecycles through refresh token rotation, scope management, and the use of asymmetric keys for signing digital tokens. The system pro
Uses the repository pattern to decouple domain logic from specific database implementations.
This project is a TypeScript-based private API SDK and automation framework for Instagram. It serves as a server-side toolkit for NodeJS that interfaces with undocumented API endpoints to programmatically manage profiles and automate account operations. The library focuses on mimicking authentic user behavior by simulating mobile application network traffic patterns and headers. It uses stateful session management to maintain authentication tokens and employs a sequence-based coordination model to execute complex workflows, such as multi-step media uploads. The framework covers several high-
Organizes low-level network requests into dedicated repositories to isolate raw API calls from business logic.
Hanami is a full-stack Ruby web framework and API platform designed for building maintainable applications. It centers on a modular web architecture that organizes software into independent slices to prevent monolithic growth and isolate functional units. The framework implements a clean architecture by decoupling business logic from persistence and request handling. This is achieved through a central dependency injection container for managing object lifetimes and a repository pattern mapper that separates domain entities from the persistence layer. The project further provides a Rack-compa
Uses the repository pattern to decouple domain entities from the persistence layer.
هذا المشروع عبارة عن تنفيذ مرجعي لأنماط التصميم الموجه بالمجال (Domain-Driven Design)، ونمذجة المجال الوظيفي، وتنسيق الحالة المدفوع بالأحداث. يوضح تطبيق أنماط التصميم الاستراتيجية والتكتيكية لإدارة متطلبات العمل المعقدة. يستخدم التنفيذ نموذج مجال وظيفي مع وظائف نقية وكائنات غير قابلة للتغيير لإدارة انتقالات الحالة والآثار الجانبية. ويتميز ببنية فصل مسؤولية الأمر والاستعلام (CQRS) لفصل نماذج القراءة والكتابة، إلى جانب التنسيق المدفوع بالأحداث للحفاظ على الاتساق عبر حدود العمل المستقلة. تتضمن قاعدة الكود بنية متجانسة معيارية باستخدام سياقات محدودة وطبقات سداسية لعزل المنطق الأساسي عن البنية التحتية. تتم إدارة ضمان الجودة من خلال مجموعة تطوير مدفوعة بالسلوك تعكس اللغة الشائعة للتحقق من سيناريوهات العمل والاختبارات المؤتمتة التي تفرض قيوداً معمارية. يطبق المشروع هذه الأنماط على مجال إدارة المكتبة، ويغطي صيانة كتالوج الكتب، وسير عمل التداول، وعمليات التحقق من الحجز، وتتبع عمليات الخروج المتأخرة.
Uses repositories as a mediator layer to decouple domain logic from specific data source implementations.
هذا المشروع عبارة عن تطبيق مرجعي يوفر مجموعة من الأمثلة العملية لأنماط الوصول إلى البيانات وتجريدات المستودع داخل نظام Spring Data البيئي. يعمل كعرض شامل لتنفيذ طبقات بيانات متسقة عبر قواعد بيانات علائقية وغير علائقية مختلفة. يوضح المستودع بشكل خاص الاستمرارية متعددة المتاجر من خلال دمج قواعد البيانات العلائقية والوثائقية والمتجهية داخل تطبيق واحد. يتضمن تطبيقات للبحث المتجهي لإدارة التضمينات عالية الأبعاد وعمليات البحث عن التشابه عبر تقنيات قواعد بيانات مختلفة. تشمل القدرات الإضافية المغطاة الوصول التفاعلي إلى البيانات للعمليات غير المحظورة وتدفقات البيانات غير المتزامنة. يوفر المشروع أيضاً توجيهاً بشأن تحسين الصورة الأصلية لتحسين أداء بدء التشغيل واستخدام الذاكرة من خلال التجميع المسبق (ahead-of-time compilation). توضح الأمثلة أيضاً عزل البيانات متعدد المستأجرين، وتصميم واجهات برمجة تطبيقات مستودع البيانات، ودمج البحث الجغرافي والمكاني والبحث كامل النص.
Implements repository mediator layers that decouple domain logic from specific data source implementations.
هذا المشروع هو تنفيذ مرجعي ونموذج معماري للتصميم القائم على النطاق (Domain-Driven Design). يعمل كقاعدة برمجية توضح كيفية مواءمة تصميم البرمجيات مع نطاق عمل محدد لإدارة منطق الأعمال المعقد. يعمل التنفيذ كنظام تقارير يستقبل ويعالج البيانات عبر حمولات JSON. يستخدم نموذج نطاق مهيكل لتعريف وأتمتة سير عمل الأعمال والتعامل مع تغييرات الحالة. تقسم البنية النظام إلى طبقات تطبيق ونطاق متميزة، باستخدام جذور التجميع (Aggregate Roots) للاتساق ونمط المستودع (Repository Pattern) للوصول إلى البيانات. تنسق خدمات التطبيق المهام وتفوض المنطق إلى كائنات النطاق لفصل البنية التحتية التقنية عن قواعد الأعمال.
Utilizes the repository pattern to decouple domain business logic from the underlying persistence implementation.
LoopBack Next هو إطار عمل API لـ Node.js يستخدم لبناء واجهات برمجة تطبيقات REST ومتعددة البروتوكولات. يعمل كتنفيذ لخادم OpenAPI يمكنه إما إنشاء مواصفات قابلة للقراءة آلياً من الكود أو إنتاج وحدات تحكم ونماذج تنفيذ من مواصفات موجودة. يتميز إطار العمل بحاوية حقن تبعية مركزية وطبقة وصول للبيانات تعتمد على نمط المستودع (repository pattern). تفصل هذه البنية منطق التطبيق عن بناء المكونات والتخزين الدائم، مما يسمح بنظام قابل للتوصيل حيث يتم عزل مصادر البيانات ومنطق الأعمال من خلال نظام موصل موحد. يغطي المشروع مجموعة واسعة من الإمكانات بما في ذلك التحكم في الوصول القائم على الأدوار مع استراتيجيات مصادقة قابلة للتوصيل وتنسيق خدمات REST و SOAP الخارجية. كما يوفر أدوات للاتصال في الوقت الفعلي عبر نقاط نهاية WebSocket، والتحقق من صحة مخطط JSON، وسقالات المشروع الآلية من خلال واجهة سطر أوامر. يتم دعم التطوير من خلال مجموعة من أدوات CLI لبدء التطبيقات، وإنشاء مكونات API، وإدارة تبعيات المشروع.
Abstracts database logic through a repository layer to decouple business logic from persistent storage implementations.
Crawler4j هو زاحف ويب (web crawler) متعدد الخيوط بلغة Java مصمم للزحف إلى الويب واستخراج المحتوى بأحجام كبيرة. يعمل كإطار عمل للزحف المهذب الذي يتيح اكتشاف وفهرسة محتوى HTML والمحتوى الثنائي عبر مواقع ويب متعددة. يتميز المشروع بنموذج زحف مستمر يقوم بتسلسل حالة الجلسة إلى التخزين المحلي، مما يسمح للمحرك باستئناف الفهرسة بعد حدوث عطل أو انقطاع. يتضمن وحدة تحكم في التهذيب لتنظيم تكرار الطلبات والتأخيرات، مما يمنع تحميل الخادم بشكل زائد وحظر عنوان IP. يغطي النظام مجموعة واسعة من قدرات الزحف، بما في ذلك إدارة النطاق المحدود بالعمق، وتصفية الأهداف، واعتراض الطلبات لوكلاء المستخدم المخصصين وتوجيه الوكيل (proxy). تتم إدارة تخزين البيانات عبر نمط المستودع (repository pattern) الذي يفصل منطق الزحف عن استمرارية بيانات تعريف الصفحة في قواعد البيانات العلائقية.
Uses the repository pattern to decouple crawling logic from the persistence of page metadata.
qksms هو عميل SMS مفتوح المصدر لنظام أندرويد مصمم لإرسال واستقبال الرسائل النصية والوسائط المتعددة عبر الخدمات الخلوية. يعمل كبديل لتطبيقات المراسلة الافتراضية، حيث يوفر واجهة مخصصة لاتصالات النصوص عبر الهاتف المحمول. تم بناء التطبيق كمراسل Material Design، مع التركيز على تجربة بصرية نظيفة من خلال مبادئ التصميم الحديثة. يسمح بتخصيص تجربة مراسلة أندرويد عن طريق استبدال واجهة النظام الافتراضية.
Employs the repository pattern to centralize data access logic between system providers and local caches.
هذا المشروع عبارة عن مكتبة نمط مستودع لتطبيقات Laravel مصممة لفصل منطق الأعمال عن استعلامات قاعدة البيانات وتنفيذ التخزين. يوفر طبقة وصول إلى البيانات موحدة لعزل منطق التطبيق عن طبقة التخزين الأساسية. تتضمن المكتبة نظام تصفية استعلام يترجم معلمات طلب HTTP إلى فلاتر قاعدة بيانات ديناميكية، ومعايير بحث، ومنطق فرز. يتميز بطبقة عرض API لفصل هياكل البيانات الداخلية عن استجابات العميل ومدير ذاكرة تخزين مؤقت يقوم بتحديث نتائج قاعدة البيانات المخزنة تلقائياً عند تعديل السجلات. تشمل الإمكانيات الإضافية أداة سطر أوامر لإنشاء وحدات التحكم والنماذج والمستودعات، بالإضافة إلى فئات التحقق لفرض قواعد العمل قبل حفظ البيانات.
Implements a repository pattern to decouple application business logic from the underlying storage implementation.
This project is a native Android mobile application and Wikipedia client designed for browsing and editing encyclopedia content through a mobile interface. It provides users with a dedicated way to access and search a crowdsourced knowledge base on Android devices. The application features integrated support for global accessibility through mobile localization and the ability to translate interface text into multiple languages. It also utilizes remote configuration to manage operational behavior and feature toggles via JSON files, allowing system settings and logging levels to be adjusted wit
Implements a repository layer that mediates between remote network APIs and local caching for offline access.
This project provides a structured boilerplate for building Node.js REST APIs, implementing clean architecture principles to isolate business logic from external frameworks and data sources. It serves as a template for organizing complex backend services by enforcing a strict separation of concerns between domain entities, infrastructure, and interface layers. The architecture distinguishes itself through a modular, plugin-based server design built on the Hapi.js framework. It utilizes a dependency injection container to decouple business logic from concrete implementations, ensuring that ser
Mediates between domain and data layers using a collection-like interface for persistence.