An invoice management app for freelancers to help stay organised and keep track of payments.

Next.jsTypeScriptStyled-ComponentsDynamoDBJestReact Testing LibraryFirebaseStorybook
Next.jsTypeScriptStyled-ComponentsDynamoDBJestReact Testing LibraryFirebaseStorybook

Project overview

As a collaborative effort with a software engineer, my primary responsibilities for this project was developing reusable components and features within an existing codebase.

The solution

The project was built using DynamoDB, a NoSQL database service, which provided a reliable and secure data storage solution for the backend, and TypeScript, Next.js, and Styled-components for the frontend. As part of the development process, I utilised Storybook to create and test UI components in isolation. To implement the login authentication, I opted for Firebase due to its simple setup process and customisable login form options. Additionally, I set up unit and integration tests using Jest and React Testing library to ensure reliability and functionality across the app


As this was my first collaborative project, one of the obstacles I faced was getting acquainted with the existing codebase. Additionally, I had to familiarise myself with new technologies while adhering to coding standards, which was a challenging task. Despite the challenges, the project helped me develop skills in project management, communication, and problem-solving.

Lessons learned

Collaborating with a more experienced software engineer was invaluable to me. I gained knowledge of best practices for collaborating on app development, and I have since applied this knowledge to my own projects. However, the most significant takeaway for me was learning how to use Git in a pair programming scenario. While I was already familiar with Git, I learned best practices for making commits, managing conflicts, and participating in code reviews.

planetviewer web app