99 lines
1.9 KiB
Markdown
99 lines
1.9 KiB
Markdown
|
|
# Design
|
|
|
|
- [Fold Website Mock](https://fold.money/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fmockup-web-light.a9e40530.jpg&w=3840&q=75)
|
|
|
|
# Models
|
|
|
|
```
|
|
- User
|
|
- id:uuid
|
|
- name:text
|
|
|
|
- Tag
|
|
- id:uuid
|
|
- title:text - Subscription
|
|
- sub_category:text - Netflix
|
|
- icon_type:text
|
|
|
|
- Bank
|
|
- id:uuid
|
|
- name:TextField
|
|
- logo:ImageField
|
|
|
|
- Account
|
|
- id:uuid
|
|
- user:ForeignKey:User
|
|
- bank:ForeignKey:Bank
|
|
- account_number:Text
|
|
- account_type:select - user, service (useful for distinguishing between user and swiggy/google etc)
|
|
- ifsc_code:Text
|
|
- swift_bic:Text
|
|
- holders_name:Text
|
|
- account_type:Option - Savings, Current
|
|
|
|
- Transaction
|
|
- id:uuid
|
|
- created_at:datetime
|
|
- amount:float
|
|
- tag:ForeignKey:Tag
|
|
- from_account:ForeignKey:Account
|
|
- to_account:ForeignKey:Account
|
|
|
|
- Recurring Payment
|
|
- id:uuid
|
|
- user:ForeignKey:User
|
|
- from_account:ForeignKey:Account
|
|
- to_account:ForeignKey:Account
|
|
- frequency:DurationField
|
|
- due_on:DateTimeField
|
|
- amount:float
|
|
|
|
- Recurring Payment Transaction
|
|
- id:uuid
|
|
- recurring_payments:ForeignKey:Recurring Payment
|
|
- transaction:ForeignKey:Transaction
|
|
```
|
|
|
|
# APIs
|
|
|
|
```
|
|
- /api/v1/balance
|
|
- used for
|
|
- total balance
|
|
- balance in bank
|
|
- /api/v1/download/statement
|
|
- used for
|
|
- downloading statement of a bank
|
|
- returns
|
|
- balance
|
|
- message: ⬆ 20% compared to previous month
|
|
- /api/v1/transactions
|
|
- used for
|
|
- all transactions
|
|
- transactions of a bank
|
|
- transactions to a source
|
|
- transactions on a tag
|
|
- /api/v1/recurring
|
|
- used for
|
|
- recently paid recurring transaction
|
|
- upcoming recurring transaction
|
|
```
|
|
|
|
# Things Ignored
|
|
|
|
```
|
|
- Backend
|
|
- Linking of Bank Account
|
|
- Multiple currency handling
|
|
- Not considering assets like FD, Stocks
|
|
- i18n
|
|
- multi tenancy
|
|
- data modelling - way too complex to build the entire app
|
|
- Web
|
|
- Not mobile responsive, intended to be a mockup
|
|
- click to copy
|
|
- hover states
|
|
- menus
|
|
```
|
|
|