FinFlow is a simple full-stack web application to help users track their daily financial activities.
It supports Google OAuth authentication so users can securely sign in and manage their data.
This project is built as a learning project but follows real-world full-stack architecture patterns.
---
---
- 🔐 Google OAuth 2.0 Sign-In
- 📊 Track daily financial transactions
- 🧾 Backend API for accounts and transactions
- ⚙️ MongoDB database integration
- 🌐 React frontend + Node.js backend
- 🔒 Environment variable security (.env support)
Frontend
- React.js
- Tailwind CSS (if used)
- Axios
Backend
- Node.js
- Express.js
- MongoDB
- Passport.js (Google OAuth)
Auth
- Google OAuth 2.0
- JWT Sessions
finflow/ │ ├── backend/ │ ├── routes/ │ ├── models/ │ ├── config/ │ ├── server.js │ └── package.json │ ├── frontend/ │ ├── src/ │ ├── public/ │ └── package.json │ ├── .gitignore ├── package.json └── README.md
git clone https://github.com/yourusername/finflow.git
cd finflow
2️⃣ Install dependencies
# Backend
cd backend
npm install
# Frontend
cd ../frontend
npm install
3️⃣ Configure Environment Variables
Create a file:
backend/.env
Add:
MONGO_URI=your_mongodb_uri
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
SESSION_SECRET=your_secret
PORT=5000
4️⃣ Run the project
# Backend
cd backend
npm start
# Frontend
cd ../frontend
npm start
🔐 Google OAuth Setup
Go to Google Cloud Console
Create a project
Enable OAuth Consent Screen
Create OAuth 2.0 Client ID
Add redirect URI:
http://localhost:5000/api/auth/google/callback
Copy Client ID and Secret into .env
🎯 Purpose of This Project
FinFlow is a beginner-friendly full-stack project built to:
Learn MERN stack architecture
Implement real authentication (Google OAuth)
Understand backend APIs and database integration
Practice secure environment configuration
🧠 Future Improvements
Add expense analytics charts
User dashboard
Categories for expenses
Export data to CSV
Deployment (Vercel + Render)
📜 License
This project is open-source and free to use for learning purposes.
👤 Author
Harsh Sharma
Full-stack developer & student