Loading repository data…
Loading repository data…
code-a2z / repository
This is Paisable — An open-source personal finance tracker built with the MERN stack and powered by Google Gemini AI for intelligent receipt scanning.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Paisable is a full-stack personal finance management app built with React (frontend), Node.js/Express (backend), MongoDB (database), and enhanced with Google Gemini AI for OCR-based receipt scanning. It helps users track income, expenses, receipts, and visualize financial analytics via charts.
Frontend:
Backend:
Dev Tools:
Hosting:
.
├── backend/
│ ├── server.js # Express app entry
│ ├── package.json
│ ├── config/
│ │ └── db.js
│ ├── routes/
│ │ ├── authRoutes.js
│ │ ├── transactionRoutes.js
│ │ ├── receiptRoutes.js
| | └── userRoutes.js
│ ├── middleware/
│ ├── controllers/
│ ├── models/
│ └── uploads/ # static served files (receipts)
│
├── docs/
│ ├── openapi.yaml
│
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ ├── components/
│ │ ├── contexts/
│ │ └── api/
│ │ └── config/
│ │ └── hooks/
│ ├── App.jsx
│ ├── main.jsx
│ ├── package.json
│ ├── vite.config.js
│ ├── tailwindcss.config.js
│
└── README.md
Before cloning, make sure to fork the repository to your GitHub account.
git clone https://github.com/your-username/paisable.git
cd paisable
cd backend
npm install
Create a .env file in the backend/ folder:
PORT=5000
MONGO_URI=your-mongodb-atlas-uri
JWT_SECRET=your-secret-key
GEMINI_API_KEY=your-gemini-api-key
KEEP_ALIVE_URL=http://localhost:5000
Start the backend:
npm run dev
Backend will run on → http://localhost:5000
cd frontend
npm install
Create a .env file in the frontend/ folder:
VITE_API_URL=http://localhost:5000/api
Start the frontend:
npm run dev
Frontend will run on → http://localhost:5173
The full API reference is defined in OpenAPI 3.0 format.
See the file → docs/openapi.yaml
You can:
POST /api/auth/signup → Register new userPOST /api/auth/login → Login userGET /api/auth/me → Fetch logged-in user profileGET /api/transactions → Get all transactions (paginated)POST /api/transactions → Create a new transactionGET /api/transactions/summary → Get income, expense, balance, and recent transactionsGET /api/transactions/charts → Get data for dashboard chartsGET /api/transactions/categories/expense → Get unique expense transaction categoriesGET /api/transactions/categories/income → Get unique income transaction categoriesDELETE /api/transactions/category → Delete a custom categoryGET /api/analytics/summary → Income vs Expense summaryGET /api/analytics/categories → Expense breakdown by categoryPOST /api/receipts/upload → Upload receipt, trigger Gemini OCR, and create a transaction in one stepDELETE /api/users/account → Delete the authenticated user account permanentlynpm starthttps://your-backend.onrender.comnpm run builddistVITE_API_URL=https://your-backend.onrender.com/apiContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please refer to our Contributing Guide for detailed instructions on how to get started with your contribution.
We'd like to extend our heartfelt thanks to everyone who has contributed to Paisable — whether through code, design, documentation, bug reports, or ideas. Your efforts make this project better for everyone. 💖
Want to see your name here? Check out our Contributing Guide and submit your first pull request!
This project is licensed under the MIT License.
Developed by Archa