Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
dda4a4c
DVLP-001: Create the project
ferid333 Apr 14, 2026
81e5da8
Merge pull request #2 from ferid333/DVLP-001
ferid333 Apr 14, 2026
e816dc7
DVLP-002: Add entities and create tables
ferid333 Apr 15, 2026
1e6b76d
Merge pull request #3 from ferid333/DVLP-002
ferid333 Apr 15, 2026
8cb7253
DVLP-003: Add liquibase and exception handler
ferid333 Apr 16, 2026
28751ca
Merge pull request #4 from ferid333/DVLP-003
ferid333 Apr 16, 2026
486d9d5
DVLP-004: Add create conversation endpoint
ferid333 Apr 17, 2026
664bc46
DVLP-004: Add create conversation endpoint
ferid333 Apr 17, 2026
cb5d67a
Merge pull request #5 from ferid333/DVLP-004
ferid333 Apr 17, 2026
623b624
DVLP-005: Add get conversation list endpoint
ferid333 Apr 18, 2026
48d806f
Merge pull request #6 from ferid333/DVLP-005
ferid333 Apr 18, 2026
70dc8ad
DVLP-006: Add attachment endpoints
ferid333 Apr 19, 2026
12c8707
Merge pull request #7 from ferid333/DVLP-006
ferid333 Apr 19, 2026
7d803a5
DVLP-007: Add endpoints to send message and change the status
ferid333 Apr 20, 2026
4995373
Merge pull request #8 from ferid333/DVLP-007
ferid333 Apr 20, 2026
31549a2
DVLP-008: Add rabbitmq to push notifications
ferid333 Apr 20, 2026
92aabe1
Merge pull request #9 from ferid333/DVLP-008
ferid333 Apr 21, 2026
cba2e0e
DVLP-009: WebSocket implementation
ferid333 Apr 21, 2026
d7c60d0
Merge pull request #10 from ferid333/DVLP-009
ferid333 Apr 21, 2026
c4862fd
DVLP-010: Add unit tests
ferid333 Apr 21, 2026
076318e
Merge pull request #11 from ferid333/DVLP-010
ferid333 Apr 21, 2026
e771702
DVLP-011: Add CI workflow
ferid333 Apr 21, 2026
1120a1e
Merge pull request #12 from ferid333/DVLP-011
ferid333 Apr 22, 2026
d9c8082
DVLP-012: Fix pr title check
ferid333 Apr 22, 2026
e2f5657
Merge pull request #14 from ferid333/DVLP-012
ferid333 Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.gradle
.gradle-user
.idea
build
out
.git
.github
*.iml
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/gradlew text eol=lf
*.bat text eol=crlf
*.jar binary
104 changes: 104 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: CI

on:
pull_request:
branches:
- master
- develop
push:
branches:
- master
- develop

permissions:
contents: read

jobs:
pull-request-rules:
name: Pull Request Rules
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Validate PR title
env:
BASE_BRANCH: ${{ github.event.pull_request.base.ref }}
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
if [[ "$BASE_BRANCH" == "develop" && ! "$PR_TITLE" =~ ^DVLP ]]; then
echo "PR title must start with DVLP when targeting develop."
echo "Target branch: $BASE_BRANCH"
echo "Actual title: $PR_TITLE"
exit 1
fi

title_length=${#PR_TITLE}
if (( title_length > 120 )); then
echo "PR title must not be longer than 120 characters."
echo "Actual length: $title_length"
exit 1
fi

- name: Validate commit titles
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
invalid_commits=$(git log --format='%H%x09%s' "$BASE_SHA..$HEAD_SHA" | awk -F '\t' '$2 !~ /^DVLP/ { print }')

if [[ -n "$invalid_commits" ]]; then
echo "Every commit title in the PR must start with DVLP."
echo "$invalid_commits"
exit 1
fi

unit-tests:
name: Unit Tests
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4

- name: Make Gradle wrapper executable
run: chmod +x ./gradlew

- name: Run unit tests
run: ./gradlew test

checkstyle:
name: Checkstyle
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4

- name: Make Gradle wrapper executable
run: chmod +x ./gradlew

- name: Run Checkstyle
run: ./gradlew checkstyleMain checkstyleTest
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/
23 changes: 23 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM eclipse-temurin:21-jdk AS builder

WORKDIR /workspace

COPY gradlew .
COPY gradle gradle
COPY build.gradle .
COPY settings.gradle .
COPY src src
COPY config config

RUN chmod +x ./gradlew
RUN ./gradlew bootJar --no-daemon

FROM eclipse-temurin:21-jre

WORKDIR /app

COPY --from=builder /workspace/build/libs/*.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "app.jar"]
Loading
Loading