The Security Management System is a robust web-based platform designed to streamline and secure the management of campus security operations. It offers a centralized interface for administrators and security staff to handle gate monitoring, emergency event tracking, and log management. The system emphasizes secure authentication, role-based access control, and scalable architecture.
- Built using Blazor WebAssembly (.NET).
- Login system for both Security Staff and Admins with JWT-based authentication.
- Role-based access control (e.g., only "Computer Security Officer" can trigger emergency events).
- Dynamic dropdowns for selecting campus and gate to filter and manage security logs.
- Responsive UI for managing campuses, gates, logs, and security personnel.
- Developed using ASP.NET Core Web API.
- Structured using layered architecture: Controller → Service → Repository.
- Entity Framework Core for database access and migrations.
- Supports all core operations: CRUD for staff, campus, gates, and logs.
- JWT token generation and validation using Microsoft Identity libraries.
- C# (.NET for frontend and backend)
- HTML/CSS (Blazor components)
- Blazor WebAssembly – For the client-side application.
- ASP.NET Core Web API – Backend RESTful services.
- Entity Framework Core – ORM for database interaction.
- Blazored.LocalStorage – For JWT token persistence on client side.
- Microsoft.IdentityModel.Tokens – For token security.
- Bootstrap – Frontend styling and layout.
- Visual Studio 2022 – Main development environment.
- Postman – For testing API endpoints.
- SQL Server Management Studio (SSMS) – For managing the database.
- Draw.io / Microsoft Visio – For creating UML diagrams and ERDs.
- Git & GitHub – Version control and collaboration.
- ✅ JWT-secured login for Admins and Security Staff
- ✅ Role-based authorization to protect sensitive features
- ✅ Emergency event creation limited to authorized roles
- ✅ Campus and gate assignment for security personnel
- ✅ Visitor and vehicle logging
- ✅ Real-time filtering of log entries by date, gate, and campus
- ✅ Clean separation of concerns using services and repositories
Before running this project, ensure that you have the following installed:
- .NET 6.0 SDK (or later)
- SQL Server (or use a local SQL Server instance)
-
Clone the repository:
- Run the following command to clone the repository:
git clone https://github.com/your-username/security-system-management.git cd security-system-management
- Run the following command to clone the repository:
-
Restore the NuGet packages:
- Run the following command to restore the NuGet packages:
dotnet restore
- Run the following command to restore the NuGet packages:
-
Set up the database:
- Modify
appsettings.json
to match your SQL Server credentials. - Ensure your connection string is correctly set in the
appsettings.json
file.
- Modify
-
Apply migrations to your database:
- Run the following command to apply migrations:
dotnet ef database update
- Run the following command to apply migrations:
-
Build and run the application:
- Run the following command to build and start the application:
dotnet run
- Run the following command to build and start the application:
📄 All system diagrams, workflows, and development documentation are available within the project folder:
- The ERD (Entity Relationship Diagram) can be found in the
docs
folder within the project directory.
I appreciate community contributions! Here's how you can help:
- Fork the repository.
- Create a new feature branch:
git checkout -b feature/my-new-feature
. - Commit your changes:
git commit -am 'Add some feature'
. - Push to the branch:
git push origin feature/my-new-feature
. - Submit a pull request.
📬 Project Contact
Mohamed Amr
My LinkedIn
moamrfathytawfik@gmail.com