Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
4bf7ed5
Delete docs/dollar_bot/** directory
shonilbhide Oct 12, 2023
1b6c419
Delete docs/dollar_bot/code directory
shonilbhide Oct 12, 2023
937f555
Issue3_bug : Code for handling null data for pdf
Oct 13, 2023
18bd669
Merge pull request #5 from shonilbhide/Issue_3_Bug
rutuja-39 Oct 13, 2023
adbb669
changes for iss#1 to add feature foe new category
shonilbhide Oct 13, 2023
59453a5
Merge branch 'dev' of https://github.com/shonilbhide/dollar_bot into …
shonilbhide Oct 13, 2023
cccc3db
Merge pull request #10 from shonilbhide/issue_2
shonilbhide Oct 13, 2023
bf912a6
Issue_6_Enhancement: Code changes done to show category list after ad…
sakshibasapure Oct 13, 2023
c1ec38f
Updated user.properties
sakshibasapure Oct 13, 2023
e696f1f
Update history.md
agmalpur Oct 13, 2023
2d572b8
Added Tabular format to display history
agmalpur Oct 13, 2023
e61d08e
Merge pull request #14 from shonilbhide/Issue_8_Enhancement
shonilbhide Oct 13, 2023
c60c66f
Merge pull request #12 from shonilbhide/Issue_6_Enhancement
sakshibasapure Oct 14, 2023
0cdcb8a
Issue_9_Enhancement: Registration of new users
agmalpur Oct 15, 2023
c68edec
Merge pull request #17 from shonilbhide/Issue_9_Enhancement
agmalpur Oct 15, 2023
d08df8c
Issue_16_Enhancement: Added delete_expense feature
sakshibasapure Oct 15, 2023
23834c8
Merge remote-tracking branch 'origin/dev' into Issue_16_Enhancement
sakshibasapure Oct 15, 2023
dfdc0bc
Merge pull request #20 from shonilbhide/Issue_16_Enhancement
sakshibasapure Oct 15, 2023
1743b70
Merge remote-tracking branch 'origin/main' into dev
sakshibasapure Oct 15, 2023
23cf646
Adding Fn to add expeses as per issue18
shonilbhide Oct 15, 2023
ff45348
Refactoring return st bugs after merging
shonilbhide Oct 15, 2023
0fbd623
Merge pull request #22 from shonilbhide/issue_#18
shonilbhide Oct 15, 2023
1a81087
Issue15_Enhancement-modified generated pdf format
Oct 15, 2023
f825ff3
Merge remote-tracking branch 'origin/dev' into Issue_15_Enhancement
Oct 15, 2023
46e2e48
Merge pull request #21 from shonilbhide/Issue_15_Enhancement
rutuja-39 Oct 15, 2023
613ecf1
fixing pdf exception bug
shonilbhide Oct 15, 2023
aa48d09
Dev: Font family error resolved
agmalpur Oct 15, 2023
1234cc4
Adding lowercase options for selecting users
shonilbhide Oct 15, 2023
098fa5c
Merge pull request #25 from shonilbhide/issue_#18
sakshibasapure Oct 15, 2023
124bb4d
Issue_19_Enhancement: Delete user functionality
agmalpur Oct 16, 2023
fe4ad5d
Merge branch 'dev' of https://github.com/shonilbhide/dollar_bot into …
agmalpur Oct 16, 2023
a86cbe7
Merge pull request #26 from shonilbhide/Issue_19_Enhancement
agmalpur Oct 16, 2023
6dc1440
Merge pull request #27 from shonilbhide/dev
sakshibasapure Oct 16, 2023
668fe50
Issue_23 - code added for providing two pdfs
Oct 16, 2023
66ce09a
Merge remote-tracking branch 'origin/dev' into Issue_23_Enhancement
Oct 16, 2023
2ab88e8
Merge pull request #32 from shonilbhide/Issue_23_Enhancement
rutuja-39 Oct 16, 2023
035e2ec
Modified the budget functionality
agmalpur Oct 17, 2023
1c05f0b
Merge pull request #34 from shonilbhide/Issue_31_Bug
agmalpur Oct 17, 2023
4d26cf1
Issue33_Enhancement-Owing pdf generation code
Oct 17, 2023
56be76c
Merge pull request #35 from shonilbhide/Issue_33_Enhancement
rutuja-39 Oct 17, 2023
7900e94
iss#30 fixed display and budget functionality
shonilbhide Oct 17, 2023
5354a42
Merge branch 'dev' of https://github.com/shonilbhide/dollar_bot into …
shonilbhide Oct 17, 2023
7fc2601
Added functionality to save csv file
shonilbhide Oct 17, 2023
a730bd3
Merge pull request #36 from shonilbhide/issue_#30
sakshibasapure Oct 17, 2023
81b0816
Merge pull request #38 from shonilbhide/issue_#37
sakshibasapure Oct 17, 2023
26f50b6
Issue_24_Enhancement: Added Send Mail feature
sakshibasapure Oct 17, 2023
ca22ca0
Merge remote-tracking branch 'origin/dev' into Issue_24_Enhancement
sakshibasapure Oct 17, 2023
2de2e88
Merge pull request #39 from shonilbhide/Issue_24_Enhancement
shonilbhide Oct 17, 2023
2c3f71e
Merge pull request #40 from shonilbhide/dev
sakshibasapure Oct 17, 2023
4fd2b98
fixing bugs
agmalpur Oct 17, 2023
ab42789
Issue_41- Added libraries to requirements.txt
Oct 17, 2023
735724f
Merge pull request #42 from shonilbhide/Issue_41_Documentation
shonilbhide Oct 17, 2023
e960d15
Merge pull request #44 from shonilbhide/Issue_43_Documentation
rutuja-39 Oct 18, 2023
1204928
Issue_43-Modified the DOI
Oct 18, 2023
6ff79b1
Issue_43 - DOI hyperlink modified
Oct 18, 2023
820a819
Merge pull request #45 from shonilbhide/Issue_43_Documentation
rutuja-39 Oct 18, 2023
79fb345
Changing contributing.md and readme.md for roadmap
shonilbhide Oct 18, 2023
7d3f1ca
adding workflow.yml file
shonilbhide Oct 18, 2023
27870d4
Update README.md
shonilbhide Oct 18, 2023
fb2efaf
Update README.md
shonilbhide Oct 18, 2023
764ffd5
Merge pull request #46 from shonilbhide/#issue_documentation
shonilbhide Oct 18, 2023
a5e7f72
Merge pull request #48 from shonilbhide/Issue_47_Documentation
shonilbhide Oct 18, 2023
b4eed65
Merge pull request #49 from shonilbhide/Issue_47_Documentation
shonilbhide Oct 18, 2023
84aa95e
Issue-47- modified the project name
Oct 18, 2023
a2248cf
Issue47-modified why should you use DollarSplitBot
Oct 18, 2023
97ab14a
Issue-47-Docs why
Oct 18, 2023
f0026ad
Merge pull request #50 from shonilbhide/Issue_47_Documentation
rutuja-39 Oct 18, 2023
1a765e6
Issue_54_Documentation: SMTP
sakshibasapure Oct 18, 2023
1cfe8fa
Issue_54_Documentation: App Password Details
sakshibasapure Oct 18, 2023
0a4253e
Merge remote-tracking branch 'origin/main' into dev
sakshibasapure Oct 18, 2023
b185094
Merge remote-tracking branch 'origin/dev' into Issue_54_Documentation
sakshibasapure Oct 18, 2023
a380822
Merge pull request #56 from shonilbhide/Issue_54_Documentation
sakshibasapure Oct 18, 2023
f0fe2c1
App Password documentation changes
sakshibasapure Oct 18, 2023
908b433
Issue_52_Documentation: Added use cases
sakshibasapure Oct 18, 2023
8792b10
Merge pull request #58 from shonilbhide/Issue_52_Documentation
sakshibasapure Oct 18, 2023
187d87a
Added troubleshooting.md file
sakshibasapure Oct 19, 2023
3c0caaf
Merge pull request #59 from shonilbhide/Issue_57_Documentation
sakshibasapure Oct 19, 2023
790a08d
Added style chekker
agmalpur Oct 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
37 changes: 37 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[MASTER]

# Specify the maximum line length (79 is PEP 8's recommendation, but you can change it)
max-line-length = 79

[MESSAGES CONTROL]

# Disable some specific warnings or errors
disable = C0114, C0115, C0116

[BASIC]

# Naming style (snake_case)
method-rgx=_*[a-z_][a-z0-9_]*$
function-rgx=_*[a-z_][a-z0-9_]*$
attr-rgx=_*[a-z_][a-z0-9_]*$

[FORMAT]

# Ensure consistent whitespace in function call
remove-trailing-whitespace = yes

# Add or remove whitespace where necessary
single-space-after-comma = yes
single-space-after-keywords = yes

[TYPECHECK]

# Enable type hints and type checking (Python 3.5+)
init-import = yes
ignore-mixin-members = yes

[IMPORTS]

# Allow wildcard imports in specific cases (e.g., __init__.py)
allow-wildcard-with-all = yes

10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Contributing to MyDollarBot
# Contributing to DollarSplitBot

Follow the set of guidelines below to contribute to MyDollarBot!
Follow the set of guidelines below to contribute to DollarSplitBot!

## Code of Conduct

This project and everyone participating in it is governed by the [Code of Conduct](https://github.com/usmanwardag/dollar_bot/blob/main/CODE_OF_CONDUCT.md). By participating, you are expected to upload this code. Please report unacceptable behavior to sbose2@ncsu.edu.
This project and everyone participating in it is governed by the [Code of Conduct](https://github.com/shonilbhide/dollar_bot/blob/main/CODE_OF_CONDUCT.md). By participating, you are expected to upload this code. Please report unacceptable behavior to csc510group32@gmail.com.

Prerequistes required before starting this project:

Expand Down Expand Up @@ -41,7 +41,7 @@ A cursory search is necessary to check if the reported bug is already mentioned


## To Submit A Good Bug Report
[GitHub issues](https://github.com/usmanwardag/dollar_bot/issues) You can track the bugs from this. For the repository that has bug, create an issue and fill out [the template](https://github.com/atom/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md) to give details of the bug.
[GitHub issues](https://github.com/shonilbhide/dollar_bot/issues) You can track the bugs from this. For the repository that has bug, create an issue and fill out [the template](https://github.com/atom/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md) to give details of the bug.


* To identify the problem, give the issue a clear and informative term. <br>
Expand Down Expand Up @@ -70,7 +70,7 @@ Check out this [debugging guide](https://flight-manual.atom.io/hacking-atom/sect

## To Submit A Good Enhancement Suggestion

[GitHub issues](https://github.com/usmanwardag/dollar_bot/issues) You can track the bugs from this. For the repository that has bug, create an issue and fill out [the template](https://github.com/atom/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md) to give details of the bug.
[GitHub issues](https://github.com/shonilbhide/dollar_bot/issues) You can track the bugs from this. For the repository that has bug, create an issue and fill out [the template](https://github.com/atom/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md) to give details of the bug.

* To identify the problem, give the issue a clear and informative term. <br>
* Describe in as much detail as possible to duplicate the problem. Explain the problem and explain about the exact command sused in the terminal which caus ethe bug to occur.
Expand Down
93 changes: 72 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# 💰 MyDollar Bot 💰
# 💰 DollarSplitBot 💰

<!-- TABLE OF CONTENTS -->
<details open="open">
<summary>Table of Contents</summary>
<ol>
<li><a href="#why-should-you-use-dollar-bot">Why should you use Dollar Bot?</a></li>
<li><a href="#why-should-you-use-dollarsplitbot">Why should you use DollarSplitBot?</a></li>
<li><a href="#check-out-the-video">Check out the video!</a></li>
<li><a href="#what-is-new-in-this-version">What is new in this version?</a></li>
<li><a href="#installation">Installation</a></li>
Expand Down Expand Up @@ -32,7 +32,7 @@
[![Platform](https://img.shields.io/badge/Platform-Telegram-blue)](https://desktop.telegram.org/)
![GitHub](https://img.shields.io/badge/Language-Python-blue.svg)
[![GitHub contributors](https://img.shields.io/github/contributors/sak007/MyDollarBot-BOTGo)](https://github.com/sak007/MyDollarBot-BOTGo/graphs/contributors)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5759217.svg)](https://doi.org/10.5281/zenodo.5759217)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10015948.svg)](https://zenodo.org/records/10015948)
[![Build Status](https://app.travis-ci.com/usmanwardag/dollar_bot.svg?branch=main)](https://app.travis-ci.com/usmanwardag/dollar_bot)
[![codecov](https://codecov.io/gh/usmanwardag/dollar_bot/branch/main/graph/badge.svg?token=PYAWX95R67)](https://codecov.io/gh/usmanwardag/dollar_bot)

Expand All @@ -42,16 +42,25 @@

<hr>

## Why should you use MyDollar Bot?
## Why should you use DollarSplitBot?

Dollar Bot is an easy-to-use Telegram Bot that assists you in recording your daily expenses on a local system without any hassle.
With simple commands, this bot allows you to:
- Add/Record new spendings
- Display your spendings through bar graph
- Show the sum of your expenditure for the current day/month
- Display your spending history
- Clear/Erase all your records
- Edit/Change any spending details if you wish to
"Discover a whole new level of financial clarity and fairness – where you'll never have to wonder 'Who owes me, and who do I owe?' again. Say goodbye to financial puzzles, and embrace our extended expense management system to reclaim your peace of mind!"

Introducing DollarSplitBot, your trusty companion on Telegram, here to turn the mundane task of tracking your daily expenses into a breeze. This ingenious bot simplifies the process of keeping tabs on your spending, even when you're offline. But that's not all; it's also your go-to solution for managing group expenses and ensuring everyone's financial equilibrium.

With just a few swift commands, DollarSplitBot empowers you to:

1. **Welcome New Faces:** Add your friends to share expenses with ease.
2. **Log Your Transactions:** Document and store your expenditures effortlessly.
3. **Equitable Divisions:** Showcase your spending history, unraveling who owes what to whom.
4. **Money Matters:** Keep tabs on your daily and monthly expenditure totals.
5. **Your Financial Story:** Access your spending history at any time.
6. **A Clean Slate:** Erase all records when it's time to start anew.
7. **Tailored Details:** Edit any spending particulars to your liking.
8. **Paper Trail:** Generate sleek PDF expenditure reports for a comprehensive overview.
9. **Friendly Nudges:** Send friendly reminders via email to ensure financial settlements.

DollarSplitBot: Where simplicity meets financial harmony at your fingertips.

## Check out the video!

Expand Down Expand Up @@ -105,6 +114,26 @@ A successful run will generate a message on your terminal that says "TeleBot: St

To run the script automatically at startup / reboot, simply add the `.run_forever.sh` script to your `.bashrc` file, which executes whenever you reboot your system.

## Configuring Email Credentials for SMTP: Sending Emails from Your Account

**SMTP (Simple Mail Transfer Protocol)** is a standard protocol for sending emails. It is widely used for sending email messages from one server to another. In the code, we are using SMTP to send emails via a Gmail account. Here's how the SMTP configuration and usage work:

1. **SMTP Server**: The `smtp_server` variable is set to 'smtp.gmail.com,' which is the SMTP server for Gmail. This server is responsible for sending your email messages.

2. **SMTP Port**: The `smtp_port` variable is set to 587. This is the port for TLS (Transport Layer Security) encryption. Gmail uses this port for secure email communication.

3. **SMTP Username**: The smtp_username variable should be set to your own Gmail email address from which you want to send the emails. Make sure to replace `your-email@gmail.com` with your actual Gmail email address in the code. This ensures that the emails will be sent from your specific Gmail account.

4. **SMTP Password**: The `smtp_password` variable is set, you need to generate an "App Password". An App Password is a 16-character code that allows you to access your Gmail account without revealing your real password. To generate an App Password, follow these steps:

- Go to your Google Account settings (https://myaccount.google.com/).
- In the "Security" section, under "Signing in to Google", select "App Passwords".
- Select "Mail" and "Other (Custom name)" from the dropdown menus.
- Click "Generate".
- Google will provide you with a 16-character App Password. Use this as your `smtp_password` in your code.

By customizing these settings, you can send emails from any email account using SMTP. Just ensure you are adhering to the security guidelines provided by your email provider.

## Testing

We use pytest to perform testing on all unit tests together. The command needs to be run from the home directory of the project. The command is:
Expand All @@ -123,34 +152,56 @@ coverage run -m pytest test/
coverage report
```

## Use Cases

Common use cases for DollarSplitBot summarized in three points:

1. **Personal Expense Tracking:**
- Easily log and monitor your individual daily and monthly expenses, including groceries, dining out, transportation, and entertainment.
- Access your spending history and totals at any time, providing valuable insights into your financial habits.

2. **Group Expense Management:**
- Efficiently manage group expenses with friends or family members. Add participants to track shared costs and responsibilities.
- DollarSplitBot calculates equitable divisions, simplifying the process of determining who owes what to whom in group expenses.

3. **Expense Reporting and Communication:**
- Generate detailed PDF expenditure reports for a comprehensive overview of your financial activity.
- Utilize the bot's email reminders to facilitate financial settlements and maintain harmony in shared expenses, ensuring everyone is accountable.

Certainly, you can watch this video [![Demo Video](https://i9.ytimg.com/vi/aCjcT1CHAzU/mq3.jpg?sqp=COSotI0G&rs=AOn4CLD34jFIlq6GRdmTnK6p3F8O2F-Yig)](https://youtu.be/aCjcT1CHAzU) for a step-by-step guide on how to use DollarSplitBot.

## License

This project is licensed under the terms of the MIT license. Please check [License](https://github.com/usmanwardag/dollar_bot/blob/main/LICENSE) for more details.
This project is licensed under the terms of the MIT license. Please check [License](https://github.com/shonilbhide/dollar_bot/blob/main/LICENSE) for more details.


## Code Documentation

Checkout the [docs](https://github.com/sak007/MyDollarBot-BOTGo/tree/main/docs)
Checkout the [docs](https://github.com/shonilbhide/dollar_bot/tree/main/docs)

## How to Contribute

We would be happy to receive contributions! If you'd like to, please go through our [CONTRIBUTING.md](https://github.com/usmanwardag/dollar_bot/blob/main/CONTRIBUTING.md)
We would be happy to receive contributions! If you'd like to, please go through our [CONTRIBUTING.md](https://github.com/shonilbhide/dollar_bot/blob/main/CONTRIBUTING.md)

For any feedback, issues, or bug reports, please create an issue [here](https://github.com/usmanwardag/dollar_bot/issues/new).
For any feedback, issues, or bug reports, please create an issue [here](https://github.com/shonilbhide/dollar_bot/issues/new).

## Future RoadMap

- More content can be added for the way notifications can be displayed on the user front. This can be done to make the UI more interactive.
- Recurring expenses feature can be added for faster addition of expenses instead of following the whole process of everytime.
- This application can be integrated with a group chat to track expenses of a group.
- A better model can be implemented to forecast the budgets and expenses for future.
- Make our bot support multiple languages, and not just english so that it might be helpful in the other regions of the world.
- Integrate the bot with financial services, like bank APIs, for real-time expense tracking and account balance updates.
- Implement a reminder system to notify users of recurring expenses, upcoming bills, or when they need to settle debts.

## Contributors
<table>
<tr>
<td align="center"><a href="https://github.com/usmanwardag"><img src="https://avatars.githubusercontent.com/u/8848723?v=4" width="75px;" alt=""/><br /><sub><b>Usman Khan</b></sub></a></td>
<td align="center"><a href="https://github.com/aakriti0fnu"><img src="https://avatars.githubusercontent.com/u/65619749?s=400&u=e7d56965d4414a95f969dbf53ed92b3e31fab610&v=4" width="75px;" alt=""/><br /><sub><b>Aakriti Aakriti</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/sbosenc"><img src="https://avatars.githubusercontent.com/u/89551210?v=4" width="75px;" alt=""/><br /><sub><b>Suneha Bose</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/muskan7828"><img src="https://avatars.githubusercontent.com/u/45363276?v=4" width="75px;" alt=""/><br /><sub><b>Muskan Gupta</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/kriti0207"><img src="https://avatars.githubusercontent.com/u/89510237?v=4" width="75px;" alt=""/><br /><sub><b>Kriti Khullar</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/shonilbhide"><img src="https://avatars.githubusercontent.com/u/51792152?s=96&v=4" width="75px;" alt=""/><br /><sub><b>Shonil bhide</b></sub></a></td>
<td align="center"><a href="https://github.com/sakshibasapure"><img src="https://avatars.githubusercontent.com/u/40641044?v=4" width="75px;" alt=""/><br /><sub><b>Sakshi Basapure</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/rutuja-39"><img src="https://avatars.githubusercontent.com/u/59025269?v=4" width="75px;" alt=""/><br /><sub><b>Rutuja Rashinkar</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/agmalpur"><img src="https://avatars.githubusercontent.com/u/144184451?v=4" width="75px;" alt=""/><br /><sub><b>Akshada Malpure</b></sub></a><br /></td>
</tr>
</table>

Expand Down
23 changes: 23 additions & 0 deletions TROUBLESHOOTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Troubleshooting Guide

## How to Access Your Gmail Account with an 'App Password'

If you're having trouble accessing your Gmail account, you can use Google's 'App Password' solution to resolve the issue. Follow these steps to generate and use an app password:

1. **Enable Two-Step Verification:**
- Go to your Google Account settings by visiting [Google Account](https://myaccount.google.com/).
- In the "Security" section, locate and select "Two-step verification."
- Follow the on-screen instructions to set up two-step verification for your account. This adds an extra layer of security.

2. **Create an App Password:**
- After enabling two-step verification, navigate to your Google Account's security settings.
- In the "Signing in to Google" section, choose "App Passwords."
- Select "Mail" and "Other (Custom name)" from the respective dropdown menus.
- Click the "Generate" button.
- Google will provide you with a 16-character App Password. This password is a one-time use code that allows you to access your Gmail account without revealing your actual account password.

3. **Use the App Password:**
- When configuring email settings or applications, use the same settings as you would for sending emails from your Gmail account.
- However, replace your regular password with the generated 16-character app password.
- This app password should be entered wherever you are prompted for your email password.

Loading