VIN Photo Management System

Job ID: 39563924

Budget: ₹1,500 – ₹12,500 INR

1. Solution Overview

A secure web application designed to manage and store vehicle photos linked to VINs (Vehicle Identification Numbers), with barcode scanning, photo tagging, and search capabilities.

Features:

AD Integration: Authentication & authorization.

Local Server Storage: Compressed photo storage tagged with labels.

Photo Tagging: Users can tag photos during upload.

Label-Based Search: Retrieve photos using VIN or tag labels.

Activity Logging: All user actions are logged.

Retention Policy: Automatic deletion after 13–14 months.

2. High-Level Architecture

+---------------------+ +---------------------+
| User (Browser) |<----->| Web App Server |
+---------------------+ +---------------------+
|
v
+---------------------+ +------------------+ +-------------------+
| Active Directory |<---->| Authentication | | File System |
| (AD/LDAP) | | & Authorization | | (Local storage) |
+---------------------+ +------------------+ +-------------------+
|
v
+--------------+
| Photo Files |
+--------------+
+---------------------------+
| Relational DB |
| (Logs, VIN, tags, index) |
+---------------------------+

3. Key Components & Technology Choices

Layer

Technology

Description

Frontend

React, Vue, Angular

UI for barcode, photo, tagging

Backend

Node.js, ASP.NET Core, Django

REST API, tag logic, AD integration

Authentication

LDAP, Azure AD

AD SSO/Auth

Database

PostgreSQL, SQL Server

VIN-tag-photo mapping & logs

File Storage

Secured local filesystem

Structured storage

Background Jobs

Celery, Hangfire, Cron

Cleanup jobs

Logging

DB logs, ELK, Audit tables

Full tracking

4. Functional Requirements

a. VIN Photo Upload with Tags

Scan barcode to get VIN.

Upload and compress photo.

Enter one or more tags (comma-separated or pre-defined list).

Store compressed photo.

Record metadata: VIN, photo, user, timestamp, tags.

b. Active Directory Integration

AD/LDAP SSO.

Roles: Admin, Viewer, Uploader.

Track user info for logs.

c. Photo Retrieval by VIN or Tags

Search by VIN, tags, user, or date.

Return photo thumbnails with metadata.

View or download decompressed image.

d. Activity Logging

Log all events: upload, tag, search, delete.

Include: action, user, time, VIN, tags, IP.

e. Photo Retention & Auto-Delete

Background job removes files older than 13–14 months.

Logs each deletion.

f. Security

HTTPS-only access.

Role-based access control.

Secure filesystem permissions.

5. Data Model (Extended)

a. Photo Metadata Table

Field

Type

Description

PhotoID

GUID

Unique ID

VIN

String

Vehicle ID

FilePath

String

Storage path

UploadUser

String

AD username

UploadTime

DateTime

Timestamp

Tags

Array/Text

Comma-separated tags

Compression

String

Compression method

IsDeleted

Boolean

Soft delete flag

b. Activity Log Table

Field

Type

Description

LogID

GUID

Unique ID

Action

String

Upload/Search/Delete

Username

String

AD user

VIN

String

Vehicle ID (optional)

Tags

Text

Tags used (if any)

PhotoID

GUID

Photo reference

Timestamp

DateTime

When occurred

Details

Text

Extended info

6. Workflow Enhancements

A. Upload with Tags

User logs in via AD

Scans VIN barcode

Uploads photo(s), enters tags

Photos compressed and saved

Tags stored in DB

Action logged

B. Search by VIN or Tag

User logs in

Enters VIN or tag(s) in search

Filter by user/date if needed

Matching photos listed

Photo decompressed if downloaded

Action logged

7. Tagging UI Suggestion

Auto-suggestion for tags

Multi-tag input (chips/pills interface)

Admin-defined tag list (optional)

8. Summary Table

Feature

Method/Tech

AD Integration

LDAP/Azure AD

Barcode VIN

JS barcode API

Photo Tagging

Frontend + DB schema extension

Search by Tags

SQL full-text or LIKE

Photo Compression

Sharp / Pillow libs

File Storage

Server folders by VIN

Auto-Delete

Daily background task

Logging

SQL audit tables, exportable