Skip to content

Developed-by-Mo/SafeSignal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SafeSignal

A modern .NET 8.0 web application built with ASP.NET Core and AWS serverless architecture for secure signal and notification management.

Overview

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.

Features

  • 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

Technology Stack

  • .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

Project Structure

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

Getting Started

Prerequisites

  • .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)

Installation

  1. Clone the repository:

    git clone https://github.com/Developed-by-Mo/SafeSignal.git
    cd SafeSignal
  2. Open the solution file:

    DDAC_G9.sln
  3. Restore NuGet packages:

    dotnet restore
  4. Configure your database connection string in appsettings.json

  5. Run database migrations:

    dotnet ef database update
  6. Build and run the application:

    dotnet build
    dotnet run

Configuration

AWS Setup

Configure your AWS credentials and services:

  1. Set up AWS credentials (via AWS CLI, IAM roles, or environment variables)
  2. Configure Lambda function endpoints in appsettings.json
  3. Set up SNS topics for notification delivery
  4. Configure S3 buckets for file storage

User Secrets

For sensitive configuration data, use .NET User Secrets:

dotnet user-secrets set "AwsAccessKey" "your-key"
dotnet user-secrets set "AwsSecretKey" "your-secret"

Architecture

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

Dependencies

Key NuGet packages:

  • Amazon.Lambda.APIGatewayEvents - Lambda API Gateway integration
  • Amazon.Lambda.Core - AWS Lambda runtime
  • Microsoft.AspNetCore.Identity.EntityFrameworkCore - Identity management
  • Microsoft.EntityFrameworkCore.SqlServer - Database ORM
  • AWSSDK.SimpleNotificationService - SNS integration
  • AWSSDK.S3 - S3 storage integration
  • AWSSDK.Lambda - Lambda invocation

Development

Building

dotnet build

Running Tests

dotnet test

Publishing

To publish for production:

dotnet publish -c Release -o ./publish

Deployment

AWS Deployment

  1. Deploy the main application to AWS App Runner, EC2, or Elastic Beanstalk
  2. Deploy Lambda functions using the AWS CLI or AWS Toolkit
  3. Configure SNS topics and subscriptions
  4. Set up S3 buckets with appropriate permissions

About

A .NET 8 web application integrating AWS Lambda, SNS, and S3 with ASP.NET Core.

Topics

Resources

Stars

Watchers

Forks

Contributors