Skip to content

SAMIRKL/Celestial

 
 

Repository files navigation

🌌 Celestial.Agency – Modular .NET Platform (In Development)

A clean, extensible .NET 9 solution , CQRS, and Clean Architecture principles.
Part of the Celestial Project Series


🚀 Overview

Celestial.Agency is a modular and layered .NET platform designed for enterprise-grade applications. It integrates ASP.NET Core 9, Entity Framework Core, and MediatR to deliver clean separation of concerns and high scalability.

⚙️ Note: This project is currently under active development — new features and modules are being added continuously.


🧩 Project Structure

Celestial.Agency/
│
├── src/
│   ├── Celestial.Agency.Api/         # API Gateway (Presentation Layer)
│   │   ├── Controllers/              # REST endpoints
│   │   ├── Areas/                    # Identity & Admin
│   │   ├── Models/                   # DTOs and ViewModels
│   │   ├── Data/                     # Identity & EF configurations
│   │   ├── appsettings.json          # Configurations
│   │   └── Program.cs                # Entry point
│   │
│   ├── Celestial.Agency.Core/        # Domain Layer
│   │   ├── DAL/                      # Repositories and Interfaces
│   │   │   ├── Model/                # Domain Entities
│   │   │   └── Repositories/         # Repository interfaces
│   │   ├── Enum/                     # Enumerations
│   │   ├── Attributes/               # Custom annotations
│   │   ├── Services/                 # Domain services contracts
│   │   └── AppSetting.cs             # Configuration models
│   │
│   ├── Celestial.Agency.DAL.EF/      # Infrastructure Layer (EF Core)
│   │   ├── Context/                  # DbContext
│   │   ├── Configuration/            # Fluent API setup
│   │   ├── DependencyInjection/      # EF registration
│   │   ├── Seeder/                   # Initial data seeding
│   │   ├── _01-add_migrations.cmd    # Migration helper
│   │   ├── _02-update_db.cmd         # DB update helper
│   │   └── _03-remove_db.cmd         # Cleanup helper
│   │
│   └── Celestial.Agency.Service/     # Application Layer
│       ├── Command/                  # CQRS Commands
│       ├── CommandHandler/           # MediatR Handlers
│       ├── Behavior/                 # Pipeline behaviors
│       ├── Service/                  # App services
│       └── Dependencies/             # DI registrations
│
└── test/                             # Future tests (Unit/Integration)

🧱 Architecture

  • Clean Architecture: Strict separation between layers
  • CQRS + MediatR: Independent command/query handling
  • DDD: Domain-driven modeling and encapsulation
  • EF Core: Persistence layer following repository patterns
  • Localization: Multi-language entity support via LocalizedProperty

🧠 Design Principles

  • Command Query Responsibility Segregation (CQRS)
  • Repository & Unit of Work Patterns
  • Dependency Injection everywhere
  • Scalable and modular system

🧰 Technologies

LayerTechnology
Framework.NET 9.0
ORMEntity Framework Core
ArchitectureClean Architecture, CQRS
CommunicationMediatR
MappingMapster
DatabaseMicrosoft SQL Server

⚙️ Setup & Run

1️⃣ Clone the Repository

git clone https://github.com/GhoostSK/Celestial.Agency.git
cd Celestial.Agency/src/Celestial.Agency.Api

2️⃣ Configure the Database

Edit your appsettings.json:

"ConnectionStrings": {
  "DefaultConnection": "Server=.;Database=CelestialAgency;Trusted_Connection=True;TrustServerCertificate=True;"
}

3️⃣ Apply Migrations

cd ../Celestial.Agency.DAL.EF
dotnet ef database update

4️⃣ Run the API

cd ../Celestial.Agency.Api
dotnet run

➡️ API will be available at: https://localhost:5001/api


🧩 Example Endpoints

Blog

GET  /api/en/Blog/GetBlogsList
GET  /api/en/Blog/GetBlogBySlug?slug=example

Comment

GET  /api/en/Comment/GetCommentBySlug
POST /api/en/Comment/AddComment

Hotel

GET  /api/en/Hotel/GetHotelById?id=1

📦 Modules

  • ✅ Blog Module
  • ✅ Comment Module
  • ✅ Hotel Module
  • 🛠️ Admin Dashboard (in progress)
  • 🛠️ Identity Management (in progress)
  • 🛠️ Advanced Localization (in progress)
  • 🛠️ Testing Layer (planned)

💬 Contribution

  1. Fork this repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit and push your changes
  4. Open a Pull Request 🚀

📜 License

This project is licensed under the MIT License. You’re free to use, modify, and distribute this software with proper credit.


🌠 Author

sadra khoshnavaz
Open-source Contributor & Developer of the Celestial Series

📧 khoshnavazsadra@gmail.com
🔗 github.com/GhoostSK

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HTML 68.2%
  • CSS 19.2%
  • C# 12.0%
  • Other 0.6%