Built With Modern Technologies

Leveraging the latest Java ecosystem and cloud technologies

System Architecture

Multi-Module Gradle Project

CrewOps is built with a clean, modular architecture that ensures separation of concerns and maintainability. The project is structured into distinct modules with clear responsibilities, promoting code reusability and maintainability.

This modular approach allows for independent development and testing of different components while maintaining a cohesive system architecture. Each module has a specific purpose and well-defined boundaries.

Backend Module

  • Spring Boot framework
  • PostgreSQL with JPA/Hibernate
  • Liquibase for database migrations
  • Multi-tenancy with schema-per-tenant
  • JWT-based authentication
  • Stateless API design

Frontend Module

  • Spring Boot with Vaadin
  • Modern UI components
  • Integrated Spring Security
  • Vaadin session management
  • Web-based interface
  • Mobile version in development

Model Module

  • Shared DTOs and enums
  • Domain objects
  • Consistent data structures
  • Type safety between modules
  • HTTP communication contracts
  • Validation rules

Security Module

  • Shared security interfaces
  • JWT token validation
  • Role verification
  • Consistent auth across modules
  • Permission checking
  • Security context handling

Core Technologies

Java

Core programming language with modern features and strong type safety

Spring Boot

Framework for building stand-alone, production-grade applications

PostgreSQL

Robust relational database with advanced features

JPA/Hibernate

Object-relational mapping for database interactions

Liquibase

Database schema migration and version control

Spring Security

Comprehensive security framework for authentication and authorization

JWT

JSON Web Tokens for stateless authentication

Vaadin

Modern web framework for building UIs in Java

AWS EC2

Cloud computing platform for deployment and hosting

Nginx

High-performance web server and reverse proxy

Docker

Containerization platform for consistent environments

Gradle

Build automation tool for dependency management

DevOps & Deployment

CI/CD Pipeline & Infrastructure

CrewOps implements a modern DevOps approach with automated deployment and cloud infrastructure management. The entire deployment pipeline is automated from code commit to production deployment.

GitHub Integration

  • Repository management
  • Issues for planning
  • Projects as backlog
  • Automated deployment triggers

Deployment Pipeline

  • Automated testing
  • Build on merge to main
  • AWS EC2 deployment
  • Zero-downtime updates

Security & SSL

  • Nginx reverse proxy
  • HTTPS termination
  • SSL certificate management
  • Security headers configuration

Monitoring

  • Application logging
  • Performance monitoring
  • Error tracking
  • Resource utilization

Technical Challenges & Solutions

Multi-Tenancy Implementation

Implemented schema-per-tenant approach for data isolation in PostgreSQL. Each tenant gets their own database schema while sharing the same application instance. Dynamic schema resolution based on JWT tenant identification ensures proper data separation and security.

Cross-Module Consistency

Maintaining consistency between backend and frontend modules through shared model and security modules. The shared modules ensure type safety, consistent data structures, and uniform security validation across all components of the application.

Stateless Authentication

Implemented JWT-based authentication with Spring Security for a stateless API design. Token refresh mechanism and role-based authorization at endpoint level provide secure access control without server-side session storage.

Real-time Notifications

Designed and implemented a notification system that sends alerts to relevant personnel when machine faults are reported. The system ensures timely communication and quick response to critical operational issues.