A modern .NET 8.0 web application built with ASP.NET Core and AWS serverless architecture for secure signal and notification management.
SafeSignal is an enterprise-grade solution that combines ASP.NET Core Identity for authentication with AWS Lambda functions and SNS for reliable notification delivery. The application demonstrates best practices in cloud-native development, security, and scalable architecture.
- Secure Authentication & Authorization: ASP.NET Core Identity integration with Entity Framework Core
- Serverless Architecture: AWS Lambda integration for scalable, event-driven processing
- Notification Management: AWS SNS (Simple Notification Service) for reliable message delivery
- Cloud Storage: AWS S3 integration for secure data storage
- Modern Stack: Built on .NET 8.0 with async/await patterns and nullable reference types
- Database Support: SQL Server integration via Entity Framework Core ORM
- .NET Framework: .NET 8.0
- Web Framework: ASP.NET Core with Identity UI
- Database: Entity Framework Core with SQL Server
- Cloud Platform: Amazon Web Services (AWS)
- AWS Lambda
- Amazon SNS (Simple Notification Service)
- Amazon S3 (Simple Storage Service)
- Authentication: ASP.NET Core Identity
- Architecture: Microservices with serverless Lambda functions
SafeSignal/
├── DDAC_G9/ # Main ASP.NET Core web application
│ ├── DDAC_G9.csproj # Project configuration
│ └── [Controllers, Models, Views, etc.]
└── Serverless/
└── Lambda/ # AWS Lambda functions
└── SafeSignal.Lambda.csproj
- .NET 8.0 SDK or later
- Visual Studio 2022 or Visual Studio Code
- AWS Account with appropriate IAM credentials
- SQL Server (local or remote instance)
-
Clone the repository:
git clone https://github.com/Developed-by-Mo/SafeSignal.git cd SafeSignal -
Open the solution file:
DDAC_G9.sln
-
Restore NuGet packages:
dotnet restore
-
Configure your database connection string in
appsettings.json -
Run database migrations:
dotnet ef database update
-
Build and run the application:
dotnet build dotnet run
Configure your AWS credentials and services:
- Set up AWS credentials (via AWS CLI, IAM roles, or environment variables)
- Configure Lambda function endpoints in
appsettings.json - Set up SNS topics for notification delivery
- Configure S3 buckets for file storage
For sensitive configuration data, use .NET User Secrets:
dotnet user-secrets set "AwsAccessKey" "your-key"
dotnet user-secrets set "AwsSecretKey" "your-secret"SafeSignal follows a layered architecture:
- Presentation Layer: ASP.NET Core Web UI with Identity pages
- Application Layer: Controllers and business logic
- Data Layer: Entity Framework Core with SQL Server
- Serverless Layer: AWS Lambda for background processing
- Messaging Layer: AWS SNS for event notifications
- Storage Layer: AWS S3 for file persistence
Key NuGet packages:
Amazon.Lambda.APIGatewayEvents- Lambda API Gateway integrationAmazon.Lambda.Core- AWS Lambda runtimeMicrosoft.AspNetCore.Identity.EntityFrameworkCore- Identity managementMicrosoft.EntityFrameworkCore.SqlServer- Database ORMAWSSDK.SimpleNotificationService- SNS integrationAWSSDK.S3- S3 storage integrationAWSSDK.Lambda- Lambda invocation
dotnet builddotnet testTo publish for production:
dotnet publish -c Release -o ./publish- Deploy the main application to AWS App Runner, EC2, or Elastic Beanstalk
- Deploy Lambda functions using the AWS CLI or AWS Toolkit
- Configure SNS topics and subscriptions
- Set up S3 buckets with appropriate permissions