ProjectBeta

Shared Expenses Tracker

Challenging
22 completions
~ 54 hours
3.8

You will create a Spring Boot program that you'll actually be able to use at a dinner party and impress everyone! During the project, you'll try managing finances in BigDecimal class and learn how to work with string operations, regexp, collections, set operations, lambda, and stream API for complex querying data.

Provided by

JetBrains Academy JetBrains Academy

About

Sharing a meal in a cafe or a few drinks in a bar is a great way to spend quality time with friends, though all the fun disappears when it's time to split the bill... Calculating who pays what and making sure it's fair and precise is just daunting. In this project, you will write a program that will solve this problem once and for all. You will practice concepts frequently tested in technical interviews at top tech companies.

Graduate project icon

Graduate project

This project covers the core topics of the Java Backend Developer (Spring Boot) course, making it sufficiently challenging to be a proud addition to your portfolio.

At least one graduate project is required to complete the course.

What you'll learn

Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
People often borrow small sums from their friends, and it's not easy to keep track of all those little transactions. Let's create a tool that sums up who owes whom money and how much.
Make it possible to split the total price of a gift between people in a predefined "gift" group.
Your program should be able to split the bill excluding the birthday person.
Let your program be the ultimate solution to the Secret Santa mess: it should determine gift pairs, store information in a database, and manage special Christmas cashback deals.
Time to challenge yourself with some complicated splitting schemes: make sure your program can take various little details into account and split the bill fairly.
Having a long and complicated list of small repayments doesn't make things any easier. Minimize the total number of transactions to avoid bank fees and unnecessary complexities.

Reviews

Ihor Shyshov avatar
Ihor Shyshov
2 years ago
Like a real world project, docs are absent sometimes, new functionality is not described and you find it out only when tests are failing.
Ekaterina Diakova avatar
Ekaterina Diakova
2 years ago
I learned a lot in this project. Most importantly, I learned this: Stream, Spring Framework, how to work with a database via JpaRepository, learned algorithms and graphs. In terms of experience, the project is useful, but there are a lot of flaws in the tests, which prevented me from building a comp ...
Denis Tkachenko avatar
Denis Tkachenko
3 years ago
I have learned how to struggle with tests and keep calm with test #9 (you can struggle it by repeat test only)

3.8

Learners who completed this project within the Java Backend Developer (Spring Boot) course rated it as follows:
Usefulness
4.3
Fun
3.7
Clarity
3.3