Reference Documents
Product Scope: Finances V2.0
Figma for Finances 2.0: https://www.figma.com/file/96NZ02oYe3jpet1roUp0s0/Mockups?type=design&node-id=1712%3A37203&mode=design&t=TZv4RspCOzxhLiVQ-1
Previous sprint technical documents:
Sprint 68: Manage custom expense types tasks
Scope
This sprint will primarily be concerned with wrapping up custom revenue and custom expenses
We also want to prepare for these new requirements + user stories which remain in Finances 2.0 and will the the focus of our next sprint.
Generate income statement: “As a farmer I want to be able to generate an income statement so that I can understand if my farm has been profitable over a set timeframe”. Should include revenues, expenses, and gross profit (Priority: Highest)
Finances dashboard: “As a farmer I want to be able to understand my financial position at a glance when landing on the finances page so that I can quickly understand the financial footing of my operation” (Priority Medium)
Technical Notes
Generate income statement
I suggest we use the package ExcelJS (https://github.com/exceljs/exceljs) to generate our xlxs document. It is a popular packages with close to 1 million weekly downloads (npm), has a readable API and the generated spreadsheet is fully styleable
The most popular alternative, SheetJS, has recently moved off of GitHub,
It is a large package, 1.1MB minified and 259.1kB minified and gzipped according to Bundlephobia
As a point of comparison, a single sheet xlsx file as we generate in certification export is 8-9kB. This suggests we should be creating the xlsx file on the server and sending via API to the frontend. However there are some other considerations we can keep in mind.
We don’t yet know the specifications of the file we will be generating (e.g. I believe they will be more highly styled than the certification documents) and they may end up larger
The client can cache the library code, making the difference in data sent to the client less noticeable as more documents are exported
This might be worth testing on different devices in terms of responsiveness
We don’t yet have the exact specification for this document (data content or visuals), but we can set up the framework (saga → controller → document generation → download) now with any data available in the current finances page
Dashboard Views
This rework is considerable but should happen entirely on the frontend (no full-stack tickets)
We are still waiting for some designs to be confirmed as final, so we will work on conservative parts of the design this sprint
| M: must have N: nice to have | tasks |
|
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 |
| ||
8 |
| ||
9 |
| ||
10 |
| ||
|
|