ASP.NET Core Web API Final Project - Disaster Relief Coordination System.
A RESTful Web API designed to coordinate relief efforts, connecting disaster victims with volunteers and resources efficiently.
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.
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.
| 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 |
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.
- .NET 8.0 SDK
- SQL Server (LocalDB or Docker container)
- Visual Studio 2022
-
Clone the repository
git clone [https://github.com/](https://github.com/)Senaygt/DisasterRelief_Project.git
-
Configure Database Update the connection string in
appsettings.json:"ConnectionStrings": { "DefaultConnection": "Server=...;Database=AfetDb;Trusted_Connection=True;" }
-
Run Migrations Apply the schema to your database:
dotnet ef database update
-
Run the Project
dotnet run
Navigate to
https://localhost:5007/swaggerto view the API documentation.
Follow these steps to spin up the project using Docker:
- Open your terminal in the project's root directory.
- Build and start the application along with the database:
docker-compose up --build
The API is live and accessible at: https://disasterreliefapi-etcdhja9bjfygheu.germanywestcentral-01.azurewebsites.net/index.html
We used [Trello Projects] to track our progress using Agile methodology. https://trello.com/b/8YANu16f/disasterreliefproject
| Name | Student ID |
|---|---|
| Sena Yiğit | 1031510036 |
| Tolga Kurt | 1031510040 |
This project is licensed under the MIT License.