Skip to content

Senaygt/DisasterRelief_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DisasterRelief_Project

ASP.NET Core Web API Final Project - Disaster Relief Coordination System.

Disaster Relief Coordination System

A RESTful Web API designed to coordinate relief efforts, connecting disaster victims with volunteers and resources efficiently.

.NET Core EF Core Docker License Status

Project Overview

DiasterRelief is a backend system developed as the final project for the Backend Development course. It addresses the critical need for organized resource management during natural disasters. The system allows victims to create aid requests and enables volunteers/NGOs to fulfill these needs in real-time.

Learning Objectives & Key Features

This project demonstrates advanced ASP.NET Core concepts:

  • RESTful API Architecture: Clean endpoints using Controllers.
  • Advanced Data Modeling: Implements Many-to-Many relationships between Requests and Resources using Entity Framework Core.
  • Security: JWT-based Authentication & Role-Based Authorization (Admin, Volunteer, Victim).
  • Performance: In-Memory Caching for frequently accessed resource lists.
  • Real-time Communication: SignalR integration to notify volunteers of urgent requests.
  • Solid Architecture: Layered architecture (Controller-Service-Repository) following SOLID principles.

Technical Stack

Category Technology
Framework ASP.NET Core 8.0 Web API
Data Access Entity Framework Core (Code-First)
Database SQL Server / Azure SQL
Documentation Swagger / OpenAPI
Caching In-Memory Cache
Real-time SignalR
Deployment Azure App Service

Database Schema (ER Diagram)

The project utilizes a relational database with the following key entities:

  • Users: System actors (Volunteers, Victims, Admins).
  • Requests: Aid requests created by victims.
  • Resources: Standard aid items (Water, Tents, Blankets).
  • RequestResources: A junction table handling the Many-to-Many relationship, tracking quantities per request.

Getting Started

Prerequisites

  • .NET 8.0 SDK
  • SQL Server (LocalDB or Docker container)
  • Visual Studio 2022

Installation

  1. Clone the repository

    git clone [https://github.com/](https://github.com/)Senaygt/DisasterRelief_Project.git
  2. Configure Database Update the connection string in appsettings.json:

    "ConnectionStrings": {
      "DefaultConnection": "Server=...;Database=AfetDb;Trusted_Connection=True;"
    }
  3. Run Migrations Apply the schema to your database:

    dotnet ef database update
  4. Run the Project

    dotnet run

    Navigate to https://localhost:5007/swagger to view the API documentation.

🐳 Running with Docker

Follow these steps to spin up the project using Docker:

  1. Open your terminal in the project's root directory.
  2. Build and start the application along with the database:
    docker-compose up --build
    

Deployment

The API is live and accessible at: https://disasterreliefapi-etcdhja9bjfygheu.germanywestcentral-01.azurewebsites.net/index.html

Project Management

We used [Trello Projects] to track our progress using Agile methodology. https://trello.com/b/8YANu16f/disasterreliefproject

👥 Team Members

Name Student ID
Sena Yiğit 1031510036
Tolga Kurt 1031510040

License

This project is licensed under the MIT License.

About

ASP.NET Core Web API Final Project - Disaster Relief Coordination System.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors