• Stars
    star
    171
  • Rank 222,266 (Top 5 %)
  • Language
    Java
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Single-click full-stack application (Postgres, Spring Boot & Angular) using Docker Compose

Kanban Application

This is a simple implementation of a Kanban Board, a tool that helps visualize and manage work. Originally it was first created in Toyota automotive, but nowadays it's widely used in software development.

A Kanban Board is usually made of 3 columns - TODO, InProgress & Done. In each column there are Post-it notes that represents task and their status.

As already stated this project is an implementation of such board and made of 3 separate Docker containers that holds:

  • PostgreSQL database
  • Java backend (Spring Boot)
  • Angular frontend

The entry point for a user is a website which is available under the address: http://localhost:4200/

Kanban

More information about this project you can found in blog post: https://medium.com/@wkrzywiec/how-to-run-database-backend-and-frontend-in-a-single-click-with-docker-compose-4bcda66f6de


Prerequisites

In order to run this application you need to install two tools: Docker & Docker Compose.

Instructions how to install Docker on Ubuntu, Windows, Mac.

Docker Compose is already included in installation packs for Windows and Mac, so only Ubuntu users needs to follow this instructions.

How to run it?

The entire application can be run with a single command on a terminal:

$ docker-compose up -d

If you want to stop it, use the following command:

$ docker-compose down

kanban-postgres (Database)

PostgreSQL database contains only single schema with two tables - kanban and task table.

After running the app it can be accessible using these connectors:

  • Host: localhost
  • Database: kanban
  • User: kanban
  • Password: kanban

Like other parts of application Postgres database is containerized and the definition of its Docker container can be found in docker-compose.yml file.

kanban-postgres:
    image: "postgres:9.6-alpine"
    container_name: kanban-postgres
    volumes:
      - kanban-data:/var/lib/postgresql/data
    ports:
      - 5432:5432
    environment:
      - POSTGRES_DB:kanban
      - POSTGRES_USER:kanban
      - POSTGRES_PASSWORD:kanban

kanban-app (REST API)

This is a Spring Boot (Java) based application that connects with a database that and expose the REST endpoints that can be consumed by frontend. It supports multiple HTTP REST methods like GET, POST, PUT and DELETE for two resources - kanban & task.

Full list of available REST endpoints could be found in Swagger UI, which could be called using link: http://localhost:8080/api/swagger-ui.html

swagger-ui

This app is also put in Docker container and its definition can be found in a file kanban-app/Dockerfile.

kanban-ui (Frontend)

This is a real endpoint for a user where they can manipulate their kanbans and tasks. It consumes the REST API endpoints provided by kanban-app.

It can be entered using link: http://localhost:4200/

More Repositories

1

library-hexagonal

An example application written in Hexagonal (Ports and Adapter) architecture
Java
235
star
2

Library-Spring

The library web application where you can borrow books. It's Spring MVC and Hibernate project.
Java
79
star
3

keycloak-security-example

Sandbox project to play around with keyclaok and integrating it with Spring Boot and Angular apps (using OAuth 2.0 protocol)
Java
74
star
4

k8s-helm-helmfile

Project which compares 3 approaches to deploy apps on Kubernetes cluster (using kubectl, helm & helmfile)
70
star
5

aston-villa-app

Aston Villa Dashboard made in Angular 7
TypeScript
33
star
6

WaWa-Tabor

Android app that presents location of Warsaw buses and trams.
Java
23
star
7

cypress-simple-ci-report

Simple Cypress project with GitHub Actions workflow for generating and publishing test execution result page.
JavaScript
19
star
8

NoticeBoard

Simple RESTful CRUD application (based on Spring Boot)
Java
12
star
9

docker-postgres

Postgres Dockerfile with simple SQL script
Dockerfile
8
star
10

Nasa-Picture

Single-page application which display NASA's Astronomy Picture of the Day
Java
7
star
11

algorithms-python

Set of solutions of classic algorithmic problems written in Python
Python
6
star
12

MyGitHubActions

My GitHub Actions Workflows repository
5
star
13

monitoring-sandbox

Java
3
star
14

Library-API

A REST API for my other project - Library Spring
Java
3
star
15

food-delivery-redis

Java
3
star
16

Random-Jokes

Testing RxJava 2 periodic capabilities
Java
3
star
17

develop-env

Development tools in Docker container
Dockerfile
2
star
18

eurovision-2021

Web scrapper for getting number of views of YouTube videos of Eurovision contestants
Jupyter Notebook
2
star
19

java-series

Repo with various Java examples
Java
2
star
20

farm-to-table

Java
2
star
21

ParkingManager

Simple web application using JSP, Servlets, JDBC, MySQL and Gradle
Java
1
star
22

wkrzywiec.github.io

HTML
1
star
23

test-git

Smarty
1
star
24

build-local-env

Scripts for installing all necessary (for me) tools on OS
1
star
25

tasty-python

Command Line Tool for finding recipes on Tasty.co (written in Python)
Python
1
star
26

pet-clinic

Smarty
1
star
27

gh-workflows

1
star
28

testcontainers-sandbox

Small project for testing testcontainers features
Java
1
star
29

helm-course

1
star
30

classic-den

Simple client and server app for publishing posts
JavaScript
1
star
31

devil-deals-network

Blockchain, based on Hyperledger Composer project
JavaScript
1
star
32

mankkoo

Python
1
star
33

helm-app

Helm Repository for "app" Chart
Smarty
1
star
34

helm-emp

Smarty
1
star
35

polish-crops

Machine learning project to find out if price of a wheat in Poland depends on a weather.
Jupyter Notebook
1
star