Skip to content

SplitIt: A finance companion powered by Angular and Node.js. Effortlessly manage bills, streamline expense splitting, and settle balances within groups. With enhanced features like expense search and pagination, it's the ultimate tool for shared financial ease.

License

Notifications You must be signed in to change notification settings

mihir09/SplitIt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SplitIt - Finance Management Application

SplitIt is a finance management application that simplifies the process of adding bills and splitting expenses among group members. Expense management including features for adding, updating, deleting expenses, and settling balances. With advanced functionalities for splitting Equally, Unequally, by Shares and by Percentages. SplitIt emerges as an ideal tool for efficient management of shared finances within a group.

Latest Feature: Invitation to join group

Overview

In this latest update, SplitIt introduces a new feature for sending invitations to existing users, providing them with the option to either accept or decline the invitation.

How it Works

  1. Invitation System: Users can send invitations to existing users to join their group.

  2. Accept or Decline Invitations: Receiving users have the option to either accept or decline the invitation.

Implementation in Action

  1. Invitation Sent

Invitation Sent

  1. Invitation Received

Invitation Received

Features

  • User Authentication: SplitIt provides user registration and login functionalities to ensure secure access to your finance management account.

  • Bill Management: Users can easily add, edit, and delete bills. Each bill can be associated with a description, amount, and the members involved in the expense.

  • Expense Splitting: SplitIt calculates how much each member owes or is owed based on the bills and the members involved. It simplifies the process of dividing expenses evenly with a participant-based splitting mechanism for spliting exclusively among involved members, guaranteeing a tailored and accurate financial management experience without impacting others. Introducing an advanced option for expense splitting – "Unequal Splitting." This feature allows users to customize the contribution of each participant individually, providing a more personalized and flexible approach to expense sharing. Users can specify the exact amount each member should contribute to the expense, enhancing the granularity and customization of financial arrangements within the group. Additionally, features like "Shares Split" and "Percentage Split" provide alternatives to determine contribution shares and percentages instead of exact amounts, further diversifying the options for users in managing shared expenses.

  • Balance Settlement: Users can settle balances among group members, making it easy to track who owes money and who is owed.

  • Validation: SplitIt incorporates validation mechanisms to ensure that the bills and expenses are correctly input and that calculations are accurate.

  • Expense Filter: Effortlessly locate expenses by utilizing our intuitive search bar and refine results further with a selectable date range, providing a seamless and tailored filtering experience.

  • Expense Pagination: Users can take control of thier expense list with our Pagination feature, allowing to view and manage expenses at thier own pace.

Technologies Used

  • Frontend (Angular): The frontend of SplitIt is built using Angular, a popular web application framework. Angular provides a robust structure for building dynamic and responsive user interfaces.

  • Backend (Node.js with Express): The backend of SplitIt is powered by Node.js, a server-side JavaScript runtime, and Express, a web application framework for Node.js. Together, they handle the server-side logic and API endpoints for the application.

  • MongoDB: SplitIt uses MongoDB, a NoSQL database, to store and manage data. MongoDB's flexibility and scalability make it a suitable choice for handling financial data.

  • JWT (JSON Web Tokens): JWT is used for user authentication and authorization in SplitIt. It provides secure and efficient access control to the application.

Setup Instructions

Frontend (Angular)

  • Navigate to the frontend directory:
    cd splitIt-app
  • Install dependencies:
    npm install
  • Start the Angular development server:
    ng serve

Open your browser and go to http://localhost:4200 to access the SplitIt frontend.

Backend (Node.js with Express)

  • Navigate to the backend directory:
    cd server
  • Install dependencies:
    npm install
  • Add .env file and paste following content in it:
    ACCESS_TOKEN_SECRET='123'
    REFRESH_TOKEN_SECRET='123'
  • Configure the MongoDB connection in server.js file in following code:
    mongoose.connect('mongodb://127.0.0.1:27017/SplitIt', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    });
  • Start server:
    node server.js
    

Test the server's API by making requests to http://localhost:3000 using Postman or any other suitable endpoint testing platform.

For checking out without signup user either of following details to login:

Email: testuser1@gmail.com Password: testuser1

or

Email: testuser2@gmail.com Password: testuser2

Deployment

Launched website at https://splititapp.netlify.app/

Shifted to Cyclic.sh for hosting Backend server and Netlify for Frontend.

Future Steps and Improvements

SplitIt is an ongoing project, and there are several potential improvements and future steps:

  • Unequal Split: Implement backend logic and frontend options to enable unequal distribution of expenses.

  • Participants-based Split: Implement backend logic and frontend options to select members involved in participants.

  • Shares and Percentages Split: Implement backend logic and frontend options to enable unequal distribution of expenses by mentioning shares or percentages of involved participants.

  • Notifications: Add email or in-app notifications to keep users informed about their financial activities.

  • Expense Categories: Allow users to categorize expenses for better tracking.

  • Expense Modifications: Allow users to modify expenses and resolve balances based on that.

  • Reports and Analytics: Create visual reports and analytics for a better understanding of spending patterns.

  • Logs: Introduce activity logs to monitor all changes within the group.

Please feel free to contribute to the project or provide feedback to help us make SplitIt even better!

Thank you for using SplitIt!

Snap Shots

  1. Register Page

Register

  1. Register Validations

Register Validations

  1. Register Validations Ok

Register Validations Ok

  1. Login Page

Login

  1. Login Validations

Login Validations

  1. Login Validations Ok

Login Validations Ok

  1. Home

Home

  1. Create Group

Create Group

  1. Group

Group

  1. Group

Group

  1. Member Validations

Member Validations

  1. Member Added

Member Added

  1. Expense

Expense

  1. Member Splits

Member Splits

  1. Group Balance

Group Balance

  1. Expense Multiple User

Expense Multiple User

  1. Group Balance Multiple User

Group Balance Multiple User

  1. Settle Balance

Settle Balance

  1. Settle Balance Confirmation

Settle Balance Confirmation

  1. Settled Balance

Settled Balance

  1. Member Settled Balance

Member Settled Balance

  1. Home Group List

Home Group List

About

SplitIt: A finance companion powered by Angular and Node.js. Effortlessly manage bills, streamline expense splitting, and settle balances within groups. With enhanced features like expense search and pagination, it's the ultimate tool for shared financial ease.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published