Created a simple CRUD app using Typescript that will log and manage financial transactions. This app mimics a dashboard that will allow a bookkeeper, an accountant, or a CTO to have a high-level view of the organization's current income.
- TypeScript
- npm (I used version 8.15.0)
- Node
- Clone the repo to your computer.
- In your terminal. navigate to the
server
directory. - Run
npm i
,npm run build
, and thennodemon
if you have it installed globally. If you don't havenodemon
installed then install it. - Open another terminal window and navigate to the
church-transactions
directory. - Run
npm i
and thennpm run dev
. To run the app from adist
(i.e. production) folder, runnpm i
,npm run build
, thennpm run preview
. - A browser window/tab may open with the app. If not, navigate to the url shown in the terminal.
Navigate to the server
directory and run npm test
. The terminal should show all tests passing.
This app isn't deployed anywhere and is not hooked up to any databases. The data that it uses is created when the express
app is launched. An array of transaction objects is created using random data and sent to the front end for viewing and data manipulation. All operations update the transactions
variable in the transactions router.
As stated before, this app is simple. There are many features that one might expect an app like this to have but does not. I forgo'd these features for the sake of time but I'll list below what would make great additions:
- Table filtering and sorting: by name, by year, etc.
- Form validation on the modal. The app could easily break, for instance, if someone adds letters to the amount field.
- Error handling. All the router endpoints assume that all the request will work.
- Adding a db connection so that our data can be stored and saved permanently.
- Multi-delete in case users need to delete many transactions at the same time.
- "Are you sure?" popup for deletes.
- Responsive.