Keeping track of group expenditures can be tough and awkward.
This is an app that helps to track spending and divide and settle the bills.
Product Owner: Bas Suckling
Dev Team: Tosca Wilson, Alice Alsford, Robert Cummins
The tech that this project will use is the following:
As a user:
- I want to register for the App under my name, and email and signin
- I want to be able to create a group
- I want to be able to add people to a group and remove if I am admin of the group
- I want to be able to see what groups I am part of
- I want to be able to add a transaction to the group with the amount and other members involved
- I want to see a list of transactions for my groups
- I want to be able to see the balance owed for everyone
- I want to be able to see the past groups
- I want to send an email to people in a group when the debt has been settled
name | purpose |
---|---|
Login | View for user to enter their login credentials |
Register | View for user to sign up for the App |
LandingPage | Filler content |
DashboardNav | Navbar on the side |
CreateGroup | View to create a new group |
CreateTransaction | View to add a new transaction to a group |
AllTransactions | View to display all transactions for current group |
SettledGroups | View to display all past groups and transactions |
SettleTransactions | View to settle outstanding transactions |
name | purpose |
---|---|
auth | Store information regarding user logins, auth status and auth errors |
transactions | store the list of transactions for each group |
groups | store the list of groups the user is apart of |
users | store a list of users who can be part of the group |
type | data | purpose |
---|---|---|
RECEIVE_TRANSACTIONS | transactions | retreive meetings from the db and store in redux |
ADD_TRANSACTION | transactions | Add a single transaction |
DELETE_TRANSACTION | transactions | Delete a transaction |
UPDATE_TRANSACTION | transactions | Update a transaction |
type | data | purpose |
---|---|---|
RECEIVE_USERS | users | retreive the users from the server |
GET_USER | users | retreive a specific user from the server |
ADD_USER | users | add a user to the group |
DELETE_USER | users | delete a user |
UPDATE_USER | users | update a user |
type | data | purpose |
---|---|---|
ADD_GROUP | groups | add a new group |
GET_GROUPS | groups | get a list of groups |
DELETE_GROUP | groups | delete a single group |
EDIT_GROUP | groups | edit a single group |
ADD_MEMBER | groups | add member to group |
DELETE_MEMBER | groups | delete member from group |
UPDATE_MEMBER | groups | update member from group |
Method | Endpoint | Protected | Usage | Response |
---|---|---|---|---|
Post | /api/auth/login | Yes | Log In a User | The Users JWT Token |
Post | /api/auth/register | Yes | Register a User | The Users JWT Token |
Get | /api/transactions | Yes | Get a transaction list for chosen group | An Array of transactions |
Post | /api/transactions | Yes | Add a new transaction for chosen group | id of new transaction |
Put | /api/transactions | Yes | Update a transaction for chosen group | id of updated transaction |
Delete | /api/transactions | Yes | Delete a transaction for chosen group | id of deleted transaction |
Get | /api/groups | Yes | Get a group list | An Array of groups |
Post | /api/groups | Yes | Add a new group | id of new group |
Put | /api/groups | Yes | Update a group | id of updated group |
Delete | /api/groups | Yes | Delete a group | id of deleted group |
Get | /api/users | Yes | Get a user list | An Array of users |
Post | /api/users | Yes | Add a new user | id of new user |
Put | /api/users | Yes | Update a user | id of updated user |
Delete | /api/users | Yes | Delete a user | id of deleted user |
| Get | /api/users | Yes | Get a Users Meeting Histroy | An Array of Meetings | | Get | /api/groups | Yes | Get a Users Meeting Histroy | An Array of Meetings |
There should be three tables for MVP
Column Name | Data Type |
---|---|
user_id | Integer |
String | |
first_name | String |
last_name | String |
hash | text |
Column Name | Data Type |
---|---|
group_id | Integer |
group_name | String |
group_description | String |
user_id | Integer |
settled | Boolean |
Column Name | Data Type |
---|---|
groupMember_id | Integer |
member_name | String |
group_id | Integer |
Column Name | Data Type |
---|---|
transaction_id | Integer |
group_id | Integer |
groupMember_id | Integer |
transaction_total | Integer |
transaction_name | String |
date | BigInt |
nb: cost recorded in cents
Column Name | Data Type |
---|---|
transactionDetails_id | Integer |
transaction_id | Integer |
groupMember_id | Integer |
total_contribution | Integer |
Many Users attend Many Meetings
Column Name | Data Type |
---|---|
user_id | Integer |
group_id | Integer |