Skip to content

chingu-voyages/v51-tier3-team-33

Repository files navigation

Project Name: WeSplit

Project Description:

logo

WeSplit, an expense splitter app, is designed to simplify the process of dividing costs among a group of people. It provides a user friendly interface of providing the detailed information of the expenses, adding friends to the expenses, grouping the expenses for convenience of the user. Once the user inputs the expenses, and adds the friends linked to that particular expense, then the WeSplit app will calculate the individual’s share.

Desktop view:

mobile view

Mobile view:

mobile view

Key Features of the WeSplit App:

  • Expense Input: Allows users to input the expenses with details such as Description, amount, date and category.
  • Member Management: Enables users to add the list of participants involved in the shared expenses.
  • Expense Allocation: Provides various methods for allocating expenses, including equal sharing, percentage based sharing and custom allocation.
  • Payment TRacking: Tracks payments made by each participant, as per who owes whom and how much is the amount owed.

Target Audience:

  • Groups of Friends: For managing shared expenses during trips, restaurants, other outings.
  • Housemates: Participants sharing rent, utility bills, groceries, and other household costs.

Technology Stack:

  • Frontend: Nextjs to build dynamic user interfaces .
  • Backend: Nextjs to handle server-side logic and routing.
  • Database: MongoDB is used to store groups, users, expenses, etc.
  • Mobile compatibility: WeSplit app is designed to be compatible, responsive and accessible on both the desktop and mobile devices.

Tools used:

How to Run:

  1. To run WeSplit locally, In a code editor of your choice, open the terminal and enter git clone https://github.com/chingu-voyages/v51-tier3-team-33.git.
  2. Install all dependencies for the application by entering pnpm install. If you do not have pnpm installed, you can install it by entering npm install pnpm in the terminal.
  3. Create a .env.local file to add the required environment variables for the application to run successfully. Please ask the team for the keys before attempting to run the application, as it will not work without these.
  4. Run the application by entering pnpm run dev in the terminal.

Environment Variables

MONGODB_URI: Used to connect to WeSplit database.
AWS_S3_ACCESS_KEY_ID: Used to authenticate API requests to Amazon S3.
AWS_S3_SECRET_ACCESS_KEY: Used in conjunction with the access key to securely access AWS services.
AWS_S3_REGION: The region our S3 bucket is within AWS.
AWS_S3_BUCKET_NAME: The name of the bucket where the receipts are stored.
GOOGLE_CLIENT_ID: Used for authenticating users via Google.
GOOGLE_CLIENT_SECRET: Used in conjunction with the google client id to authenticate google users.
NEXTAUTH_SECRET: A secret key used by NextAuth.js to encrypt session tokens and manage authentication.
NEXTAUTH_URL: The URL where the application is hosted during development or production.
BASE_URL: The base URL of the application (ex: localhost:3000 or deployed link). Used for dynamically establishing API calls.
RESEND_API_KEY: API key for Resend, used to send email invites within the application.
NEXT_PUBLIC_SHAREABLE_LINK: The public URL that is shared with users, such as for login links and group invites. Should be the same as the BASE_URL.

Key Documents:

Throughout the project, we have several key documents to assist with planning, communication, and organization. These documents can be found in the /docs directory.

Important Documents

Our Team