Production-ready, Dockerized RESTful API with full CRUD for users and subscriptions, secured with JWT authentication, rate-limited by Arcjet, and integrated with QStash for scheduling workflow reminders.
- User & Subscription Management – Enables full CRUD operations for users and their subscriptions.
- JWT Authentication – Secures user sessions with JSON Web Token-based authentication.
- MongoDB Atlas Integration – Stores and manages data in a scalable cloud-hosted database.
- Postman-tested Endpoints – Ensures all routes function reliably through comprehensive API testing.
- Arcjet Rate Limiting – Protects the API from abuse and overuse by enforcing rate limits.
- Upstash - Provides serverless data storage and supports reminder workflows
- Swagger API Documentation – Provides interactive and complete API documentation for developers.
- Docker Containerization – Ensures consistent deployment with Dockerized backend infrastructure.
- Node.js
- Express.js (web framework)
- MongoDB (database)
- REST API
- Swagger (API documentation)
- Postman (API testing)
- Arcjet (security and rate limiting)
- Upstash (reminder workflow and serverless data storage)
Follow these steps to get a local copy of the project up and running:
- Node.js installed (version 14 or higher recommended)
- npm or yarn package manager
- Git installed
- MongoDB installed and running locally or access to a MongoDB cloud instance
- (Optional) Postman or any API testing tool to test endpoints
- (Optional) Swagger for interactive API documentation
- (Optional) Arcjet for API security and rate limiting
- Clone the repository
git clone https://github.com/msaakaash/subscription-tracker.git
cd subscription-tracker- Install dependencies
Run the following command to install all required packages, including Express and MongoDB drivers:
npm installor if you use yarn:
yarn install- Run the application
Start the API server using:
npm startor if you have a custom start script, replace accordingly
Optional (for development): Use
nodemonto automatically reload the server on code changes:
nodemon run dev- Test the API
Note: By default, the server runs on
http://localhost:5501. Use Postman, curl, or Swagger to interact with the API.
The API is documented using Swagger for ease of use and clarity.
You can access the Swagger UI at:
http://localhost:5501/api-docs(or your configured path)
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Please read our Code of Conduct before contributing to this project.
If you discover a vulnerability, please refer to our Security Policy for instructions on how to report it responsibly.
This project is licensed under the MIT LICENSE.