Skip to content
‹ Projects

Product Web app Shipped 2026

SplitEase Expense Tracker

Full-stack shared expense tracking application built with Next.js, React, Node.js, Express, Sequelize, PostgreSQL, TanStack Query, Joi, Formik/Yup, and Tailwind CSS.

SplitEase-landingPage.png

SplitEase — Building a Smarter Way to Manage Shared Expenses

1. The Story Behind the Project

Money is often the easiest part of spending time with friends, until it is time to figure out who owes whom.

Think about a group dinner, a university trip, shared accommodation, or a weekend outing. One person pays for food, another covers transportation, and someone else books the accommodation. By the end, everyone is trying to remember transactions, calculate individual shares, and settle outstanding balances.

What should be a simple experience can quickly turn into confusing calculations, scattered messages, and uncomfortable conversations about money.

That everyday problem inspired the development of SplitEase — an expense-tracking application designed to make sharing expenses more organized, transparent, and manageable.

The goal was not simply to build another expense calculator. It was to turn a repetitive, error-prone process into a structured digital experience that people could use in their everyday lives.

2. The Problem

Shared expenses introduce several challenges when they are managed manually.

  • Scattered records: Expense details become spread across messages, notes, and conversations.
  • Calculation errors: Dividing bills among multiple people can lead to incorrect totals or uneven shares.
  • Unclear balances: Group members may lose track of who paid, who owes money, and how much remains unsettled.
  • Poor visibility: Without a central record, understanding the group's overall spending becomes difficult.
  • Manual coordination: Updating expenses and reconciling payments takes time that could be spent on more important things.

The underlying problem was not the inability to divide a bill. It was the lack of a reliable, organized way to manage the entire shared-expense process.

3. The Objective

The objective behind SplitEase was to create a practical solution that makes expense management easier without introducing unnecessary complexity.

The product was approached with four core goals:

  1. Simplicity: Make expense tracking understandable and straightforward.
  2. Accuracy: Structure expense calculations around clear financial rules.
  3. Transparency: Make contributions, individual shares, and outstanding balances easier to understand.
  4. Maintainability: Develop the application with an engineering approach that supports testing, debugging, and future improvements.

These goals helped frame the project as both a user-facing product and a software engineering exercise.

4. The Solution: Introducing SplitEase

SplitEase brings the shared-expense workflow into one application.

Instead of relying entirely on manual calculations and scattered records, users can organize expenses around a common context and work toward a clearer understanding of their financial responsibilities.

The product's core concept is simple:

Record expenses clearly. Calculate everyone's share fairly. Keep balances understandable. Make settling up easier.

This approach helps transform a collection of individual payments into a more structured expense-management process.

5. The Product Experience

Organizing shared expenses

A structured expense-tracking experience provides a central place to record spending and understand how different expenses contribute to the overall balance.

This is useful for scenarios such as university trips, group outings, shared household expenses, and recurring social activities.

Making expense calculations easier

Bill splitting involves more than dividing a total by the number of people. Different expenses may involve different participants, contributions, or allocation rules.

A well-designed expense workflow must account for these differences while maintaining accurate totals and making the resulting calculations understandable.

Improving financial transparency

A shared expense record helps reduce uncertainty about individual contributions and outstanding amounts.

Rather than reconstructing an entire history from messages and memory, users can refer to a structured record when reviewing expenses and resolving differences.

Designing for everyday usability

Expense management is a repeated task. If recording an expense requires too many steps, users are more likely to postpone updating their records.

The product direction therefore emphasizes a straightforward workflow, understandable information, and reducing unnecessary friction.

Note: The exact feature set and implementation details should be confirmed against the repository before this case study is published as a technical specification.

6. The Engineering Perspective

Building an expense tracker is an interesting software engineering challenge because financial data must remain consistent as the application evolves.

The interface may look simple, but the underlying problem involves data modeling, calculation rules, state management, and reliable handling of user actions.

Several engineering considerations are especially important in a product like SplitEase.

A. Expense data modeling

An expense-management system needs a consistent way to represent financial activity.

