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
- Host: GitHub
- URL: https://github.com/dilfathayyil/expenx-server
- Owner: DilfaThayyil
- Created: 2024-12-23T14:48:02.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-04-28T15:15:49.000Z (6 months ago)
- Last Synced: 2025-04-28T16:28:01.864Z (6 months ago)
- Topics: advisor-services, booking-system, cloudinary, finance-management, redis-cache, socket-io-chat, stripe-payments, zustand-state-management
- Language: TypeScript
- Homepage:
- Size: 10.5 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.gitcd ExpenX-server
# Install dependencies
npm install# Run the server (dev mode with nodemon)
npm run dev