Skip to content

Commit

Permalink
created technical readme and updated main readme
Browse files Browse the repository at this point in the history
  • Loading branch information
abhiraj-ku committed Sep 12, 2024
1 parent 9baab7f commit f7706fd
Show file tree
Hide file tree
Showing 2 changed files with 161 additions and 83 deletions.
103 changes: 20 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,99 +1,36 @@
# splitBhai - Smart Group Expense Management
# splitBhai - Group Expense Simplified

![MIT License](https://img.shields.io/badge/License-MIT-brightgreen)
splitBhai is a smart group expense management platform designed to make shared expenses, event planning, and settling debts within groups easy and fun. Whether it's for a trip, a dinner with friends, or managing household finances, splitBhai helps keep track of what everyone owes, gives financial insights, and even provides creative ways to settle debts without using money.

splitBhai is a group expense management app that simplifies shared expenses, offers smart financial insights, and includes features like event planning, gamified debt settlement, and non-monetary bartering options.
## Key Features

## Features
### Effortless Group Expense Management

### 1. User Onboarding & Authentication
splitBhai simplifies managing shared expenses by allowing users to create or join groups, add expenses, and split them among members. You can even organize expenses based on events like trips or social gatherings.

- **Sign Up / Sign In**: Secure user registration with optional OTP and TOTP verification.
- **Authentication**: JWT-based, with secure password storage using bcrypt.
- **Security**: Rate-limiting, HTTPS, secure cookies, CSRF protection.
### Smart Financial Insights

### 2. User Dashboard
Gain insight into spending patterns and group finances. splitBhai gives you visual analytics to help track who owes what and how much you've spent across different categories.

- **Post-Login Overview**: View groups, expenses, events, and savings goals.
- **Analytics**: Smart insights and debt analysis from MongoDB.
### Gamified Debt Settlement

### 3. Group Management
Debt settling doesn’t have to be boring! splitBhai turns it into a game where members can earn rewards for settling dues on time.

- **Create/Join Groups**: Invite members via links or codes.
- **Notifications**: Real-time updates using WebSockets or Firebase.
### Non-Monetary Bartering

### 4. Expense & Event Planning
Not all debts need to be settled with cash! splitBhai allows users to trade services or goods to clear debts within the group.

- **Expense Management**: Add, split, and categorize expenses within groups.
- **Event Planning**: Tag expenses to events and manage timelines.
### Event Planning Made Easy

### 5. Gamified Debt Settlement & Savings
Planning a trip or a special event? Tag expenses to specific events and keep track of everything in one place.

- **Debt Challenges**: Rewards for timely settlements.
- **Automated Savings**: Monthly contributions with CRON jobs.
### Notifications & Alerts

### 6. Smart Financial Insights & Geo-Tracking
Stay updated with reminders and alerts for upcoming payments, event activities, and group-related tasks.

- **Spending Analytics**: Track spending habits and trends.
- **Geo-Tagging**: Tag expenses by location for events and trips.
## How splitBhai Works

### 7. Non-Monetary Bartering

- **Debt Settlement**: Settle debts using goods or services instead of cash.

### 8. Notifications & Alerts

- **Reminders**: Alerts for payments, events, and group activities.
- **Real-Time Updates**: Handled via message queues and WebSockets.

### 9. Payment Integration (Optional)

- **In-App Payments**: Settle debts directly using payment gateways.

### 10. Settings & Account Management

- **Profile & Security**: Manage profile, 2FA, and app preferences.

## Tech Stack

- **Node.js/Express**: Backend framework.
- **MongoDB**: Database for user, group, and expense data.
- **Redis**: Caching, OTP storage, real-time data.
- **JWT**: Authentication.
- **Kafka**: Messaging queue for notifications.
- **Cron Jobs**: Automated tasks.
- **WebSockets/Firebase**: Real-time communication.

## Security & Best Practices

- **Environment Variables**: Secure handling of sensitive data.
- **Role-Based Access Control**: For group admins and members.
- **Input Validation & API Rate Limiting**: To mitigate attacks.

## Deployment & Scalability

- **AWS Deployment**: Autoscaling, load balancers.
- **Docker & Kubernetes**: Containerization and orchestration.
- **CI/CD Pipelines**: Continuous integration and deployment.

---

### Getting Started

1. **Clone the Repo**: `git clone https://github.com/yourusername/splitbhai.git`
2. **Install Dependencies**: `npm install`
3. **Set Up Environment Variables**: Create a `.env` file based on `.env.example`.
4. **Run the App**: `npm start`
5. **Access the Dashboard**: Go to `http://localhost:4040` in your browser.

---

### Contributing

Contributions are welcome! Please submit pull requests or open issues for any features or bug fixes.

---

### License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
1. **Create or Join Groups**: Create a new group and invite others, or join an existing one using a link or code.
2. **Add Expenses**: Track shared expenses and split them fairly among the group members.
3. **Settle Debts**: Either pay directly or use non-monetary options to clear up what you owe.
4. **Plan Events**: Group and tag expenses for specific events, making it easier to manage big plans like vacations or parties.
141 changes: 141 additions & 0 deletions docs/Project.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# splitBhai - Smart Group Expense Management

![MIT License](https://img.shields.io/badge/License-MIT-brightgreen)

splitBhai is a group expense management app that simplifies shared expenses, offers smart financial insights, and includes features like event planning, gamified debt settlement, and non-monetary bartering options.

## Features

### 1. User Onboarding & Authentication

- **Sign Up / Sign In**: Secure user registration with optional OTP and TOTP verification.
- **Authentication**: JWT-based, with secure password storage using bcrypt.
- **Security**: Rate-limiting, HTTPS, secure cookies, CSRF protection.

### 2. User Dashboard

- **Post-Login Overview**: View groups, expenses, events, and savings goals.
- **Analytics**: Smart insights and debt analysis from MongoDB.

### 3. Group Management

- **Create/Join Groups**: Invite members via links or codes.
- **Notifications**: Real-time updates using WebSockets or Firebase.

### 4. Expense & Event Planning

- **Expense Management**: Add, split, and categorize expenses within groups.
- **Event Planning**: Tag expenses to events and manage timelines.

### 5. Gamified Debt Settlement & Savings

- **Debt Challenges**: Rewards for timely settlements.
- **Automated Savings**: Monthly contributions with CRON jobs.

### 6. Smart Financial Insights & Geo-Tracking

- **Spending Analytics**: Track spending habits and trends.
- **Geo-Tagging**: Tag expenses by location for events and trips.

### 7. Non-Monetary Bartering

- **Debt Settlement**: Settle debts using goods or services instead of cash.

### 8. Notifications & Alerts

- **Reminders**: Alerts for payments, events, and group activities.
- **Real-Time Updates**: Handled via message queues and WebSockets.

### 9. Payment Integration (Optional)

- **In-App Payments**: Settle debts directly using payment gateways.

### 10. Settings & Account Management

- **Profile & Security**: Manage profile, 2FA, and app preferences.

## Tech Stack

- **Node.js/Express**: Backend framework.
- **MongoDB**: Database for user, group, and expense data.
- **Redis**: Caching, OTP storage, real-time data.
- **JWT**: Authentication.
- **Kafka**: Messaging queue for notifications.
- **Cron Jobs**: Automated tasks.
- **WebSockets/Firebase**: Real-time communication.

## Security & Best Practices

- **Environment Variables**: Secure handling of sensitive data.
- **Role-Based Access Control**: For group admins and members.
- **Input Validation & API Rate Limiting**: To mitigate attacks.

## Deployment & Scalability

- **AWS Deployment**: Autoscaling, load balancers.
- **Docker & Kubernetes**: Containerization and orchestration.
- **CI/CD Pipelines**: Continuous integration and deployment.

---

### Getting Started

## Getting Started for Developers

This guide will help you set up splitBhai for local development.

**Clone the Repository:**

1. Open your terminal.
2. Run the following command to clone the project to your local machine:

```
git clone https://github.com/yourusername/splitbhai.git
```

**Install Dependencies:**

1. Navigate into the project folder using the following command:

```
cd splitbhai
```

2. Install the required packages by running:

```
npm install
```

**Set Up Environment Variables:**

1. Create a file named `.env` in the root directory of the project.
2. Copy the contents of the `.env.example` file into the new `.env` file.
3. Update the necessary values in the `.env` file according to your configuration.

**Run the Application:**

1. Start the development server by running the following command in your terminal:

```
npm start
```

**Access the Application:**

1. Open your web browser.
2. Go to http://localhost:4040 to access the splitBhai application.

**Further Instructions**

For more detailed instructions on technical aspects and deployment procedures, refer to the README file inside the `docs` folder of the project.

---

### License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

0 comments on commit f7706fd

Please sign in to comment.