Giter Club home page Giter Club logo

sharedexpenses's Introduction

Shared Expenses

This README in other languages: English, Español.

Shared Expenses is a backend application created with Spring Boot.

Dependencies have been managed with Gradle.

Shared Expenses is an application that provides support for group of friends that want to share expenses and keep track of what each one owes to/from the group. Data is stored in MySQL database.

Features

  1. Add User
    1. Username (Required field)
    2. Name
    3. Lastname
  2. List All Users
    1. Username
    2. Name
    3. Lastname
    4. Balance (Amount owned to/from the group, in €uros)
  3. Add Expense
    1. Username (Required field)
    2. Amount (Required field, in €uros)
    3. Description
  4. List All Expenses
    1. Username
    2. Amount (In €uros)
    3. Description
    4. Date

Requirements

  1. Java(11)

Usage

Starting the server application.

java -jar ./build/libs/SharedExpenses-0.0.1-SNAPSHOT.jar

Compilation

Source code compilation.

./gradlew build

Compilation and execution

./gradlew bootRun

Data Persistance

Data is persisted via Spring Data, using JPA. MySQL database has been used. It is provided a sample copy in the source code so devs can test the app.

Import the database

A sample DB is provided. Could be imported as follows.

mysql --user=springuser --password=ThePassword -h localhost shared_expenses < shared_expenses.sql 

Assumptions

  1. Username field is required. It is used as a user identifier. This way we can have people that share a name and lastname.
  2. If user has a negative balance, it means the group owes the user money. The group is in debt.
  3. User might update name and lastname, balance and username is kept.
  4. Currency is always €uros.

Technical Decisions

  1. Back and front exchange times in EPOCH format. Database stores user readable string.

Nice to have

  1. Tests. To ensure correct back behaviour and proyect scalability.
  2. Docker containers allowing a developer to package up an application with all the needed parts, such as libraries and other dependencies, and ship it all out as one package.
  3. Nominal expense. App would tell each person how much to pay and to whom in order to keep the group balance to 0€.

sharedexpenses's People

Contributors

olaia 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.