A document and media management platform built with Java and Spring Boot.
Data Keeper provides secure storage, management, processing, and retrieval of various file types including documents, images, videos, and office files. The project demonstrates practical experience with object storage systems, file processing pipelines, REST API design, security, and scalable backend architecture.
The application was designed to explore real-world challenges related to file management systems, media handling, metadata processing, and cloud-native storage integration.
Data Keeper acts as a centralized platform for storing and managing digital assets.
Supported capabilities include:
- File upload
- File download
- File metadata management
- Folder organization
- User management
- Secure access control
- Office document processing
- Image handling
- Video processing
- Object storage integration
The system separates metadata management from physical file storage while providing a unified API for file operations.
The platform allows users to manage various file types through a unified API.
Supported operations:
- Upload
- Download
- Update metadata
- Delete
- Search
- Pagination
Files can be organized into hierarchical folder structures.
Benefits:
- Improved navigation
- Better organization
- Scalable file categorization
Dedicated image processing components handle image-specific operations.
Examples:
- Image uploads
- Metadata extraction
- File validation
The platform supports video file processing.
Capabilities:
- Video uploads
- Video metadata handling
- Streaming-related preparation
- Media property extraction
The system contains dedicated processing strategies for common office formats.
Supported document categories:
- Microsoft Word
- Microsoft Excel
- Microsoft PowerPoint
Benefits:
- Extensible architecture
- Type-specific processing
- Cleaner business logic
Physical file storage is implemented using MinIO.
Features:
- S3-compatible storage
- Scalable file handling
- Separation of file content and metadata
- Cloud-ready architecture
The platform includes a dedicated security layer.
Implemented mechanisms:
- JWT Authentication
- User login
- Role-based access control
- Secure API access
Client
β
βΌ
REST API
β
βΌ
Business Services
β
βββ File Management
βββ Folder Management
βββ User Management
βββ Media Processing
β
βΌ
Metadata Storage
β
βΌ
MinIO Object Storage
The architecture separates business logic, metadata management, and physical file storage.
The platform is designed to support multiple file categories.
Examples:
- TXT
- DOCX
- XLSX
- PPTX
- JPG
- PNG
- Other common image formats
- Video files
- Media metadata extraction
This design allows future extension without major architectural changes.
Security is implemented as a first-class concern.
Features:
Stateless user authentication using JSON Web Tokens.
Access to resources can be restricted according to user roles.
Sensitive operations require authenticated access.
- Java
- Spring Boot
- Spring MVC
- Spring Security
- JWT
- MinIO
- S3-Compatible Object Storage
- OpenAPI
- Swagger
- Apache POI
- Media Processing Components
- JUnit 5
- Mockito
The project contains unit tests covering critical business functionality.
Covered areas:
- File services
- Utility components
- File processing logic
- Validation rules
Testing tools:
- JUnit 5
- Mockito
The project demonstrates practical experience with:
- Object Storage Integration
- File Management Systems
- REST API Design
- Spring Security
- Strategy Pattern
- DTO Mapping
- Media Processing
- Cloud-Native Storage Concepts
Storing files directly on the application server creates scalability and deployment challenges.
Using MinIO provides:
- Better scalability
- Cloud compatibility
- Storage abstraction
- Improved maintainability
Metadata and file content evolve independently.
Separating them provides:
- Better performance
- Easier querying
- Cleaner architecture
- Improved flexibility
Different file types require different processing rules.
Using dedicated processors provides:
- Open/Closed Principle compliance
- Easier extensibility
- Cleaner business logic
- Better maintainability
JWT enables stateless authentication.
Benefits:
- Simpler scaling
- Reduced server-side session management
- Standardized security model
MinIO provides an S3-compatible object storage solution that closely resembles production cloud storage environments.
This makes the project more representative of real-world backend systems.
The goal was to gain practical experience with:
- File storage systems
- Cloud storage integration
- Media processing
- Backend architecture
- Secure API development
while building a realistic business-oriented application.
Planned enhancements include:
- Advanced search
- File versioning
- Audit logging
- Event-driven processing
- Distributed storage support
- Monitoring and metrics
- AI-powered document analysis
Ruslan Senkin
Java Backend Developer
Specialization:
- Java
- Spring Boot
- Spring Security
- REST APIs
- Object Storage
- Cloud-Native Development
- Microservices
- Distributed Systems