https://github.com/networkflux/subscription-api
Subscription Tracker API
https://github.com/networkflux/subscription-api
api arcjet backend expressjs javascript mongodb mongoose nextjs
Last synced: 3 months ago
JSON representation
Subscription Tracker API
- Host: GitHub
- URL: https://github.com/networkflux/subscription-api
- Owner: NetworkFlux
- Created: 2025-02-20T13:09:11.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-03-05T16:06:43.000Z (3 months ago)
- Last Synced: 2025-03-05T17:23:28.162Z (3 months ago)
- Topics: api, arcjet, backend, expressjs, javascript, mongodb, mongoose, nextjs
- Language: JavaScript
- Homepage:
- Size: 44.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
![]()
![]()
![]()
A Subscription Management System API
## 📋 Table of Contents
1. 🤖 [Introduction](#introduction)
2. ⚙️ [Tech Stack](#tech-stack)
3. 🔋 [Features](#features)
4. 🤸 [Quick Start](#quick-start)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 the API to ensure scalability and seamless communication with the frontend.
- Node.js
- Express.js
- MongoDB
- Mongoose
- ArcJet
- NodeMailer## 🔋 Features
👉 **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.
and many more, including code architecture and reusability
Follow these steps to set up the project locally on your machine.
**Prerequisites**
Make sure you have the following installed on your machine:
- [Git](https://git-scm.com/)
- [Node.js](https://nodejs.org/en)
- [npm](https://www.npmjs.com/) (Node Package Manager)**Cloning the Repository**
```bash
git clone https://github.com/NetworkFlux/Subscription-API
cd Subscription-API
```**Installation**
Install the project dependencies using npm:
```bash
npm install
```**Set Up Environment Variables**
Create a new file named `.env.local` in the root of your project and add the following content:
```env
# 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**
```bash
npm run dev
```Open [http://localhost:5500](http://localhost:5500) in your browser or any HTTP client to test the project.