Museum Database

Introduction to project

Here I will place all my steps in creation the app and the database for managing the museum’s art works history etc.

Database schema

We have to start with developing the schema for database for our application. For the provided constraints for data I decided to create such schema for PostgreSQL database to keep the data for the exhibits in the museum.

We have to explain two things that are assumed for this database and can be done using some database triggers.

  1. We have to ensure that there are only artists in artist table whose art works are in museum database
  2. Only single column of (exhibition_id, hire_id, storage_id) in event_of_exhibit can be non null in single row and that means the exhibit is or was in state specified by this column
English version of database schema
[![Database schema image](](
Polish version of database schema
[![Database schema image](](

Database SQL script

Know we need to take care about the implementation of the specified datadase schema. Of course we can use some tools for generation the SQL based on our schema but we have to be really careful to create all constraints additionally and check these ones created by our tool.

My example of the tables generation script for PostgreSQL is:

Download English version of script

Download Polish version of script

Database access application

The application for accessing the database data can be downloaded from here. It’s also available on my GitLab account but will be visible to all users in the future.

The app was written in Kotlin using Exposed framework for connection with database and managin all the data stuff. To build graphical interface of application I used the TornadoFX framework which is based on JavaFX.

Application view

Login page

Exhibits view

Artists view

Others view

Edit exhibit form

Edit artist form

Full app view

Student of Computer Science

My interests include robotics (mainly with Arduino), mobile development for Android (love Kotlin) and Java SE/EE applications development.