Skip to main content

🏗️ Asset Valuer Pro Technology Stack

⚠️ Important Note:
This documentation describes the technology stack of Asset Valuer Pro, but the actual source code is maintained in a separate repository and is not included in this documentation repository.

🏗️ Overview​

Asset Valuer Pro (AVP) is built using a modern technology stack that combines .NET Core for the backend services and React for the frontend user interface. This document provides a comprehensive overview of the technologies, frameworks, and libraries used in the application.

🔧 Backend Technologies​

🔧 Core Framework​

  • .NET Core - The primary backend framework
  • ASP.NET Core - Web framework for building the API
  • Entity Framework Core - ORM for database interactions

🏗️ Architecture Patterns​

  • Clean Architecture - Separation of concerns with layers
  • CQRS (Command Query Responsibility Segregation) - Separate command and query models
  • MediatR - Mediator pattern implementation for CQRS
  • Repository Pattern - Data access abstraction

🔒 Authentication & Security​

  • ASP.NET Core Identity - Authentication and user management
  • JWT (JSON Web Tokens) - Token-based authentication for API access
  • Azure Active Directory - Enterprise authentication integration

📊 Data Storage​

  • SQL Server - Primary relational database
  • Azure Blob Storage - Storage for documents and images
  • Azure SQL Database - Cloud-hosted database service

🔧 API Design​

  • RESTful API - Standard HTTP methods and resource-based URLs
  • Swagger/OpenAPI - API documentation and exploration
  • FluentValidation - Request validation

⚡ Background Processing​

  • Hosted Services - Long-running background services
  • Azure WebJobs - Scheduled and triggered tasks

✅ Testing​

  • xUnit - Testing framework
  • Moq - Mocking framework for unit tests
  • SQLite - Lightweight database for testing

🌐 Frontend Technologies​

🔧 Core Framework​

  • React - JavaScript library for building user interfaces
  • TypeScript - Type-safe JavaScript for better developer experience

🏗️ State Management​

  • React Context API - State management across components
  • React Hooks - Functional component state and lifecycle management

🌐 UI Components and Styling​

  • Tailwind CSS - Utility-first CSS framework
  • Custom Components - Reusable UI building blocks

🔧 HTTP Client​

  • Fetch API - Native browser API for making HTTP requests

🌐 Forms and Validation​

  • Formik - Form management
  • Yup - Schema-based form validation

📊 Charts and Visualizations​

  • Chart.js - Interactive charts and graphs

🌐 Routing​

  • React Router - Client-side routing

📱 iOS Capture Application​

🔧 Core Framework​

  • React Native - Cross-platform mobile app development
  • Expo - React Native toolchain

📱 Device Features​

  • Expo Camera - Camera access for photo capture
  • AsyncStorage - Local data persistence
  • Geolocation - Location services for asset coordinates

🌐 UI Components​

  • React Native Paper - Material Design components
  • Custom Components - Specialized input forms

🏗️ Deployment and Infrastructure​

☁️ Cloud Platform​

  • Microsoft Azure - Primary cloud provider
  • Azure App Service - Web application hosting
  • Azure Storage - Blob storage for files and images
  • Azure SQL Database - Managed database service

🔧 CI/CD​

  • Azure DevOps - Continuous integration and deployment
  • Azure Pipelines - Build and release automation

🔍 Monitoring and Logging​

  • Application Insights - Performance monitoring and diagnostics
  • Azure Monitor - Infrastructure monitoring
  • Structured Logging - Consistent log format

🔧 Development Tools​

🔧 IDEs and Editors​

  • Visual Studio - Primary .NET development environment
  • Visual Studio Code - Frontend and cross-platform development
  • Xcode - iOS build and signing

🔧 Build Tools​

  • NPM/Yarn - JavaScript package management
  • .NET CLI - Command-line tools for .NET
  • Webpack - Module bundling for frontend

🔧 Version Control​

  • Git - Source code management
  • Bitbucket - Repository hosting

🔗 Third-Party Services and Integrations​

📄 Document Generation​

  • Microsoft Office Interop - Document generation from templates

🗺️ Mapping​

  • Mapbox - Interactive maps for asset locations

🔒 Authentication​

  • OAuth 2.0/OpenID Connect - Authentication protocols