Main Application
Overview
The Main Application is DeepData's core Spring Boot service, containing major functional modules including data management, data cleaning, operator marketplace, and data collection.
Architecture
backend/services/main-application/
├── src/main/java/com/deepdata/main/
│ ├── interfaces/
│ │ ├── rest/ # Controllers
│ │ ├── dto/ # Request/Response DTOs
│ │ └── converter/ # MapStruct converters
│ ├── application/ # Application services
│ ├── domain/
│ │ ├── model/ # Entities
│ │ └── repository/ # Repository interfaces
│ └── infrastructure/
│ ├── persistence/ # Repository implementations
│ ├── client/ # External API clients
│ └── config/ # Service configuration
└── src/main/resources/
├── application.yml # Main configuration
├── config/application-datamanagement.yml # Data management config
└── config/application-datacollection.yml # Data collection config
Modules
1. Data Management
- Dataset CRUD operations
- File upload/download
- Tag management
- Dataset versioning
2. Data Collection
- Data source configuration
- Scheduled data collection tasks
- Data synchronization
- Data import/export
Configuration
Port
- Default: 8080
- Context Path:
/api
Key Configuration
server:
port: 8080
servlet:
context-path: /api
deepdata:
data-management:
base-path: /dataset
Quick Start
Prerequisites
- JDK 21+
- Maven 3.8+
- PostgreSQL 12+
- Redis 6+
Build
cd backend/services/main-application
mvn clean install
Run
cd backend/services/main-application
mvn spring-boot:run
Development
Adding a New Module
- Create entity class in
domain/model/ - Create repository interface in
domain/repository/ - Implement repository in
infrastructure/persistence/ - Create application service in
application/ - Create controller in
interfaces/rest/
Testing
Run Tests
cd backend/services/main-application
mvn test
Run Specific Test
mvn test -Dtest=DatasetControllerTest
Documentation
- Spring Boot Docs: https://docs.spring.io/spring-boot/
- AGENTS.md