Skip to content

BhabyaBharti/fullstack-dotnet-react-ci-cd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Full-Stack .NET + React Application with Enterprise CI/CD

🚀 Overview

This repository demonstrates an end-to-end CI/CD implementation for a full-stack enterprise-style application consisting of:

  • ⚙️ Backend: .NET (ASP.NET Core)
  • 🎨 Frontend: React
  • 🗄️ Database: MySQL
  • 🔄 CI/CD: GitHub Actions & Azure DevOps
  • ☁️ Target Platforms: Azure VM, AWS EC2, Docker containers

⚠️ Important:
The primary focus of this project is DevOps automation, CI/CD orchestration, and cloud readiness, not application feature development.


🧩 Business Context

In real-world enterprise environments, applications are rarely single-stack. Most systems consist of:

  • Separate frontend and backend teams
  • Shared databases or managed services
  • Multiple deployment environments
  • Strict CI/CD and release controls

This project simulates such a setup and focuses on how DevOps pipelines handle multi-technology applications reliably and repeatably.


🏗️ Application Architecture

┌───────────────────┐ ┌────────────────────┐ │ React Frontend │ ---> │ .NET Backend API │ └───────────────────┘ └────────────────────┘ │ ▼ ┌──────────┐ │ MySQL │ └──────────┘

Each component is built, tested, and packaged independently while being orchestrated through a single CI/CD pipeline.


📂 Repository Structure

. ├── elearn-backend │ ├── Controllers │ ├── Models │ ├── Data │ ├── Dockerfile │ └── Program.cs │ ├── elearn-frontend │ ├── public │ ├── src │ └── package.json │ ├── .github/workflows │ ├── cicd_workflow.yml │ └── workflow_net.yml │ ├── azure-pipelines.yml └── README.md


🔄 CI/CD Design

GitHub Actions (CI)

The GitHub Actions workflow performs:

  • ✅ Source code checkout
  • ✅ Frontend dependency installation, build & tests
  • ✅ Backend dependency restore, build & tests
  • ✅ MySQL service container for integration testing
  • ✅ Manual and automated triggers

Key CI Features

  • Uses MySQL as a service container to mimic real integration tests
  • Builds frontend and backend independently
  • Ensures failures are caught early before deployment

Azure DevOps Pipelines (CD)

The Azure DevOps pipeline is designed for:

  • Controlled deployments
  • Environment-specific releases
  • Artifact-based delivery

This mirrors how many enterprises separate:

  • CI (GitHub)CD (Azure DevOps)

🐳 Containerization Strategy

  • Backend includes a Dockerfile
  • Application is container-ready for:
    • Docker-based deployments
    • Future Kubernetes adoption
  • Enables cloud-agnostic deployments

☁️ Deployment Targets

This application is designed to be deployed on:

  • 🔵 Azure Virtual Machines
  • 🟠 AWS EC2 instances
  • 🐳 Docker containers

The CI/CD pipeline ensures that the same build artifacts can be deployed across multiple platforms with minimal changes.


🔐 Security & Best Practices

  • No hardcoded credentials in pipelines
  • Environment variables used for sensitive configuration
  • Database access controlled via CI service containers
  • Separation of CI and CD responsibilities

🧠 Design Decisions & Trade-offs

  • Single repo, multi-component setup for easier pipeline orchestration
  • Service containers used instead of mocks for realistic testing
  • Pipeline-first approach, app kept intentionally simple
  • Designed for extensibility (Kubernetes, cloud-native services)

📌 Author

Bhabya Bharti
DevOps Engineer | Cloud | CI/CD | Terraform | Containers

About

End-to-end CI/CD implementation for a full-stack .NET and React application, showcasing enterprise DevOps practices using GitHub Actions and Azure DevOps, with automated build, test, artifact management, and deployment workflows.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors