Skip to content

[BugStalker] bugtracker backend application made with Spring Boot and Java 17

Notifications You must be signed in to change notification settings

Kaliszando/bs-business

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo BugStalker

BugStalker is a bug tracking system, that addresses the problem of ticket management in software development teams. It is a system that supports the implementation phase of the software development life cycle by streamlining the methods of presenting the status of issues. BugStalker allows you to manage a large number of tickets. The system was implemented as a web application in a client-server architecture.

BacklogScreenshot

BugStalker consists of three, separate projects:

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contact

About The Project

Backend is responsible for providing main business logic and persisting data to database. It was created using Spring Boot framework and Java 17. Backend communicates with frontend app using Rest API. Endpoint definitions (interfaces for Spring controllers) and DTOs are generated by bs-api-specification project.

Built With

Java-17 Spring Maven Swagger OpenApi SpringSecurity Hibernate JWT Docker PostgreSQL Redis Badge

Additional Dependencies

  • Lombok
  • JUnit 5, AssertJ, Rest Assured, Mockito
  • MapStruct
  • QueryDsl

Technological Challenges

  • JWT authorization
  • N+1 problem
  • Optimistic locking
  • AOP
  • Security (password encryption, user context, endpoint authorization)
  • Deployment on AWS platform
  • QueryDsl + Spring Data JPA

UML Diagrams

UML diagrams are outdated. See corresponding domains for current state.

Issue domain

Vertical cross-section of the issue domain IssueDomain

Entity relationship diagram

ERD

(back to top)

Getting Started

To develop a business application, you must first build an API project, which serves as an essential dependency for the backend.

The API project contain models and endpoints crucial for the application. Additionally, it automatically generates code for both backend and frontend.

Prerequisites

  • Java 17+
  • Maven

Installation

  1. Clone the repo
    git clone https://github.com/Kaliszando/bs-business.git
  2. Build API project
  3. Build bs-business project
    mvn clean install
  4. Run database and cache (use postgres and redis services defined in docker-compose.yml)
  5. Run BsBusinessApplication with dev-local and swagger profiles or execute jar file.
    java -jar target/bs-business-X.X.X-SNAPSHOT.jar --spring.profiles.active=dev-local,swagger
  6. Open Swagger UI

Working with Docker

  1. Build docker image based on Dockerfile
    docker build -t bugstalker:1.0.0-SNAPSHOT .
    Alternativelly you can use buildpack for building image
    mvn spring-boot:build-image
  2. Run image
    docker run -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev-local,swagger" --name bugstalker_terminal bs-business:1.0.0-SNAPSHOT

(back to top)

Usage

(back to top)

Roadmap

See the open issues for a full list of proposed features and known issues.

  • Multiple projects context
  • Backlog view
  • Kanban board
  • List view (paging, query, filtering by fields)
  • Summary screen (charts)
  • Permissions
  • Admin view
  • Community issues

(back to top)

Contact

Adam Kalisz kaliszadam99+dev@gmail.com

LinkedIn @adam-kalisz

Other links linktr.ee/kaliszando

(back to top)