Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

60 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“¦ Data Keeper

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.


πŸ“– Overview

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.


πŸš€ Core Features

πŸ“ File Management

The platform allows users to manage various file types through a unified API.

Supported operations:

  • Upload
  • Download
  • Update metadata
  • Delete
  • Search
  • Pagination

πŸ—‚ Folder Management

Files can be organized into hierarchical folder structures.

Benefits:

  • Improved navigation
  • Better organization
  • Scalable file categorization

πŸ–Ό Image Processing

Dedicated image processing components handle image-specific operations.

Examples:

  • Image uploads
  • Metadata extraction
  • File validation

🎬 Video Management

The platform supports video file processing.

Capabilities:

  • Video uploads
  • Video metadata handling
  • Streaming-related preparation
  • Media property extraction

πŸ“„ Office Document Processing

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

☁ Object Storage Integration

Physical file storage is implemented using MinIO.

Features:

  • S3-compatible storage
  • Scalable file handling
  • Separation of file content and metadata
  • Cloud-ready architecture

πŸ” Authentication & Authorization

The platform includes a dedicated security layer.

Implemented mechanisms:

  • JWT Authentication
  • User login
  • Role-based access control
  • Secure API access

πŸ— Architecture

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.


πŸ“‚ Supported Content Types

The platform is designed to support multiple file categories.

Examples:

Documents

  • PDF
  • TXT
  • DOCX
  • XLSX
  • PPTX

Images

  • JPG
  • PNG
  • Other common image formats

Media

  • Video files
  • Media metadata extraction

This design allows future extension without major architectural changes.


πŸ”’ Security Design

Security is implemented as a first-class concern.

Features:

JWT Authentication

Stateless user authentication using JSON Web Tokens.


Role-Based Access Control

Access to resources can be restricted according to user roles.


Protected APIs

Sensitive operations require authenticated access.


βš™ Technology Stack

Backend

  • Java
  • Spring Boot
  • Spring MVC

Security

  • Spring Security
  • JWT

Storage

  • MinIO
  • S3-Compatible Object Storage

Documentation

  • OpenAPI
  • Swagger

File Processing

  • Apache POI
  • Media Processing Components

Testing

  • JUnit 5
  • Mockito

πŸ§ͺ Testing Strategy

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

πŸ“Š Design Highlights

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

πŸ€” Why This Design?

Why Object Storage Instead of Local Files?

Storing files directly on the application server creates scalability and deployment challenges.

Using MinIO provides:

  • Better scalability
  • Cloud compatibility
  • Storage abstraction
  • Improved maintainability

Why Separate Metadata From File Storage?

Metadata and file content evolve independently.

Separating them provides:

  • Better performance
  • Easier querying
  • Cleaner architecture
  • Improved flexibility

Why Strategy-Based File Processing?

Different file types require different processing rules.

Using dedicated processors provides:

  • Open/Closed Principle compliance
  • Easier extensibility
  • Cleaner business logic
  • Better maintainability

Why JWT Authentication?

JWT enables stateless authentication.

Benefits:

  • Simpler scaling
  • Reduced server-side session management
  • Standardized security model

Why MinIO?

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.


Why Build This Project?

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.


πŸš€ Future Improvements

Planned enhancements include:

  • Advanced search
  • File versioning
  • Audit logging
  • Event-driven processing
  • Distributed storage support
  • Monitoring and metrics
  • AI-powered document analysis

πŸ‘¨β€πŸ’» Author

Ruslan Senkin

Java Backend Developer

Specialization:

  • Java
  • Spring Boot
  • Spring Security
  • REST APIs
  • Object Storage
  • Cloud-Native Development
  • Microservices
  • Distributed Systems

About

Document and media management platform built with Java, Spring Boot, JWT, and MinIO. Supports secure file storage, metadata management, media processing, and S3-compatible object storage integration.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages