Welcome to Ekspensify Backend, the powerful engine behind your personal finance tracking app! Built with Node.js, NestJS, and PostgreSQL, this backend ensures secure, efficient, and scalable financial management. From handling user authentication to managing transactions, itβs designed to keep your data safe and accessible. π‘π
I wanted a robust, scalable, and well-structured backend to support a seamless finance tracking experience. No more slow or unreliable systemsβjust a fast, secure, and efficient API that powers real-time analytics, budgeting tools, and smooth data handling. This backend is built to make finance tracking reliable, secure, and hassle-free! π
- π Track Income & Expenses: Effortlessly record and keep track of your income and expenses in real time.
- π· Categories for Income & Expenses: Includes all standard categories and allows custom categories.
- π© Automatic Tracking via SMS: Detects transactions from SMS alerts and tracks them in pending transactions for review.
- π° Budget Management: Create budgets to limit spending and stay on track.
- π Budget Alerts: Get notified when you're approaching or exceeding your budget.
- π¨ Modern UI: Designed for a sleek and intuitive user experience
- π Dashboard & Analytics: Break down expenses and income by category with visual insights.
- π¦ Multiple Account Tracking: Manage and track finances separately for different bank accounts.
- β Cloud Storage: Your transaction records are securely stored on the server, keeping them safe and accessible.
- π PDF & CSV Export: Easily export transaction data for reporting and record-keeping.
You can get the latest version of the app from the Google Play Store:
- TypeScript β Used as the primary programming language for the backend.
- NestJS β A progressive Node.js framework for building scalable server-side applications.
- PostgreSQL β Relational database for efficient and reliable data storage.
- Prisma β ORM for database management and queries with TypeScript support.
- Redis β In-memory data store for caching and real-time data processing.
- Docker β Containerization for consistent and scalable deployments.
- AWS (EC2 / S3) β EC2 for hosting the backend, and S3 for file storage and management.
- Onesignal β Onesignal for sending real time notifications to app client.
This is a complete backend that interacts with a database. While you can't fully utilize all features without a connected database and environment setup, you can still run it locally for testing and development.
-
Clone the repository:
git clone https://github.com/gokulsuthar22/ekspensify-backend.git . -
Create
.envfiletouch .env
-
Copy content of
.sample.envto.env:cp .env.sample .env
-
Replace placeholder values (your_db_user, your_jwt_secret, etc.) with your actual credentials, eg.
... DATABASE_USER=postgres DATABASE_PASSWORD=mydbpass ...
-
Install dependencies
npm install
-
Start the server
npm run start:dev
-
Clone the repository:
git clone https://github.com/gokulsuthar22/ekspensify-backend.git . -
Create
.env.devfiletouch .env.dev
-
Copy content of
.sample.envto.env.dev:cp .env.sample .env.dev
-
Replace placeholder values (your_db_user, your_jwt_secret, etc.) with your actual credentials, eg.
... DATABASE_USER=postgres DATABASE_PASSWORD=mydbpass ...
-
Start the server using docker compose
docker-compose -f docker-compose.dev.yml --env-file .env.dev up --build
Enjoying this project? Help make it even better! π Report issues, contribute code, or share your ideasβletβs create something awesome together. π‘π»
Got feedback or ideas? Reach out to me! Iβd love to hear from you. π
- π§ Email: team@ekspensify.in
- πΌ LinkedIn: Gokul Suthar | LinkedIn


