A simple, clean and expandable Expense Tracker built with React and Styled Components. The project is being developed step by step, with clear milestones and good practices in mind.
👉 [Soon on GitHub Pages]
- React 18 (with Vite)
- Styled Components
- ThemeProvider & GlobalStyle
- Persisting data with LocalStorage
- Coming soon: TypeScript, React Router, LocalStorage, Charts
- Initialized project with Vite
- Added Styled Components
- Added basic theming and GlobalStyle
- Created basic layout components:
Header,Container,Card - Integrated all components into
App.jsx
- Created
ExpenseListcomponent - Used dummy data for mock display
- Styled list using
styled-components
- Extracted
ExpenseItemas a separate component - Applied existing styles
- Improved structure for better scalability
- Created
ExpenseFormcomponent with inputs for title, amount, and date - Added basic validation (required fields, amount > 0)
- Integrated
ExpenseForminApp.jsxwith submission handler logging new expenses - Styled the form using styled-components for better layout and UX
- Created custom
useExpenseshook - Persisted expenses in localStorage
- Initialized state from localStorage on page load
- Removed dummy data after successful implementation
- Added
ExpensesFiltercomponent with dropdown menu - Users can now filter expenses by year or select "All" to show all
- Displayed a message if no expenses match selected year
- Styled filter UI with styled-components
- Improved empty state: clear message when no expenses are found
- Set today's date as default in the expense form (YYYY-MM-DD)
- Autofocus on Title input after submitting a new expense
- Validations and inputs polished for better usability
- Sort expenses by date in descending order (newest first) in the list
- Improved responsiveness for filters and expense items on small screens
- Unified button styles with reusable styled components
- Added "Load Sample Data" button with styling
- Added edit button to each expense item
- Implemented edit mode in ExpenseForm with save and cancel options
- Added updateExpense function to update expenses and persist changes in LocalStorage
- Improved overall UX for editing and managing expenses
git clone https://github.com/Dor-Ka/frontend-react-expense-tracker.git
cd frontend-react-expense-tracker
npm install
npm run dev
## 🧠 Author
Created with ❤️ by Dorota Karpińska
Part of a personal learning journey and frontend portfolio.
## 📝 License
MIT