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.
- Add User
- Username (Required field)
- Name
- Lastname
- List All Users
- Username
- Name
- Lastname
- Balance (Amount owned to/from the group, in €uros)
- Add Expense
- Username (Required field)
- Amount (Required field, in €uros)
- Description
- List All Expenses
- Username
- Amount (In €uros)
- Description
- Date
Starting the server application.
java -jar ./build/libs/SharedExpenses-0.0.1-SNAPSHOT.jar
Source code compilation.
./gradlew build
Compilation and execution
./gradlew bootRun
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.
A sample DB is provided. Could be imported as follows.
mysql --user=springuser --password=ThePassword -h localhost shared_expenses < shared_expenses.sql
- Username field is required. It is used as a user identifier. This way we can have people that share a name and lastname.
- If user has a negative balance, it means the group owes the user money. The group is in debt.
- User might update name and lastname, balance and username is kept.
- Currency is always €uros.
- Back and front exchange times in EPOCH format. Database stores user readable string.
- Tests. To ensure correct back behaviour and proyect scalability.
- 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.
- Nominal expense. App would tell each person how much to pay and to whom in order to keep the group balance to 0€.