FineAnStyle: A Financial Management App
Inspiration
The inspiration behind FineAnStyle came from the need for a simple yet effective tool to help people control their personal finances. Many struggle with budgeting, including us, so we wanted to create a platform where users could easily track their income, expenses, and savings, allowing them to make informed financial decisions and work towards their goals of a secure financial future.
What We Learned
Throughout the project, we gained hands-on experience with Streamlit for building web apps and how it can be leveraged to quickly prototype user-friendly tools. We learned how to manage financial data, such as expenses and incomes, and present it in an engaging way through interactive charts and real-time calculations. By using Pandas for data management and Matplotlib for visualizations, we were able to provide meaningful insights that help users better understand their spending habits and savings progress.
Additionally, we learned the importance of a user-centered design, focusing on making the app intuitive and easy to navigate.
How We Built It
We built FineAnStyle using Python and Streamlit to create the interactive web interface. For storing data, we used Streamlit's session state to hold the user's expenses, incomes, and savings goals, ensuring data persisted across the app as users interact with it. The app allows users to:
- Track daily expenses and categorize them (e.g., Food, Transportation, Entertainment, etc.).
- Input different income sources and categorize them (e.g., Salary, Bonus, Scholarship).
- Set a savings goal and monitor progress towards it, based on income and expenses.
The app also includes interactive pie charts that visualize spending and income categories, making it easy for users to understand where their money is going and identify areas for improvement.
Challenges Faced
State Management: Managing session state across multiple tabs was one of the most significant challenges. Since Streamlit doesn’t have built-in session management for complex apps, we had to rely on st.session_state to store and retrieve user data as they navigated through different sections like expenses, income, and savings goals.
Real-Time Updates: Ensuring that the app dynamically updated the savings progress and visualizations in real-time was tricky. Each new income or expense entry required recalculating the savings and updating the charts, which required careful handling of data flows.
Data Validation: We needed to ensure that users couldn't input invalid data (like negative expenses or missing details). Implementing input validation required careful checks and feedback messages to guide users to provide correct and complete information.
User Experience: Balancing the complexity of financial data with a simple user experience was a challenge. We wanted to ensure the app was intuitive and easy for users to navigate while still offering powerful features to manage their finances effectively.
Built With
- copilot
- python
- streamlit
Log in or sign up for Devpost to join the conversation.