Depending on the implementation, its data model may need to distinguish between:

  • The expense description and amount.
  • The person who paid.
  • The participants responsible for the expense.
  • The allocation method and individual shares.
  • Payment or settlement records.
  • The resulting balances.

Separating these concepts clearly makes the system easier to reason about, test, and extend.

B. Financial calculation accuracy

Financial calculations require more care than ordinary arithmetic displayed in a user interface.

For example, splitting PKR 1,000 equally among three people produces repeating decimal shares. A robust implementation needs an explicit rounding policy so that the allocated amounts reconcile with the original total.

This highlights an important principle: financial correctness should be enforced by the underlying business logic, not left to the presentation layer.

C. State and data consistency

When an expense is added, edited, or removed, related totals and balances may need to change as well.

A reliable design must account for these dependencies and avoid situations where the displayed balance no longer matches the recorded transactions.

D. Validation and error handling

Expense applications should handle invalid amounts, missing information, inconsistent allocations, and unsuccessful operations gracefully.

Clear validation and predictable error handling improve both reliability and user confidence.

These considerations provide a useful framework for evaluating the implementation in the SplitEase repository.

7. Challenges and Lessons Learned

The most valuable lessons from building an application like SplitEase come from moving beyond the visible interface and thinking about the rules that make the product trustworthy.

Challenge 1: Turning real-world behavior into clear requirements

People share expenses in different ways. A solution must translate these everyday situations into explicit rules rather than relying on assumptions.

Lesson: Understand the workflow first, then model the data and business logic around it.

Challenge 2: Keeping calculations consistent

A total may appear correct while individual allocations or rounded shares do not reconcile.

Lesson: Define calculation rules explicitly and test edge cases, including uneven divisions, zero values, and changing participants.

Challenge 3: Building for change

New features can introduce complexity if expense calculations, data access, and user-interface logic become tightly coupled.

Lesson: Clear responsibilities and modular design make future development safer and easier.

Challenge 4: Balancing functionality with simplicity

Adding features does not automatically improve a product. Each additional interaction can make the core workflow harder to use.

Lesson: Good product engineering is about solving the user's problem with the least unnecessary friction.

These are key engineering concerns for this project; the specific challenges encountered during implementation should be documented from the actual development history.

8. Testing and Reliability

For a financial application, testing should go beyond checking whether the screens render correctly.

A meaningful test strategy should cover:

  • Expense creation, editing, and deletion.
  • Equal and custom expense allocations, where supported.
  • Reconciliation between the expense total and allocated shares.
  • Balance updates after expense changes.
  • Empty, invalid, and boundary-value inputs.
  • Error states and failed operations.
  • Regression tests to ensure existing workflows continue to work after changes.

The most important objective is to ensure that users can trust the numbers the application presents.

9. Impact and Value

SplitEase addresses a practical problem that many people encounter in their everyday lives.

Its value lies in making shared expenses easier to organize and understand, reducing dependence on manual calculations, and creating a clearer process for tracking financial responsibilities.

From a development perspective, the project also provides an opportunity to work through the intersection of product thinking and engineering fundamentals: data modeling, business rules, validation, testing, and maintainable application design.

Rather than measuring success through unverified performance numbers, the project can be evaluated through its correctness, usability, reliability, and ability to handle realistic expense-sharing scenarios.

10. What Could Come Next?

Several enhancements could extend the product's usefulness, depending on the current implementation:

  • Flexible splitting: Support equal, percentage-based, and exact-amount allocations.
  • Settlement optimization: Calculate a smaller set of transfers that can settle outstanding balances.
  • Expense analytics: Provide summaries by category, person, group, and time period.
  • Recurring expenses: Simplify the management of rent, subscriptions, and other repeated costs.
  • Export and reporting: Allow users to download their expense history for recordkeeping.
  • Stronger automated testing: Expand coverage of calculation edge cases and complete expense workflows.
  • Improved accessibility: Ensure the experience remains understandable and usable across devices and different user needs.

These are potential directions rather than claims that the features already exist.

Conclusion

The bigger lesson is simple: good software does not just perform a task. It makes that task easier to understand, trust, and complete.

SplitEase-dashboard.png

Next project

order-inventory-management-system ›