Skip to content

shayaan-git/subscription-tracker-api

Repository files navigation

A Subscription Management System API

  1. 🤖 Introduction
  2. ⚙️ Tech Stack
  3. 💾 Features
  4. 💻 LIVE DEMO (Recommended)
  5. 🤸 Quick Start
  6. 📑 subscription Model Sample
  7. 🔗 Assets

A production-ready Subscription Management System API that handles real users, real money, and real business logic.
Authenticate users using JWTs, connect a database, create models and schemas, and integrate it with ORMs. Structure the architecture of your API to ensure scalability and seamless communication with the frontend.

  • Node.js
  • Express.js
  • MongoDB

Advanced Rate Limiting and Bot Protection: with Arcjet that helps you secure the whole app.

Database Modeling: Models and relationships using MongoDB & Mongoose.

JWT Authentication: User CRUD operations and subscription management.

Global Error Handling: Input validation and middleware integration.

Logging Mechanisms: For better debugging and monitoring.

Email Reminders: Automating smart email reminders with workflows using Upstash.

📌 Link Here

OR ⤵

Follow these steps to set up the project locally on your machine.

Prerequisites

Make sure you have the following installed on your machine:

Cloning the Repository

git clone https://github.com/shayaan-git/subscription-tracker-api.git
cd subscription-tracker-api

Installation

Install the project dependencies using npm:

npm install

Set Up Environment Variables

Create a new file named .env.local in the root of your project and add the following content:

# PORT
PORT=5500
SERVER_URL="http://localhost:5500"

# ENVIRONMENT
NODE_ENV=development

# DATABASE
DB_URI=

# JWT AUTH
JWT_SECRET=
JWT_EXPIRES_IN="1d"

# ARCJET
ARCJET_KEY=
ARCJET_ENV="development"

# UPSTASH
QSTASH_URL=http://127.0.0.1:8080
QSTASH_TOKEN=

# NODEMAILER
EMAIL_PASSWORD=

Running the Project

npm run dev

Open http://localhost:5500 in your browser or any HTTP client to test the project.

Dummy JSON Data 👉🏻 Note: Set 'startDate' in the past.
{
  "name": "shayaan-git Membership",
  "price": 999.00,
  "currency": "INR",
  "frequency": "monthly",
  "category": "entertainment",
  "startDate": "2025-01-20T00:00:00.000Z",
  "paymentMethod": "Credit Card"
}