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.
- JavaScript
- Node.js
- Express.js
- MongoDB
- HTML
👉 Advanced Rate Limiting and Bot Protection: with Arcjet that helps 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
👉 Email Reminders
👉 MVC Monolithic Architecture
👉 Industry Standard Production Ready Code
👉 REST API with CRUD Operations
👉 ATOMIC NoSQL Database Operations
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/vigneshrintu/Backend-RESTapi.git
cd Backend-RESTapiInstallation
Install the project dependencies using npm:
npm installSet 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 devOpen http://localhost:5500 in your browser or any HTTP client to test the project.
Dummy JSON Data
{
"name": "X Elite Membership",
"price": 139.00,
"currency": "USD",
"frequency": "monthly",
"category": "Entertainment",
"startDate": "2025-01-20T00:00:00.000Z",
"paymentMethod": "Credit Card"
}