Skip to content

msaakaash/subscription-tracker

Subscription Tracker

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.

Features

  • 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.

Tech Stack

  • 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)

Getting Started

Follow these steps to get a local copy of the project up and running:

Prerequisites

  • 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

Installation

  1. Clone the repository
git clone https://github.com/msaakaash/subscription-tracker.git
cd subscription-tracker
  1. Install dependencies
    Run the following command to install all required packages, including Express and MongoDB drivers:
npm install

or if you use yarn:

yarn install
  1. Run the application
    Start the API server using:
npm start

or if you have a custom start script, replace accordingly

Optional (for development): Use nodemon to automatically reload the server on code changes:

nodemon run dev
  1. Test the API

Note: By default, the server runs on http://localhost:5501. Use Postman, curl, or Swagger to interact with the API.

API Documentation

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)

Swagger UI Screenshot

Swagger Docs Screenshot

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Code of Conduct

Please read our Code of Conduct before contributing to this project.

Security

If you discover a vulnerability, please refer to our Security Policy for instructions on how to report it responsibly.

License

This project is licensed under the MIT LICENSE.

Author

Aakaash M S

About

A production-ready RESTful API with full CRUD operations for managing users and subscriptions.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors