{"id":28100917,"url":"https://github.com/dilfathayyil/expenx-server","last_synced_at":"2026-04-04T13:39:31.424Z","repository":{"id":269651902,"uuid":"907423301","full_name":"DilfaThayyil/ExpenX-server","owner":"DilfaThayyil","description":"Personal Expense Tracker  -  Server side  ::  built using Typescript , Node.js , Express.js , React and MongoDB","archived":false,"fork":false,"pushed_at":"2025-04-28T15:15:49.000Z","size":10993,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-28T16:28:01.864Z","etag":null,"topics":["advisor-services","booking-system","cloudinary","finance-management","redis-cache","socket-io-chat","stripe-payments","zustand-state-management"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DilfaThayyil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-23T14:48:02.000Z","updated_at":"2025-04-28T15:15:53.000Z","dependencies_parsed_at":"2024-12-25T07:30:15.330Z","dependency_job_id":"25cedd21-b56c-4cf7-b80d-dbb4921f4fe0","html_url":"https://github.com/DilfaThayyil/ExpenX-server","commit_stats":null,"previous_names":["dilfathayyil/expenx-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DilfaThayyil%2FExpenX-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DilfaThayyil%2FExpenX-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DilfaThayyil%2FExpenX-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DilfaThayyil%2FExpenX-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DilfaThayyil","download_url":"https://codeload.github.com/DilfaThayyil/ExpenX-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254005425,"owners_count":21998247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advisor-services","booking-system","cloudinary","finance-management","redis-cache","socket-io-chat","stripe-payments","zustand-state-management"],"created_at":"2025-05-13T18:40:02.136Z","updated_at":"2026-04-04T13:39:31.398Z","avatar_url":"https://github.com/DilfaThayyil.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧾 Expense Tracker API\n\nRobust 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.\n\n---\n\n## 🚀 Features\n\n- 🔐 **JWT \u0026 Google OAuth Authentication**\n- 👥 **Role-based access control** (User, Advisor, Admin)\n- 📊 **Expense tracking \u0026 category filtering**\n- 📅 **Advisor slot creation, updates, and booking**\n- 💬 **Real-time chat** with Socket.IO\n- 📹 **Video calls** powered by ZegoCloud (frontend integration)\n- ☁️ **File uploads** with Cloudinary \u0026 AWS S3 using Multer\n- 💳 **Stripe Integration** for secure payments\n- 📩 **Email service** with Nodemailer\n- 📦 **Scalable, service-repository architecture**\n- 🧪 **Validation** using Joi\n- ⚙️ **Environment-based configuration** for secure dev/prod usage\n\n---\n\n## 🧱 Tech Stack\n\n### ⚙️ Backend\n- [Node.js](https://nodejs.org/)\n- [Express.js](https://expressjs.com/)\n- [TypeScript](https://www.typescriptlang.org/)\n- [MongoDB + Mongoose](https://mongoosejs.com/)\n- [Joi](https://joi.dev/)\n- [Socket.IO](https://socket.io/)\n- [Stripe](https://stripe.com/)\n- [ZegoCloud UIKit](https://www.zegocloud.com/)\n- [Multer](https://github.com/expressjs/multer)\n- [Cloudinary](https://cloudinary.com/)\n- [Nodemailer](https://nodemailer.com/)\n\n### 🧱 Architecture\n- Layered structure: **Controller → Service → Repository** (Repository architecture)\n- Separation of concerns for maintainability \u0026 testing\n\n---\n\n## 🧪 Development\n\n### Prerequisites\n\n- Node.js ≥ 18\n- MongoDB (local or Atlas)\n- Cloudinary keys\n- Stripe secret key\n- Google OAuth client ID \u0026 secret\n\n---\n\n### 📦 Setup \u0026 Run\n\n```bash\n# Clone the repo\ngit clone https://github.com/DilfaThayyil/ExpenX-server.git\n\ncd ExpenX-server\n\n# Install dependencies\nnpm install\n\n# Run the server (dev mode with nodemon)\nnpm run dev\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdilfathayyil%2Fexpenx-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdilfathayyil%2Fexpenx-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdilfathayyil%2Fexpenx-server/lists"}