A personal finance management application built with React, TypeScript, and Firebase. Some of the backend code is moved already either to Firebase Cloud Functions or separate API layer written in Go.
- User authentication with Firebase Auth
- Protected routes for authenticated users
- Admin-only routes and features
- Firestore database with security rules
- Node.js (v20 or higher)
- npm
- Firebase account
- Clone the repository
- Install dependencies:
npm install
- Create a Firebase project at https://console.firebase.google.com/
- Enable Authentication with Email/Password provider
- Create a Firestore database
- Copy your Firebase configuration from the Firebase console
- Create a
.envfile in the root directory based on.env.exampleand fill in your Firebase configuration - Deploy Firestore security rules:
firebase deploy --only firestore:rules
- Create an admin user in the Firebase console:
- Create a user with email and password in the Authentication section
- In the Firestore database, create a document in the
userscollection with the following structure:{ uid: "<user-uid-from-authentication>", email: "<user-email>", role: "admin", createdAt: <timestamp>, lastLoginAt: <timestamp> }
Start the development server:
npm run dev
# or
yarn devBuild the project for production:
npm run build
# or
yarn buildDeploy to Firebase Hosting:
firebase deploy --only hosting