Tracking non-conformance reports across departments using spreadsheets and manual emails creates version confusion, lost reports, and no audit trail. This system replaces that process with a centralized, role-based web application where reports move through a defined multi-stage workflow with automated notifications at each step.
Note: Built as a capstone group project at Niagara College (5-person team, 720+ commits). I was one of two primary contributors, responsible for the role-based dashboard and access control, NCR report stage navigation and lifecycle views, PDF generation, filter/search functionality, lookup list management, and overall UI styling and responsiveness.
At manufacturing and quality-focused organizations, non-conformance reports (NCRs) document defects, process failures, and quality issues that need to be reviewed and resolved across multiple departments. The typical workflow — spreadsheets passed around by email — meant:
- No single source of truth for report status
- Reports lost or forgotten between handoffs
- No audit trail of who reviewed what and when
- No enforcement of review order across departments
A full-stack ASP.NET MVC web application where NCRs are created, routed, reviewed, and archived through a structured multi-stage workflow. Each department sees only what's relevant to their role, and automated emails keep everyone accountable without manual follow-up.
- Multi-stage report lifecycle — NCRs move through defined stages (e.g. initiation → quality review → engineering → disposition) with status tracked at each step
- Role-based access control — department-specific views and permissions ensure reports route correctly and users only act within their scope
- Automated email notifications — triggered at each stage transition, replacing manual follow-up emails entirely
- Email-verified registration — users confirm their email on signup, preventing unauthorized account creation
- Report archiving — completed NCRs are archived and searchable for compliance and historical reference
- Audit trail — every stage transition is logged with timestamp and responsible user
| Layer | Technology |
|---|---|
| Backend | C#, ASP.NET MVC |
| Frontend | Razor Views, JavaScript, Bootstrap |
| Database | SQLite |
| Auth | Email verification, session-based auth |
| Deployment | Azure |
| Version Control | GitHub (5-person team, 720+ commits) |
Standard ASP.NET MVC pattern:
Controllers/ → Request handling and business logic
Models/ → Entity definitions and data annotations
Views/ → Razor templates per controller
Data/ → DbContext and migrations
Services/ → Email notification service
- Visual Studio 2022 or later
- .NET 6+ SDK
- Clone the repository:
git clone https://github.com/yourgithub/ncr-quality-management.git-
Open
Haver Niagara.slnin Visual Studio -
Update the connection string in
appsettings.jsonif needed (SQLite, no external DB required) -
Apply migrations:
dotnet ef database update- Configure email settings in
appsettings.json:
"EmailSettings": {
"SmtpHost": "your-smtp-host",
"SmtpPort": 587,
"SenderEmail": "[email protected]",
"SenderPassword": "your-password"
}- Run the application:
dotnet runI was one of two primary contributors responsible for the majority of the application's core functionality across all four submission milestones (130+ commits, 29,120+ lines).
- Designed and implemented the role-based dashboard that dynamically renders different views depending on the logged-in user's role (admin sees all stages; other roles see only their assigned stage)
- Built the login page with a separate layout that prevents unauthenticated navigation
- Implemented required field indicators and validation across all create and edit views
- Built individual detail views for each report stage, linked together so users can navigate through the full lifecycle of a report
- Created role-specific edit views so each user can only edit their assigned section of a report
- Implemented filter and search functionality for both the active NCR log and archive list (by NCR#, stage, and supplier)
- Added toast notifications for report creation, editing, stage transitions, voiding, and un-voiding
- Researched and implemented PDF generation for individual NCR reports, formatted to match the client's original paper NCR form with columns and images
- Added download functionality for closed reports
- Built searchable supplier and defect dropdown lists on the main NCR log
- Implemented "quickly add" functionality for supplier and defect dropdowns with dynamic list refresh
- Fixed the DDL refresh bug so newly added items are immediately searchable without a page reload
- Added and corrected seed data across multiple milestones to ensure report stages and data relationships were accurate
- Redesigned application colours, navigation, and overall layout for consistency with the client's branding
- Built a collapsible filter menu and common container across all pages
- Updated styling across all pages throughout the project lifecycle
Built by a 5-person team as a capstone project at Niagara College (Computer Programming & Analysis, 2024).