A simple and intuitive expense tracker application built with ReactJS and TailwindCSS. This application allows users to add, delete, and edit transactions, categorize them as income or expenses, and visualize their financial data. It helps you manage your finances effectively by keeping track of all your transactions in one place.
Check out the live demo: PennWise
- Add New Transactions: Record income and expenses by specifying the amount, category, date, and description.
- Edit Transactions: Modify existing transactions directly from the transaction list.
- Delete Transactions: Remove transactions that are no longer needed.
- View Summary: See a summary of total income, total expenses, and the balance (Income - Expenses).
- Visualize Data: View a chart that visually represents income and expenses over time.
- Responsive Design: Seamlessly use the application on any device, thanks to TailwindCSS.
To get a local copy up and running, follow these simple steps:
- Node.js (version 12 or higher)
- npm (version 6 or higher) or yarn
-
Clone the repository:
git clone https://github.com/your-username/expense-tracker.git cd expense-tracker -
Install dependencies:
npm install # or if you prefer yarn yarn install
-
Start the development server:
npm start # or if you prefer yarn yarn start -
Open your browser and navigate to
http://localhost:5173 -
Use the application to manage your transactions.
- ReactJS: A JavaScript library for building user interfaces, especially single-page applications, using a component-based architecture.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- Chart.js: A popular JavaScript library for creating charts to visualize your data.
- React Icons: A library of popular icons for React applications.
- Supabase: Managed Postgres database for persisting transactions and preferences.
Create a .env file at the project root with the following variables (these are required for Supabase connectivity):
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
Refer to the Supabase documentation to obtain these values.
├── src
│ ├── components
│ │ ├── Footer.jsx
│ │ ├── Navbar.jsx
│ │ ├── Summary.jsx
│ │ ├── TransactionForm.jsx
│ │ ├── TransactionList.jsx
│ │ ├── Summary.jsx
│ │ └── ...
│ ├── App.jsx
│ ├── index.css
│ ├── main.jsx
│ └── ...
├── tailwind.config.js
├── package.json
└── ...
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature-branch). - Open a pull request.