Skip to content

Java application that allows you to create floor plans

Notifications You must be signed in to change notification settings

kassu11/floorplanner

Repository files navigation

About The Project

This project provides users with an easy-to-use and efficient tool for designing and creating floorplans. It offers a variety of features that facilitate design, such as measuring dimensions and calculating total area. This project is open-source.

If you would like to go more into detail about the projects code structure, there are plenty of UML graphs about the inner workings of the program.

For more detailed information on how each method works, here is a link to the Javadoc that was created for this project.

The UX design system can be viewed from the Figma-UX-Design_System folder.

Shortcuts keys

A short list of all the default shortcut keys that the application supports.

Keys Action
ctrl + a Select all shapes
ctrl + n New file
ctrl + z Undo action
ctrl + y Redo action
1 Set draw shape to line
2 Set draw shape to multiline
3 Set draw shape to door
4 Set draw shape to rectangle
s Activate select tool
e Activate delete tool
r Activate rotate tool / flip door when drawing
b Activate drawing mode with the last selected shape (default is line)
a Activate area tool

Built with

Docker build

This section details how to build and run the docker image.

  1. Build the docker images and run docker-compose with the following command in shell:

    docker-compose up -d
  2. The project uses JavaFX which is why docker requires an external tool called VcXsrv Windows X Server to display the application

    • Additional information about the installation can be found from aboullaite's blog
    • TL;DR check Disable access control while setting up Xlaunch
  3. Docker uses multiple containers, one for a PostgreSQL database, and the other for the actual app. Instead of running the Dockerfile seperately, running the compose.yaml file will create all containers and run them. If the images are already created, it will just automatically run all of them as defined in the compose.yaml file.