PennyPal
Inspiration
The inspiration for PennyPal stemmed from the need for individuals to manage their finances more effectively in a complex financial landscape. I aimed to create an intuitive, user-friendly application that empowers users to take control of their financial health and make informed decisions.
What it does
PennyPal is a personal finance assistant designed to help users track their income, expenses, and savings goals. The application allows users to:
- Log and categorize their expenses.
- Set and monitor savings goals.
- View payment history and track payments.
- Generate reports on spending habits.
- Visualize expenses through interactive charts.
How I built it
I built PennyPal using a combination of React for the frontend and TypeScript for type safety. The application leverages local storage to persist user data, ensuring that all information is saved between sessions. Key technologies and libraries used in the development include:
- React Router for seamless navigation.
- Chart libraries for visualizing expense data.
- CSS for styling and responsive design.
Challenges I ran into
During the development of PennyPal, I encountered several challenges:
- Ensuring accurate data persistence and retrieval from local storage.
- Implementing a responsive UI that works well on different devices.
- Handling asynchronous operations and managing state effectively.
- Debugging TypeScript errors related to unknown types, which required thorough type checking and error handling.
Accomplishments that I'm proud of
I am proud of the following accomplishments:
- Successfully integrating a pie chart to visualize expenses, enhancing the user experience.
- Building a robust reporting feature that summarizes spending and financial goals.
- Creating a seamless user interface that is both functional and aesthetically pleasing.
- Implementing local storage for user data, providing a persistent experience without the need for a backend.
What I learned
Throughout the development process, I learned valuable lessons, including:
- The importance of type safety in TypeScript to prevent runtime errors.
- Effective state management techniques in React applications.
- How to design user-friendly interfaces that cater to the needs of diverse users.
- The significance of user feedback in refining features and enhancing usability.
What's next for PennyPal
Moving forward, I plan to:
- Expand PennyPal's features to include budgeting tools and financial planning resources.
- Integrate external APIs for real-time financial data and insights.
- Enhance the user experience with personalized notifications and reminders.
- Gather user feedback to continue improving and evolving the application based on user needs.
Built With
- chart.js
- css
- localstorage
- react
- reactrouter
- typescript


Log in or sign up for Devpost to join the conversation.