Track subscriptions, control request limits, and send email reminders
A backend API for managing user subscriptions, built with scalability in mind. This system is designed to help users monitor recurring payments and handle usage limits with automated workflows.
⚠️ Project Status: In Development (Core features working, more endpoints coming)
- User sign-up
- User sign-in
- JWT-based authentication
- Create subscriptions
- Track subscription details (price, category, billing cycle)
- Associate subscriptions with users
- Request usage limits
- Email reminders before renewal
- Automated workflows
- Subscription expiration tracking
- Express.js — REST API framework
- MongoDB — Database
- JWT Auth — Secure authentication
- Arcjet Middleware — Security & request protection
http://localhost:3000/api/v1
POST /auth/sign-up
{
"name": "John Doe",
"email": "doejohn@gmail.com",
"password": "john123"
}POST /auth/sign-in
{
"name": "John Doe",
"email": "doejohn@gmail.com",
"password": "john123"
}Returns a JWT token used for protected routes.
POST /subscriptions
Authorization: Bearer <token>
{
"name": "Elite Membership",
"price": 139.00,
"currency": "USD",
"frequency": "monthly",
"category": "entertainment",
"startDate": "2025-01-20T00:00:00.000Z",
"paymentMethod": "credit card"
}GET /subscriptions/user/:userId
Authorization: Bearer <token>
routes/
├── auth.routes.js
├── user.routes.js
├── subscription.routes.js
└── workflow.routes.js
middlewares/
├── error.middleware.js
└── arcjet.middleware.js
database/
└── mongodb.js
git clone <repo-url>
cd subscription-tracker-apinpm installPORT=3000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret
npm run dev- Email reminder system
- Subscription dashboard analytics
- Rate limiting per subscription tier
- Payment gateway integration
- Webhooks support
Jimwell Ibay Backend Developer