Skip to content

ASP.NET Core MVC app with authentication, role-based access (Admin/User), and built-in photo tools. Features include renaming photos based on EXIF date with archive upload/download, and displaying photo locations and building routes on the map.

Notifications You must be signed in to change notification settings

Peter42306/PhotoLabWebApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PhotoLabWebApp

A web application for batch photo processing and visual analysis, built with ASP.NET Core MVC.

The app helps photographers and travelers organize photos by EXIF data, optimize image size, and visualize shooting locations on an interactive map.

PhotoLab Web App allows users to upload large photo sets (ZIP or individual images), automatically process them, and generate visual reports based on metadata such as creation time and GPS coordinates.

The application is deployed on a self-hosted home server and is accessible within a local network.

Features

  • Batch photo upload (ZIP archive or individual JPEG/JPG images)
  • Automatic photo renaming based on EXIF date and time
  • Image resizing and JPEG quality optimization
  • Support for large uploads (ZIP archives up to 5 GB)
  • Progress tracking during upload and processing
  • Interactive map view with photo GPS locations
  • Optional route visualization between photo points
  • Distance calculation between shooting locations
  • Photo preview directly from map markers
  • Printable visual report
  • PDF export of photo report with thumbnails and map data
  • Temporary file processing with automatic cleanup

Screenshots

Screenshot-2025-11-06-125834

Screenshot-2025-11-06-125854

Screenshot-2025-11-06-125931

Screenshot-2025-11-06-130048

Screenshot-2025-11-06-130129

Screenshot-2025-11-06-130215

Screenshot-2025-11-06-130325

Screenshot-2025-11-06-130345

Screenshot-2025-11-06-130422

Screenshot-2025-11-06-130445

Screenshot-2025-11-06-130559

Screenshot-2025-11-06-130625

Screenshot-2025-11-06-130700

Photo processing workflow

Rename & Resize Photos

  • Upload photos or ZIP archive
  • Extract EXIF metadata
  • Preview processed file list
  • Choose output filename format
  • Resize images while keeping aspect ratio
  • Optimize JPEG quality
  • Download processed photos as ZIP archive

Photos on Map

  • Extract GPS coordinates from EXIF data
  • Display photo locations on interactive map (OpenStreetMap)
  • Show photo preview on marker click
  • Optionally connect points to visualize movement route
  • Calculate total route distance
  • Generate printable report
  • Export map-based photo report to PDF

Technology stack

Backend / Web

  • ASP.NET Core MVC
  • Entity Framework Core
  • EXIF metadata processing
  • Image processing (resize, compression)

Frontend

  • Razor Views (MVC)
  • Bootstrap
  • Interactive maps (OpenStreetMap / MapTiler)

Infrastructure

  • Linux server deployment (local network access)
  • Nginx reverse proxy
  • Temporary file storage with automatic cleanup
PhotoLabWebApp/
├─ Areas/
│  └─ Identity/                  # Authentication UI (Admin/User)
│
├─ Controllers/
│  ├─ HomeController.cs
│  ├─ RenamePhotosController.cs  # Batch rename & resize logic
│  ├─ PhotoGpsMapController.cs   # Map visualization & reports
│  └─ ApplicationUsersController.cs
│
├─ Data/
│  ├─ ApplicationDbContext.cs
│  └─ DbInitializer.cs
│
├─ Interfaces/
│  ├─ IRepository.cs
│  └─ IImageService.cs
│
├─ Services/
│  ├─ ImageService.cs            # Resize, compression, EXIF handling
│  ├─ PhotoAnalyzerService.cs    # GPS & metadata analysis
│  ├─ TmpFolderCleanupService.cs # Temporary file cleanup
│  └─ UsageStatsService.cs
│
├─ Models/
│  ├─ ApplicationUser.cs
│  ├─ RenamePhotosViewModel.cs
│  └─ ErrorViewModel.cs
│
├─ ViewModels/
│  └─ RenamePhotosViewModel.cs
│
├─ Views/
│  ├─ Home/
│  ├─ RenamePhotos/
│  ├─ PhotoGpsMap/
│  └─ Shared/
│     ├─ _Layout.cshtml
│     ├─ _LoginPartial.cshtml
│     └─ Error.cshtml
│
├─ wwwroot/
│  ├─ css/
│  ├─ js/
│  ├─ lib/                       # Bootstrap, jQuery
│  └─ image/
│
├─ appsettings.json
├─ Program.cs
└─ PhotoLabWebApp.csproj

Project status

This project is complete and fully functional application (demo / internal tool).

It demonstrates real-world image processing workflows, handling of large uploads, EXIF metadata analysis, interactive map-based visualization, and deployment on a self-hosted Linux environment.

About

ASP.NET Core MVC app with authentication, role-based access (Admin/User), and built-in photo tools. Features include renaming photos based on EXIF date with archive upload/download, and displaying photo locations and building routes on the map.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published