Giter VIP home page Giter VIP logo

splitty's Introduction

Splitty

Description

Splitty is an application which purpose is to facilitate financial organization in a group of people. This is basically achieved by creating an event and adding participants to it. Every participant is able to create an expense and add participants that owe him money. Also every participant can send invite code for the event, mark debts settled, see all expenses in the event etc. Every user is able to set up its own application by choosing between some common languages and choosing server.

Setup

  1. Clone the repository

run git clone https://github.com/Aduomas/splitty/ in the app directory

  1. Build the app

run ./gradlew build in the app directory

  1. Run the server

run ./gradlew bootRun in the app directory

  1. Run the client (no need to setup openjfx, since javafx dependency is included in gradle.build in the client)

run ./gradlew run in the app directory

Config

  • The application uses user.json file to store the data for the current user. If you want ot create a new user just delete the file and start the app again.
  • config.properties file contains language and current server, if current server IP is not reachable, the app will not launch.
  • h2-database files contain the database - delete it before launching a new server if you want to reset database.
  • Starting the server will provide a code in the terminal, which can be used as a password for logging in the application as an admin. This can be done through a settings button, located on the top-right on the start page.
  • Recommended way to launch multiple clients:

clone the repo twice in different folders, and launch seperately.

  • Recommended way to launch multiple servers:

clone the repo twice in different folders, and launch servers with different ports (defined in servers/resources/application.properties - server.port=#)

Keyboard shortcuts

  • arrows for moving in the app
  • enter for performing button press on selected button (the button can be accessed by navigating with the arrows)
  • escape for going back in pages, and for exiting the program in start screen page.
  • backspace for going back in some pages.

Long-polling and websockets

  • Example for long-polling usage can be observed by running two clients on the same server. Go with both on the event overview of the same event. On one of them try to add a valid new participant. The event overview on the other client should be automatically updated. Can be seen in the list of all participants.
  • Example of websockets usage can be observed by running two separate clients on the same server. Enter the same event on both and on one of them go to settle debts page, with the other go to add a valid expense. In the debts page the data will be updated immediately. Another example of websockets usage can be found on the event overview page. Just add a new expense on one and it will automatically show up on the other client too.

Multi-modal visualization

  • StartScreen page contains Icons which can be differentiated using Colors, Image and Tooltip. Hover on the element in the startscreen page to also see the tooltip (on hover) it provides (text) and also for Statistic Page, you can learn the percentages of expense tag by staying on the desired slice of the PieChart.

Changing the language/serverIP

  • Open the program, press the settings icon in the top right corner.
  • Write your username (it is saved when you press the button to go back to start screen page)
  • Change server IP (it is only changed if the client successfully connects to it upon Connect button press). A new user in that new server is created. You can also go back to previous server IP.
  • Changing server IP manually -> config.properties (server ip without protocol and last dash) for example - localhost:8080.
  • Language can be changed in the settings page.
  • Language can also be changed in the config (config.properties), change the preffered language to 'en', 'fr', 'nl', 'de'.

splitty's People

Contributors

aduomas avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.