A production-ready task management application showcasing enterprise-level DevSecOps practices, automated CI/CD pipelines, comprehensive security scanning, and cloud-native architecture.
This portfolio project demonstrates:
- β Complete CI/CD Pipeline - Automated build, test, and deployment across multiple environments
- β Security-First Approach - Integrated vulnerability scanning at every stage
- β Infrastructure as Code - Docker containerization with orchestration
- β Multi-Environment Strategy - Dev, Staging, and Production workflows
- β Automated Testing - Unit and integration tests with code coverage
- β Cloud-Native Design - Microservices architecture ready for cloud deployment
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β GitHub Actions β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Dev β β Staging β β Prod β β Security β β
β β Pipeline β β Pipeline β β Pipeline β β Scanning β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Docker Containers β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β React UI β β .NET API β β PostgreSQL β β
β β (Port 3000) β β (Port 5000) β β (Port 5432) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Backend:
- .NET 8.0 Web API
- Entity Framework Core
- PostgreSQL Database
- JWT Authentication
- BCrypt Password Hashing
Frontend:
- React 18
- Axios for API calls
- Modern CSS styling
- Responsive design
DevOps & Security:
- Docker & Docker Compose
- GitHub Actions CI/CD
- Snyk (Dependency scanning)
- Trivy (Container scanning)
- GitLeaks (Secret detection)
- SonarCloud (Code quality)
- Docker Desktop
- .NET 8.0 SDK (for local development)
- Node.js 18+ (for local development)
# Clone the repository
git clone https://github.com/MalNko/secure-task-manager.git
cd secure-task-manager
# Start all services
docker-compose -f docker/docker-compose.yml up --buildAccess the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000/swagger
- Health Check: http://localhost:5000/health
Backend API:
cd src/SecureTaskManager.API
dotnet restore
dotnet runFrontend:
cd src/SecureTaskManager.Web
npm install
npm startDatabase:
docker-compose -f docker/docker-compose.yml up dbEvery code push triggers comprehensive security checks:
- Secret Scanning - GitLeaks detects accidentally committed credentials
- Dependency Vulnerabilities - Snyk scans for known CVEs in packages
- Container Security - Trivy scans Docker images for vulnerabilities
- Code Quality - SonarCloud analyzes code for bugs and security hotspots
- π JWT-based authentication
- π Bcrypt password hashing
- π SQL injection protection via parameterized queries
- π CORS configuration
- π Security headers (X-Frame-Options, X-Content-Type-Options, etc.)
- π Rate limiting middleware
- π Input validation and sanitization
graph LR
A[Developer Push] --> B[Dev Branch]
B --> C[CI - Dev Pipeline]
C --> D[Automated Tests]
D --> E[Security Scans]
F[Merge to Staging] --> G[Staging Pipeline]
G --> H[Integration Tests]
H --> I[Docker Build]
J[Merge to Main] --> K[Production Pipeline]
K --> L[Full Test Suite]
L --> M[Security Audit]
M --> N[Docker Registry]
N --> O[Deployment]
- Build - Compile .NET API and React frontend
- Test - Run unit and integration tests
- Security Scan - Automated vulnerability detection
- Docker Build - Create optimized container images
- Deploy - Automated deployment (when configured)
secure-task-manager/
βββ .github/
β βββ workflows/ # GitHub Actions CI/CD pipelines
β βββ ci-dev.yml # Development environment
β βββ ci-staging.yml # Staging environment
β βββ ci-prod.yml # Production environment
β βββ security-scan.yml # Security scanning
βββ src/
β βββ SecureTaskManager.API/ # .NET Web API
β β βββ Controllers/ # API endpoints
β β βββ Models/ # Data models
β β βββ Data/ # Database context
β β βββ Program.cs # Application entry point
β βββ SecureTaskManager.Web/ # React frontend
β βββ public/
β βββ src/
β βββ components/ # React components
β βββ services/ # API services
βββ tests/
β βββ SecureTaskManager.Tests/ # Unit and integration tests
βββ docker/
β βββ Dockerfile # API container
β βββ Dockerfile.web # Frontend container
β βββ docker-compose.yml # Multi-container orchestration
β βββ nginx.conf # Nginx configuration
βββ docs/ # Additional documentation
# Run all tests
dotnet test
# Run with coverage
dotnet test /p:CollectCoverage=true /p:CoverageReportsFormat=opencover
# Run specific test project
dotnet test tests/SecureTaskManager.Tests/SecureTaskManager.Tests.csproj- Unit tests for controllers and services
- Integration tests for API endpoints
- Frontend component tests (React Testing Library)
- API Health Endpoint:
/health - Database Connection: Verified on startup
- Swagger Documentation:
/swagger
- Structured logging with Serilog
- Console and file outputs
- Request/response logging
- Error tracking
The application is containerized and ready for deployment to:
- AWS ECS/EKS
- Azure Container Instances
- Google Cloud Run
- Any Docker-compatible platform
# API Configuration
ASPNETCORE_ENVIRONMENT=Production
ConnectionStrings__DefaultConnection=<database-connection-string>
Jwt__Key=<your-secret-key>
# Frontend Configuration
REACT_APP_API_URL=<api-url>This is a portfolio project, but suggestions and feedback are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Malusi Thandolwethu Nathan Nkosi
- LinkedIn: linkedin.com/in/malusi-nkosi-6995a92b1
- GitHub: @MalNko
- Email: malusi.nkosi@icloud.com
This project demonstrates proficiency in:
- β Cloud-native application development
- β DevOps & CI/CD pipeline design
- β Security best practices (DevSecOps)
- β Container orchestration
- β Full-stack development (.NET + React)
- β Database design and ORM usage
- β RESTful API design
- β Authentication & authorization
- β Test-driven development
- β Infrastructure as Code
For more detailed documentation, see:
- API Documentation - Endpoint specifications
- Security Guide - Security practices and compliance
- Deployment Guide - Deployment instructions
- Architecture Decision Records - Design decisions
β Star this repository if you find it helpful!
Made with β€οΈ for learning and portfolio