Skip to content

ORION-16/DRMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ DRMS

Deployment Request Management System

A structured, role-based deployment approval platform built for engineering teams.

.NET C# SQL Server Docker Bootstrap


πŸ“– Overview

DRMS is an ASP.NET Core MVC application for managing deployment requests through a structured, role-based approval workflow. It helps developers submit deployment requests, routes them through Tech Lead β†’ QA β†’ DevOps approvals, and gives administrators a consolidated view of request status and deployment history.


✨ Features

Feature Description
πŸ” Authentication Cookie-based auth with role-aware redirects and BCrypt password hashing
πŸ“ Request Creation Submit deployments with project, environment, type, rollback plan & target date
πŸ”„ Approval Workflow Multi-step approvals: Tech Lead β†’ QA β†’ DevOps
πŸ“Š Developer Dashboard Track your requests and see deployment summaries at a glance
πŸ›‘οΈ Admin Panel Filter and review all requests by status or project
πŸ“œ Audit History Full deployment history tracking for every request
πŸ‘€ Self-Service Signup New users can register directly through the signup screen

πŸ› οΈ Tech Stack

Layer Technology
Framework ASP.NET Core
Language C#
Database SQL Server
ORM Dapper
Security BCrypt
Frontend Bootstrap jQuery
Templating Razor
Container Docker

πŸ—οΈ Solution Structure

DRMS/
β”œβ”€β”€ πŸ“¦ DRMS.Domain/          # Entities and repository contracts
β”œβ”€β”€ βš™οΈ  DRMS.Application/     # DTOs and application service logic
β”œβ”€β”€ πŸ—„οΈ  DRMS.Infrastructure/  # Dapper context and repository implementations
β”œβ”€β”€ 🌐 DRMS.Web/             # MVC controllers, Razor views, static assets
β”œβ”€β”€ πŸ—ƒοΈ  database/             # Schema, seed data, stored procedures, SQL tests
β”œβ”€β”€ πŸ“š docs/                 # Workflow and supporting documentation
└── πŸ”§ DRMS.slnx             # Solution file

Architecture

The project follows a clean layered architecture:

DRMS.Web  ──►  DRMS.Application  ──►  DRMS.Domain
                      β”‚                    β–²
                      β–Ό                    β”‚
              DRMS.Infrastructure  β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • DRMS.Domain β€” Core entities and repository interfaces (no dependencies)
  • DRMS.Application β€” DTOs and service-level business logic
  • DRMS.Infrastructure β€” Dapper + SQL Server stored procedure implementations
  • DRMS.Web β€” Controllers, Razor views, auth, authorization policies, DI setup

πŸ‘₯ User Roles & Workflow

Developer  ──submits──►  [ Submitted ]
                               β”‚
                     Tech Lead reviews
                               β”‚
                          [ Approved L1 ]
                               β”‚
                           QA reviews
                               β”‚
                          [ Approved L2 ]
                               β”‚
                         DevOps reviews
                               β”‚
                           [ Deployed ] βœ…
Role Permissions
πŸ‘¨β€πŸ’» Developer Create & track own deployment requests
πŸ§‘β€πŸ’Ό Tech Lead First approval step
πŸ§ͺ QA Quality approval step
βš™οΈ DevOps Final deployment approval
πŸ›‘οΈ Admin View all requests and full history

πŸš€ Getting Started

Prerequisites

1. Start SQL Server via Docker

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=YourStrong@Password" \
  -p 1433:1433 --name drms-sqlserver \
  -d mcr.microsoft.com/mssql/server:2022-latest

2. Set Up the Database

Run the SQL scripts in order:

database/01_schema_and_seed.sql       ← Schema, master data & seed
database/02_stored_procedures.sql     ← All stored procedures
database/03_test_stored_procedures.sql ← Optional: validate

3. Configure the Connection String

cp DRMS.Web/appsettings.Development.example.json DRMS.Web/appsettings.Development.json

Edit the file:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost,1433;Database=DRMS;User Id=sa;Password=YOUR_PASSWORD;TrustServerCertificate=True;"
  }
}

Or use .NET user secrets:

dotnet user-secrets set "ConnectionStrings:DefaultConnection" \
  "Server=localhost,1433;Database=DRMS;User Id=sa;Password=YOUR_PASSWORD;TrustServerCertificate=True;" \
  --project DRMS.Web

4. Run the App

dotnet restore DRMS.slnx
dotnet build DRMS.slnx
dotnet run --project DRMS.Web

Open the URL printed in the terminal β€” it lands on the Login page. Create your first user via the Sign Up screen.


🐳 Useful Docker Commands

# Check if SQL Server is running
docker ps

# View SQL Server logs
docker logs -f drms-sqlserver

# Open an interactive SQL shell inside the container
docker exec -it drms-sqlserver /opt/mssql-tools18/bin/sqlcmd \
  -S localhost -U sa -P 'YourPassword' -C

# Stop / Start the container
docker stop drms-sqlserver
docker start drms-sqlserver

πŸ”§ Useful Dev Commands

dotnet restore DRMS.slnx       # Restore NuGet packages
dotnet build DRMS.slnx         # Build the solution
dotnet run --project DRMS.Web  # Run the web app

πŸ”’ Security Notes

  • Passwords are hashed using BCrypt β€” no plaintext passwords stored anywhere
  • Only @lnt.com email addresses are accepted at signup
  • Do not commit appsettings.Development.json β€” it is .gitignored
  • The bin/ and obj/ build folders are also excluded from version control

πŸ“ Repository Hygiene

Generated build folders (bin/, obj/) and local config files (appsettings.Development.json) are excluded via .gitignore so credentials never reach the repository.


Built as a capstone internship project β€” DRMS Β© 2026

About

Deplyment Request Management System

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages