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