-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
145 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,7 +10,6 @@ DoughFin is a user-friendly financial management app designed to help individual | |
**Expense Categorization:** Automatically categorize your expenses for a clearer understanding of your spending habits.<br> | ||
**Budget Creation:** Set up personalized budgets to control your spending and achieve your financial goals.<br> | ||
**Insightful Reports:** Get detailed reports and insights into your financial health, helping you make better financial decisions.<br> | ||
**Secure Account Linking:** Safely link your bank account(s) for real-time transaction updates.<br> | ||
**Light & Dark Mode** Use the toggle on the left hand navbar to toggle between light and dark mode!<br> | ||
**CSV Export:** Export transaction information into CSV for your own use! | ||
|
||
|
@@ -58,7 +57,152 @@ npm cypress open | |
[graphql](https://www.npmjs.com/package/graphql) | ||
[cypress](https://www.npmjs.com/package/cypress) | ||
|
||
### Further Details | ||
#### CashFlow Widget | ||
> Users can track their expenses and incomes over the course of the past year. CashFlows are the total incomes and expenses for each month, displayed in a Bar Chart. They are handled by a GraphQL query to the Back-End application in the following format: | ||
``` | ||
query GetUserCashflow($userId: ID!) { | ||
cashFlow(userId: $userId) { | ||
username | ||
years { | ||
year | ||
months { | ||
month | ||
income | ||
expenses | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
#### Transactions Widget | ||
> Users can track all expenses and incomes within this widget. Transactions include Name (company name), Category (either income or budget category), Date, Amount (in USD), and Status (Credited for incomes, Debited for expenses). Users can also search within any of these parameters using the search function. | ||
``` | ||
query getTransactions($email: String!) { | ||
user(email: $email) { | ||
id | ||
transactions { | ||
id | ||
amount | ||
date | ||
category | ||
vendor | ||
status | ||
} | ||
} | ||
} | ||
``` | ||
|
||
#### Total Income and Expenses Widget | ||
> Users can view their total incomes and expenses over all time within this widget, which uses the following GraphQL queries for income and expense, respectively: | ||
``` | ||
query GetIncomes($email: String!) { | ||
user(email: $email) { | ||
currentIncomes { | ||
amount | ||
pctChange | ||
} | ||
} | ||
} | ||
``` | ||
|
||
``` | ||
query GetExpenses($email: String!) { | ||
user(email: $email) { | ||
currentExpenses { | ||
amount | ||
pctChange | ||
} | ||
} | ||
} | ||
``` | ||
#### Income and Expense Creation | ||
> Users can create incomes and expenses by clicking on the '+' icon next to each total income and expense. Incomes include the following parameters: Source, Date, and Amount, while Expenses include Vendor, Category, Date and Amount. Amount will only allow numeric inputs. The GraphQL mutations are as follows: | ||
``` | ||
mutation CreateIncome($userId: ID!, $source: String!, $amount: Float!, $date: String!) { | ||
createIncome(input: { | ||
userId: $userId, | ||
source: $source, | ||
amount: $amount, | ||
date: $date | ||
}) { | ||
userId | ||
income { | ||
source | ||
amount | ||
date | ||
} | ||
} | ||
} | ||
``` | ||
|
||
``` | ||
mutation CreateExpense($userId: ID!, $vendor: String!, $category: String!, $amount: Float!, $date: String!) { | ||
createExpense(input: { | ||
userId: $userId, | ||
vendor: $vendor, | ||
category: $category, | ||
amount: $amount, | ||
date: $date | ||
}) { | ||
userId | ||
expense { | ||
id | ||
vendor | ||
category | ||
amount | ||
date | ||
} | ||
} | ||
} | ||
``` | ||
|
||
|
||
#### Budget Widget | ||
> Users can set custom budgets, which will track the remaining amount left to spend within that budget, which is updated when an expense is made in a particular category. Budget categories are provided using the first GraphQL query, while budget data per budget is handled with the second query. | ||
``` | ||
query GetBudgetCategories($email: String!) { | ||
user(email: $email) { | ||
budgetCategories | ||
} | ||
} | ||
``` | ||
|
||
``` | ||
query GetBudgetsByParams($month: String!, $category: String!, $email: String!) { | ||
user(email: $email) { | ||
id | ||
budgets(month: $month, category: $category) { | ||
id | ||
month | ||
category | ||
amount | ||
pctRemaining | ||
amountRemaining | ||
} | ||
expenses(category: $category, month: $month) { | ||
id | ||
amount | ||
date | ||
category | ||
} | ||
} | ||
} | ||
``` | ||
|
||
## Acknowledgments | ||
Thank you to all the contributors who have helped shape DoughFin. | ||
Special thanks to our users for trusting us with their financial management needs. | ||
|
||
Shawn Carpenter: [Email]([email protected]) [LinkedIn](https://www.linkedin.com/in/shawndcarpenter/) | ||
|
||
Joseph Lee: [Email]([email protected]) | ||
|
||
Mary Bruff: [Email]([email protected]) | ||
|
||
Taylor Pubins: [Email]([email protected]) | ||
|
||
Anthea Yur: [Email]([email protected]) | ||
|
||
Ben Rosner: [Email]([email protected]) |