A full-stack personal finance management application built with FARM Stack (FastAPI, React, MongoDB) integrated with Open Banking India API for demo purposes and RazorpayX API for production.
- React
- React Router DOM
- React Bootstrap
- Axios
- Recharts for data visualization
- Lucide React for icons
- FastAPI
- MongoDB with Motor
- Pydantic for data validation
- Python-Jose for JWT
- uvicorn for ASGI server
pfms/
├── frontend/
│ ├── public/
│ └── src/
│ ├── components/
│ ├── pages/
│ ├── styles/
│ └── App.jsx
├── backend/
│ ├── app/
│ │ ├── routers/
│ │ ├── models/
│ │ └── config.py
│ └── main.py
├── .gitignore
├── README.md
└── requirements.txt
- Dashboard with financial overview
- Transaction management
- Expense analytics and visualization
- Profile management
- Bank account integration
- Budget tracking
- Clone the repository
- Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Create a .env file with the following variables:
MONGODB_URI=your_mongodb_uri DATABASE_NAME=your_database_name JWT_SECRET=your_jwt_secret
- Run the backend server:
uvicorn main:app --reload
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Create a .env file:
REACT_APP_API_URL=http://localhost:8000/api
- Start the development server:
npm start
/api/transactions/
- Transaction management/api/dashboard/summary
- Dashboard data/api/analytics/summary
- Analytics data/api/profile/
- User profile management
- Fork the repository
- Create your feature branch (
git checkout -b feature/NewFeature
) - Commit your changes (
git commit -m 'Add a new feature'
) - Push to the branch (
git push origin feature/NewFeature
) - Open a Pull Request