/personal-finance-web-challenge

Simple web challenge using React, Mantine, NestJS, PostgreSQL and Prisma ORM

personal-finance-web-challenge

Overview

The goal of this exercise is to follow these requirements to build a simple personal finance web app where users will enter a saving goal and monthly deposit will be calculated for them.

Tech Stack

Repositories

This exercise is divided into two repositories:

Please review each repository for running instructions.

Throughout the codebase, you can find multiple comments showcasing different decisions and potential improvements through out the code. These comments are searchable with the following keys: TODO, OPTIMIZATION, REFACTOR and NOTE.

Resources

Notes, Future-work, and Potential Improvements

  • JWT authentication with multiple refresh token is fully implemented in the backend. Yet the frontend axios client still requires a request interceptor to use these refresh tokens upon access token expiration.

  • Since this is my first use of Mantine. It was fun as it has similar features to all UI libraries out there. Just note that I tried to restrict myself to follow patterns mentioned in the documentation.

  • I ended up using Redux instead of restricting myself to localStorage as initially thought to make the exercise more complete.

  • Pagination, List Virtualization and Caching are all potential optimizations though I thought it would be over-doing it for the sake of this exercise.

  • For frontend tests, I showcased multiple use-cases of the React Testing Library though I feel I should've done more in terms of E2E and Visual tests but again, I felt like it would be a huge investment for this exercise.