This codebase is curated and maintained by Uros, a backend engineer specializing in enterprise Java/Spring Boot solutions. It demonstrates best practices in modern backend architecture, API design, and production-quality engineering.
This repository demonstrates an extensible, production-grade backend platform tailored for newsrooms, broadcast, and automation use cases. It showcases how to architect, document, and secure a modern Java backend following best enterprise practices.
This public portfolio showcases selected, production-grade code and design patterns from a complete newsroom and broadcast backend platform. The repository is intended exclusively for code review and technical demonstration, and is not designed for direct deployment.
- π REST API with Swagger/OpenAPI documentation
- π Real-time WebSocket messaging (user presence, chat events)
- π Custom JWT authentication/authorization
- π‘οΈ Role-based and permission-based access control
- π Modular, domain-driven design
- π Advanced file & media storage management
- π Integration: MOS TCP server (Netty), automation protocols
- ποΈ Audit logging, user management, multi-tenancy
- π Server-side Word/PDF export for rundowns, stories, and scripts
- Java 21+
- Spring Boot, Spring Security, Spring Data JPA
- Netty (TCP server)
- STOMP/WebSocket
- MariaDB/MySQL
- Maven (build tool)
Docker support is available in the full, private repository.
The full codebase can be adapted for Gradle builds upon request.
Below is a complete Entity-Relationship (ER) diagram of the core database schema
(click to enlarge for details). Both the PNG and PDF versions contain all tables and relationships.
Download the full PDF with all tables and relationships for detailed, high-resolution viewing.
For demo and portfolio purposes, this project is configured with:
spring.jpa.hibernate.ddl-auto=update
This setting demonstrates how automatic database schema updates could be configured in a runnable application, allowing reviewers to understand the approach without manual migration steps.
β οΈ Production Usage Warning
- In any real production environment, database schema management must be handled via migration tools such as Flyway or Liquibase.
- The
ddl-auto
property should be set tovalidate
(ornone
) to prevent accidental schema changes.- All credentials and secrets must be provided via secure mechanisms and never committed to version control.
This configuration is intentional, to simplify code review and illustrate project architecture for demo purposes only.
This public repository does not contain a complete, runnable application, and this configuration is provided for demonstration only.
Do not use this configuration in production.In the full production implementation, all database migrations are version-controlled, all secrets are managed securely, and schema changes are never performed automatically.
This repository contains only a subset of the codebase, published for portfolio and code review purposes.
It is not a complete, runnable application and is not intended for deployment.
- Only key modules, representative controllers, entities, DTOs, and configuration are included.
- Full business logic, all features, and proprietary integrations remain private.
- Build and run instructions are intentionally omitted β the project is not meant to be built or executed in this form.
For qualified clients, technical partners, or enterprise code review,
full access to the complete codebase is available privately upon request and under NDA (Non-Disclosure Agreement).
This includes:
- Complete business logic, proprietary integrations, and production configuration
- All entities, repositories, and extensible project structure
- Docker and cloud deployment support (custom CI/CD and deployment scripts available on request)
- Extended technical documentation
To request a private review or to discuss partnership, please contact me directly via LinkedIn or Upwork.
All endpoints are fully documented using Swagger/OpenAPI.
Below are example screenshots from the live Swagger UI:
User Management endpoints overview:
Create User endpoint detail:
POST /api/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "admin123"
}
{
"accessToken": "...",
"refreshToken": "...",
"tokenType": "Bearer",
"username": "admin",
"fullName": "Admin",
"role": "ADMIN",
"user_id": 6
}
POST /api/users
Authorization: Bearer <token>
Content-Type: application/json
{
"username": "johndoe",
"fullName": "John Doe",
"email": "john@example.com",
"password": "SuperSecret123",
"roleId": 2,
"clientId": 1
}
This codebase is not just a CRUD backend, but demonstrates advanced, reusable modules relevant for modern newsroom and broadcast operations. Key examples include:
WordGeneratorUtil β robust DOCX export for stories, scripts, and editorial content (Apache POI based). Supports granular export of news items, comments, and metadata for newsroom workflows.
PdfGeneratorUtil β automated PDF generation for rundowns and editorial plans (PDFBox integration), optimized for structured, multi-level content.
GlobalExceptionHandler β uniform, production-grade exception mapping across all REST endpoints.
JwtAuthenticationFilter β custom JWT security filter for stateless, scalable authentication.
WebSocket Messaging System β real-time presence, chat, and newsroom event broadcasting using STOMP/WebSocket with user tracking.
src/
main/
java/
rs/
nms/
newsroom/
server/
config/
controller/
domain/
dto/
exception/
mos/
service/
tcp/
util/
websocket/
resources/
application.yml
test/
java/
rs/
nms/
newsroom/
server/
// Unit and integration test classes
docs/
pom.xml
.gitignore
README.md
LICENSE
Representative unit and integration tests (JUnit 5, Spring Boot Test) are provided in src/test/java/
.
These cover the main services and business logic relevant for newsroom automation and backend best practices.
This project follows enterprise best practices in observability and operational monitoring:
- Micrometer metrics are integrated, exposing key JVM and application metrics via Spring Boot Actuator endpoints.
- Grafana dashboards are used to visualize JVM memory, GC activity, CPU usage, thread states, log events, HTTP metrics, and other application insights in real time.
A sample Grafana dashboard (JVM/Micrometer):
Note:
Some panels display "No data" as this screenshot is from a development environment with limited workloads and integrations enabled.
Full observability, alerting, and production monitoring scripts (including advanced metrics and alerting) are available in the private repository and upon request for qualified clients.
Business-oriented dashboards (with high-level system and workflow health metrics for managers and end-users) can be provided or customized for client needs.
For technical consultation, code review, or backend contract work,
contact via Upwork or LinkedIn.
This project is licensed under the MIT License. See the LICENSE file for details.
This repository serves as a curated professional portfolio.
External contributions are not accepted, but code review or technical discussion is welcomed upon request.