An open API service indexing awesome lists of open source software.

https://github.com/dilfathayyil/expenx-server

Personal Expense Tracker - Server side :: built using Typescript , Node.js , Express.js , React and MongoDB
https://github.com/dilfathayyil/expenx-server

advisor-services booking-system cloudinary finance-management redis-cache socket-io-chat stripe-payments zustand-state-management

Last synced: 5 months ago
JSON representation

Personal Expense Tracker - Server side :: built using Typescript , Node.js , Express.js , React and MongoDB

Awesome Lists containing this project

README

          

# ๐Ÿงพ Expense Tracker API

Robust and scalable backend for the **Expense Tracker Web App** โ€” powering user authentication, expense management, advisor scheduling, real-time communication, secure payments, and media uploads. Built with **TypeScript**, **Node.js**, **Express**, and **MongoDB**, following modular and maintainable architecture patterns.

---

## ๐Ÿš€ Features

- ๐Ÿ” **JWT & Google OAuth Authentication**
- ๐Ÿ‘ฅ **Role-based access control** (User, Advisor, Admin)
- ๐Ÿ“Š **Expense tracking & category filtering**
- ๐Ÿ“… **Advisor slot creation, updates, and booking**
- ๐Ÿ’ฌ **Real-time chat** with Socket.IO
- ๐Ÿ“น **Video calls** powered by ZegoCloud (frontend integration)
- โ˜๏ธ **File uploads** with Cloudinary & AWS S3 using Multer
- ๐Ÿ’ณ **Stripe Integration** for secure payments
- ๐Ÿ“ฉ **Email service** with Nodemailer
- ๐Ÿ“ฆ **Scalable, service-repository architecture**
- ๐Ÿงช **Validation** using Joi
- โš™๏ธ **Environment-based configuration** for secure dev/prod usage

---

## ๐Ÿงฑ Tech Stack

### โš™๏ธ Backend
- [Node.js](https://nodejs.org/)
- [Express.js](https://expressjs.com/)
- [TypeScript](https://www.typescriptlang.org/)
- [MongoDB + Mongoose](https://mongoosejs.com/)
- [Joi](https://joi.dev/)
- [Socket.IO](https://socket.io/)
- [Stripe](https://stripe.com/)
- [ZegoCloud UIKit](https://www.zegocloud.com/)
- [Multer](https://github.com/expressjs/multer)
- [Cloudinary](https://cloudinary.com/)
- [Nodemailer](https://nodemailer.com/)

### ๐Ÿงฑ Architecture
- Layered structure: **Controller โ†’ Service โ†’ Repository** (Repository architecture)
- Separation of concerns for maintainability & testing

---

## ๐Ÿงช Development

### Prerequisites

- Node.js โ‰ฅ 18
- MongoDB (local or Atlas)
- Cloudinary keys
- Stripe secret key
- Google OAuth client ID & secret

---

### ๐Ÿ“ฆ Setup & Run

```bash
# Clone the repo
git clone https://github.com/DilfaThayyil/ExpenX-server.git

cd ExpenX-server

# Install dependencies
npm install

# Run the server (dev mode with nodemon)
npm run dev