Expensee is a responsive expense tracker created as a SuperCode bootcamp graduation project. Users can authenticate with Firebase, record transactions, review recent activity, and see category totals in a doughnut chart.
- Email/password registration and login
- Google, GitHub, and Twitter sign-in through Firebase Authentication
- Real-time transaction storage with Cloud Firestore
- Income, expense, saving, and miscellaneous category totals
- Responsive overview and chart views
- React 19 and React Router 7
- Vite 8
- Firebase 12
- Chart.js 4 with react-chartjs-2
- Sass
- Vitest and Testing Library
Prerequisites: Node.js 20.19 or newer and npm. The repository includes an .nvmrc for Node.js 22.
git clone https://github.com/jonasermert/expensee.git
cd expensee
nvm use
npm ci
npm run devOpen the local URL printed by Vite, normally http://localhost:5173.
The Firebase project must allow the hostname used to run the app. Authentication providers also need to be enabled in the Firebase console before their corresponding login buttons work.
npm run test:run
npm run build
npm auditGitHub Actions executes the test suite and production build for pushes to master and for pull requests.
npm run build
npm run previewThe production files are written to dist/. When deploying, configure the host to serve index.html as the fallback for client-side routes. The existing public/_redirects file handles this on compatible hosts such as Netlify.