BillExpress is a modern web application for personal finance management, allowing you to track your income, expenses, and bank accounts all in one place.
- Transaction Management: Easily record and categorize income and expenses.
- Multiple Accounts: Organize your finances across different bank accounts or cash.
- Smart Categorization: Automatically classify your transactions.
- Advanced Filters: Quickly find any transaction by type, category, or account.
- Visual Statistics: Visualize your finances with charts and reports.
- Responsive Interface: Works perfectly on mobile and desktop devices.
- Dark Theme: Light/dark mode to suit your preferences.
- Secure Authentication: Registration and login system with Firebase.
- Frontend: Next.js, React, TypeScript
- UI: Tailwind CSS, Shadcn UI
- Authentication: Firebase Authentication
- Database: Firebase Firestore
- Storage: Firebase Storage
- Charts: Recharts
- Date Formatting: date-fns
- State Management: Zustand
- Runtime: Bun
- Bun (latest version)
- Firebase Account
-
Clone the repository:
git clone https://github.com/CodeBreaker518/billexpress.git cd billexpress
-
Install dependencies:
bun install
-
Configure environment variables: Create a
.env.local
file in the project root with the following variables:NEXT_PUBLIC_FIREBASE_API_KEY=your-api-key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-auth-domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-storage-bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id NEXT_PUBLIC_FIREBASE_APP_ID=your-app-id
-
Start the development server:
bun dev
- Open http://localhost:3000 in your browser.
BillExpress offers an intuitive workflow designed to help you manage your finances efficiently.
-
Register & Login: Create a personal account with your email address. After verifying your email, you'll have immediate access to your financial dashboard.
-
Dashboard Overview: Upon first login, you'll see your dashboard with these key areas:
- Summary of account balances
- Recent transactions
- Quick add transaction button
- Income vs. expense breakdown
BillExpress automatically creates a default "Cash" account when you register:
- This cash account serves as the foundation of your financial tracking
- The default cash account cannot be deleted to ensure you always have a way to track physical money
- This design ensures consistent financial tracking even if you close bank accounts
To set up additional accounts:
- Navigate to the Accounts section
- Click "Add New Account"
- Choose a name (e.g., "Main Bank", "Savings")
- Select a distinctive color for easy visual identification
- Add an optional initial balance
Every financial movement can be tracked in two simple ways:
Quick Add:
- Click the "+" button from any screen
- Select income or expense
- Enter amount, description, and date
- Choose category (e.g., Food, Transportation, Salary)
- Select which account to associate with the transaction
Batch Management:
- Use the Transactions tab to view, filter, and manage all your financial movements
- Edit any transaction by clicking on it
- Delete transactions you no longer need to track
Find exactly what you need with our multi-layered filters:
- Type filter: Toggle between income and expenses
- Category filter: Narrow down to specific spending or income categories
- Account filter: View transactions from specific accounts
- Search: Find specific transactions by description
Each filter shows visual indicators (icons and colors) to help you quickly identify your selection.
Track your financial progress through visual analytics:
- Monthly spending by category
- Income vs. expense trends
- Account balance history
- Projected savings based on current habits
- Regular Usage: For the most accurate overview, try recording transactions daily
- Proper Categorization: Consistently categorize similar expenses to improve analytics
- Use Tags: For more detailed filtering, add custom tags to related transactions
- Review Monthly: Schedule time each month to review your financial trends
- All transactions are associated with a specific user.
- Data is securely stored in Firebase.
- Firestore rules ensure that each user can only access their own data.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome. Please open an issue first to discuss what you would like to change.
If you have any questions or suggestions, feel free to contact me:
- Email: [email protected]