Internal Collaboration Platform, RedRiver Consulting
A real-time internal web application built during a full-stack internship using ASP.NET Core, Angular, and SignalR.
- Role
- Full Stack Developer Intern
- Project type
- Internship Project
- Duration
- Dec 2025 – Apr 2026
- Tools
- C#, ASP.NET Core, Angular 19–20, TypeScript, MySQL, SignalR, RxJS, Git

01
Executive Summary
During a full-stack internship at RedRiver Consulting and Software AB, I developed and maintained an internal web application on ASP.NET Core and Angular 19–20, added real-time collaborative features with SignalR, and fixed critical production bugs affecting system stability.
02
The Problem
The internal application needed live, multi-user collaboration features, and had accumulated production bugs that were affecting runtime stability for its users.
03
Users & Stakeholders
- Internal engineering team
- The application's internal end users
- Team lead / sprint stakeholders
04
Discovery and Research
- Onboarded onto the existing ASP.NET Core / Angular codebase
- Traced reported production bugs to root causes
- Assessed where real-time updates with SignalR would add the most value
05
Goals
- Ship real-time collaborative features without regressing existing functionality
- Resolve critical production bugs
- Work effectively inside an existing Agile team, stand-ups, sprint planning, and code review
06
Solution
Implemented SignalR-based real-time features so multiple users could see live, collaborative updates in the application, built out functionality across the Angular 19–20 frontend and ASP.NET Core backend with MySQL, and worked through a backlog of production bugs to improve stability, all while participating in daily stand-ups, sprint planning, and peer code reviews.
V
Visual analysis (D3)
Every figure below is generated with D3 from this case study’s own data and is annotated using Tamara Munzner’s what / why / how framework: the data abstraction, the abstract task it supports, and the visual idiom with its marks and channels.
V1Risk exposure by impact
- High
- Medium
- Low
What — dataItems are identified project risks; one ordered attribute (impact) and one categorical attribute (mitigation, on hover).
Why — taskRank the risks and identify the extremes that need mitigation first.
How — idiomDot plot: point marks, position on a common ordered scale as the primary channel, colour hue as a redundant encoding.
V3Implementation sequence
What — dataItems are roadmap phases with an ordered key (sequence) and a quantitative attribute (workstreams per phase).
Why — taskSummarise the delivery order and see where the workload concentrates.
How — idiomGantt-style ranged bars: line marks with length encoding magnitude, aligned on a shared horizontal scale, colour separating phases.
V4Solution architecture as a network
What — dataA node-link network: nodes are architecture components, links are data flow, and layer is a categorical attribute.
Why — taskExplore topology — trace a path from data source to governed output and locate dependencies.
How — idiomLayered node-link layout: rectangle marks positioned by layer, connection marks for flow, greyscale luminance separating adjacent layers.
V6Engagement depth profile: radar
- Documented items
What — dataOne item (this project) with seven quantitative attributes: the number of documented artefacts per workstream.
Why — taskSummarise the shape of the engagement and compare workstreams which parts are deep and which are thin.
How — idiomRadar/star plot: line and point marks, angle channel for the attribute key, radial distance for magnitude.
V7Roadmap workload circular barplot
- Workstream items
What — dataItems are roadmap phases with one ordered key (sequence) and one quantitative attribute (workstream items).
Why — taskCompare how much work each phase carries and see the cycle of delivery as a whole.
How — idiomCircular barplot: arc marks, angle for the ordered phase key, radial length for magnitude.
V8Architecture composition: treemap
- Component
- Layer
What — dataA hierarchy: architecture layers containing components, each component counting as one unit.
Why — taskSee where the system's weight sits: which layers hold the most moving parts.
How — idiomTreemap: containment for the hierarchy, area marks sized by component count, nested rectangles for layers.
07
System Architecture
Angular 19–20 client
|
v
+---------------------+ +--------------------------+
| SignalR hub | <--> | Live collaborative UI |
| real-time updates | | multi-user state |
+---------------------+ +--------------------------+
|
v
+---------------------+
| ASP.NET Core API |
| business logic |
+---------------------+
|
v
+---------------------+
| MySQL |
+---------------------+Frontend
- Angular 19–20
- TypeScript
- RxJS
Backend
- ASP.NET Core
- C#
- MySQL
Real-time
- SignalR hubs
- Live collaborative updates
R1
Technical Risks
| Risk | Impact | Mitigation |
|---|---|---|
| Real-time features could introduce race conditions across multiple users | Inconsistent state between clients | Careful hub design and testing multi-client update scenarios before rollout |
| Fixing production bugs in an unfamiliar codebase | Risk of introducing regressions | Root-caused each bug individually and relied on peer code review before merging |
R2
Implementation Roadmap
Dec 2025
Phase 1: Onboarding
- Codebase familiarization
- First bug fixes
Jan – Feb 2026
Phase 2: Real-time features
- SignalR hub design
- Live collaborative UI updates
Mar – Apr 2026
Phase 3: Stabilization
- Critical bug fixes
- Stability improvements
- Handover
R4
Success Metrics
Stability
- Resolved critical production bugs
- Reduced runtime errors
Delivery
- Shipped real-time collaboration features
- Consistent sprint participation
R5
Deliverables
- Internal web app on ASP.NET Core and Angular 19–20
- SignalR-powered real-time collaboration features
- Bug fixes improving production stability
- Participation in daily stand-ups and sprint planning
“Working real-time features into a live production app taught me more about defensive coding than any greenfield project had.”
Next project
Mini AI HR