Skip to content

The apartment management system is a multi-layered system with a microservice architecture that allows the user in the role of a site manager to perform operations such as adding, deleting, editing, adding tenants, assigning tenants to the apartment, adding invoices, assigning invoices; and the user in the role of tenant to log in to the system …

License

Notifications You must be signed in to change notification settings

huseyinafsin/ApartmentManagmentSystem

Repository files navigation

Apartment Managment System

Documentation

License: MIT

About

The apartment management system is a multi-layered system with a microservice architecture that allows the user in the role of a site manager to perform operations such as adding, deleting, editing, adding tenants, assigning tenants to the apartment, adding invoices, assigning invoices; and the user in the role of tenant to log in to the system and view invoices, edit profile and change password.

Table of Contents

About
Table of Contents
Structure
Ports
Installation
Endpoints
Libraries
Features

Adsız tasarım

Ports

Project Port Number (Http,Https)
Main API 43394, 44365
Payment micro service 60524, 44324
UI 52759, 44349

🔌 Installation

Follow the steps below to run the project in your local

  1. Clone the repo
    git clone https://github.com/huseyinafsin/ApartmentManagmentSystem.git
  2. Go to project folder
    cd ApartmentManagmentSystem

Configurations

To make this project work, go to ApartmentManagmentSystem/ApartmentManagmentSystem/appsettings.json file and replace it with your configuration information as below.

    {
    "MongoDbSettings": {
      "ConnectionString": "<Put your mongodb instance here>",
      "Database": "TodebPay"
    },
    "RedisEndpointInfo": {
      "Endpoint": "<Put your redis endpoint informations here>",
      "Port": 16764, // 16764 is default port
      "Username": "< User name>",
      "Password": "<Password >",
      "DatabaseName": "<Database name>"
    }

Get free mongodb account from Mongo Atlas

Get free redis account from Redis Labs )

Database

Create a database named ApartmentHangfire in your local Mssql database server

Migrate the database: Open Package manager console dotnet ef database update or Update-Database

🌎 Endpoints

Api

Method URL Description
POST /api/Auth/ManagerRegister Registers user
POST /api/Auth/ChangePassword Changes password
POST /api/Auth/Login For login
GET /api/Bill/GetAllWithDetails Lists all bills with details
GET /api/Bill/GetTenantBills/{id} Lists tenant bills
GET /api/Bill/{id} Lists tenant bill by id
DELETE /api/Bill/{id} Deletes tenant bill by id
PUT /api/Bill/{id} Updates tenant bill by id
POST /api/Bill/ Creates new bill
GET /api/BillType Lists bill types
POST /api/BillType Creates new bill type
PUT /api/BillType Update bill type
GET /api/Flat/GetAll List all flats
GET /api/Flat/GetAllWithDetails List all flats with details
GET /api/Flat/GetWithDetails/{id} List flat details
GET /api/Flat/{id} Fetches a flat
DELETE /api/Flat/{id} Deletes a flat
PUT /api/Flat/{id} Updates a flat
POST /api/Flat/ Creates a new flat
GET /api/FlatType Lists flat types
POST /api/FlatType Creates new flat type
PUT /api/FlatType Update flat type
GET /api/Messages/{id} Fetches a message
POST /api/Messages/GetUserMessagesBetween Lists all messages between two users
POST /api/Messages Creates a new message
POST /api/Payment Makes a payment request
GET /api/Tenant List all the tenats
POST /api/Tenant Creates a new tenart
GET /api/Tenant Fetches a tenant
DELETE /api/Tenant Deletes a tenant
PUT /api/Tenant Updates a tenant
GET /api/Users List all the users

Payment service

Method URL Description
GET /api/Account/GetCustomerCards/{customerId} Lists cards for a specific customer
POST /api/Account/GetCustomerCard Returns detailed information about posted card informations
GET /api/Account/GetCardWithDetails/{cardId} Returns detailed informations of card id
POST /api/Account/CreateCreditCard Adds new Credit card
GET /api/Customer Lists all customers
POST /api/Customer Creates new customer
POST /api/Transaction/Pay Pays the given bill
GET /api/Transaction List all the transactions

To see the in go to Swagger Editor and import the swagger files.

📚 Libraries

Library Versiyon
Automapper 11.0.1
Hangfire 11.0.0
JwtBearer 5.0.17
EntityFrameworkCore 5.0.17
StackExcangeRedis 6.0.7
Redis 2.6.48
Swashbuckle 5.6.3
Automapper 11.0.1
Mirosoft.IdentityModel.Tokens 6.21.0
MongoDb.Bson 2.17.1
MongoDb.Driver 2.17.0
Bogus 34.0.2
Autofac 2.17.0
MongoDb.Driver 2.17.0
Serilog 2.11.0
FluentValidation 11.2.2
Coverlet.Collector 3.0.2
Moq 4.18.2
xunit 2.4.1

🚀 Features

  • N-Layered Architecture
  • Generic Repository Pattern
  • Dependency Injection
  • IOC
  • Caching
  • Logging
  • Microservice
  • Rest
  • Backgound Jobs
  • Unit Testing
  • UI

About

The apartment management system is a multi-layered system with a microservice architecture that allows the user in the role of a site manager to perform operations such as adding, deleting, editing, adding tenants, assigning tenants to the apartment, adding invoices, assigning invoices; and the user in the role of tenant to log in to the system …

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published