Skip to content

yagizuygarunlu/MultiTenantExample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visitor Management System

A multi-tenant visitor management system built with .NET 9, implementing Clean Architecture and CQRS patterns.

Features

  • 🏢 Multi-tenant architecture
  • 🔐 JWT Authentication
  • 👥 User management
  • 📊 Visitor tracking
  • 🏗️ Clean Architecture
  • 📝 CQRS with MediatR
  • 🗄️ PostgreSQL database
  • 🧪 Unit testing with xUnit

Prerequisites

  • .NET 9.0 SDK
  • PostgreSQL 15+
  • Visual Studio 2022 or VS Code

Getting Started

  1. Clone the repository
git clone https://github.com/yourusername/MultiTenantExample.git
  1. Navigate to the project directory
cd MultiTenantExample
  1. Update the connection strings in appsettings.json
{
  "ConnectionStrings": {
    "MasterDatabase": "Host=localhost;Port=5432;Database=visitor_master;Username=your_username;Password=your_password"
  }
}
  1. Run the migrations
dotnet ef database update --project src/VisitorManagement.Infrastructure --startup-project src/VisitorManagement.Api
  1. Run the application
dotnet run --project src/VisitorManagement.Api

Project Structure

├── src/
│   ├── VisitorManagement.Domain        # Enterprise business rules
│   ├── VisitorManagement.Application   # Application business rules
│   ├── VisitorManagement.Infrastructure# External concerns
│   └── VisitorManagement.Api           # Entry point
└── tests/
    └── VisitorManagement.Application.UnitTests

Architecture

This project follows Clean Architecture principles:

  • Domain Layer: Contains enterprise-wide business rules and entities
  • Application Layer: Contains application-specific business rules
  • Infrastructure Layer: Contains frameworks and external concerns
  • API Layer: Contains controllers and configuration

Testing

Run the tests using:

dotnet test

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages