VIN Photo Management System
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
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