Skip to content

Production-ready, modular Spring Boot backend tailored for newsrooms, broadcast, and media automation. Includes JWT security, multi-tenancy, RBAC/PBAC, audit/event logging, STOMP/WebSocket chat, Word/PDF export, and Docker support.

License

Notifications You must be signed in to change notification settings

urosengineer/spring-boot-backend-portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

spring-boot-backend-portfolio

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.


About this Repository

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.

Features

  • πŸ“Š 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

Technologies

  • 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.


Database ER Diagram

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.

Database ER Diagram

Download the full PDF with all tables and relationships for detailed, high-resolution viewing.

Database Schema Auto-Update

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 to validate (or none) 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.


⚠️ Portfolio Notice

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.

Private Full Project Access

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.


API Documentation

All endpoints are fully documented using Swagger/OpenAPI.
Below are example screenshots from the live Swagger UI:

User Management endpoints overview:

Swagger User Management

Create User endpoint detail:

Swagger Create User


Example API Usage

User Authentication (Login)

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
}

Create New User

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
}

Highlighted Modules & Utilities

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.

Project Structure


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

Testing

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.

Observability & Monitoring

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):

JVM Grafana Dashboard

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.

Portfolio & Contact

For technical consultation, code review, or backend contract work,
contact via Upwork or LinkedIn.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contribution

This repository serves as a curated professional portfolio.
External contributions are not accepted, but code review or technical discussion is welcomed upon request.

About

Production-ready, modular Spring Boot backend tailored for newsrooms, broadcast, and media automation. Includes JWT security, multi-tenancy, RBAC/PBAC, audit/event logging, STOMP/WebSocket chat, Word/PDF export, and Docker support.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages