A simple, user-friendly web application to track and manage your daily expenses. The app allows users to add, delete, search, and view their expenses in a table format. It uses React for the frontend and leverages localStorage for data persistence.
- Add Expense: Add new expenses with a title and amount.
- Search Expenses: Search for expenses by title using a dynamic search bar.
- Delete Expense: Remove specific expenses from the list.
- Expense Table: View all expenses in a neatly formatted table.
- Total Amount: Dynamically calculates and displays the total of all listed expenses.
- Data Persistence: Stores expense data in localStorage to ensure it persists across page reloads.
- Frontend: React.js
- Styling: Tailwind CSS, Material-UI
- Icons: react-icons
- Data Storage: localStorage
Ensure you have the following installed:
- Node.js: Download and install Node.js
- npm: Comes bundled with Node.js
-
Clone the repository:
git clone https://github.com/your-username/expense-tracker.git
-
Navigate to the project directory:
cd expense-tracker -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open the app in your browser at
http://localhost:5173.
expense-tracker/
├── public/
│ └── favicon.ico
├── src/
│ ├── components/
│ │ ├── Navbar.jsx
│ │ ├── Footer.jsx
│ │ ├── ExpenseForm.jsx
│ │ └── ExpenseList.jsx
│ ├── App.jsx
│ ├── App.css
│ ├── index.css
│ └── main.jsx
├── dummy_data.json
├── package.json
├── tailwind.config.js
└── README.md
- Enter a title and amount in the provided form.
- Click the "Add Expense" button to save the expense.
- Use the search bar to filter expenses by title.
- The table updates dynamically based on your input.
- Click the "Delete" button next to the expense you want to remove.
- The total amount of all listed expenses is displayed above the table.
Sample data is included in dummy_data.json for initial testing. It is loaded into the app on first launch if no data exists in localStorage.
- Styling: Modify
App.cssor integrate your preferred CSS framework. - Icons: Replace or add icons using the
react-iconslibrary.
Contributions are welcome! Please fork the repository and submit a pull request for review.
This project is licensed under the MIT License. See the LICENSE file for more details.