TL;DR
I built a scalable RESTful API using Node.js for managing user subscriptions. It features JWT authentication, full CRUD operations, and automated renewal notifications. The entire system is containerized with Docker for easy deployment and CI/CD integration.
Key Features
- User authentication (Sign up, Sign in, Sign out)
- Manage users and subscriptions (CRUD)
- Track upcoming subscription renewals
- Docker support for easy deployment
- Modern JavaScript (Node.js, ES6+)
- pnpm support for faster package management
Tech Stack & Architecture
Modular design with a focus on scalability and maintainability. Docker Compose simplifies local development setup.
API Endpoints
Authentication (/api/v1/auth)
POST /sign-up
POST /sign-in
POST /sign-out
Users (/api/v1/users)
GET /
GET /:id
POST /
PUT /:id
DELETE /:id
Subscriptions (/api/v1/subscriptions)
GET /
GET /:id
POST /
PUT /:id
DELETE /:id
GET /user/:id
PUT /:id/cancel
GET /upcoming-renewals
For full details, check out the API documentation on GitHub.
Role & Credits
My Role I was the sole developer for this project, responsible for the entire backend architecture, API design, and Docker implementation.
Credits This was a personal project built from scratch to practice backend development and API design.
Quickstart
# Clone and setup
git clone https://github.com/sujeetgund/subscription-tracker.git
cd subscription-tracker
cp .env.example .env.development.local
# Run with Docker
docker-compose up
# Or run locally
pnpm install
pnpm run dev