https://github.com/biswajit6844/subscription--tracker-api
Building a production-ready Subscription Management System with real users, real money, and real business logic.
https://github.com/biswajit6844/subscription--tracker-api
api backend javascript nodejs
Last synced: 2 months ago
JSON representation
Building a production-ready Subscription Management System with real users, real money, and real business logic.
- Host: GitHub
- URL: https://github.com/biswajit6844/subscription--tracker-api
- Owner: Biswajit6844
- Created: 2025-03-29T14:48:18.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-11T06:44:40.000Z (about 1 year ago)
- Last Synced: 2025-06-08T05:45:06.064Z (about 1 year ago)
- Topics: api, backend, javascript, nodejs
- Language: JavaScript
- Homepage:
- Size: 47.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
Build 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
## 🔋 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)
**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.