https://github.com/nivindulakshitha/subscription-tracker
Skip the basic CRUD - this Backend is all about building a production-ready Subscription Management System with real users, real money, and real business logic. JWT authentication, database modeling, API architecture, security, automated workflows, and much more!
https://github.com/nivindulakshitha/subscription-tracker
api arcjet expressjs javascript mongodb nodejs upstash
Last synced: about 1 year ago
JSON representation
Skip the basic CRUD - this Backend is all about building a production-ready Subscription Management System with real users, real money, and real business logic. JWT authentication, database modeling, API architecture, security, automated workflows, and much more!
- Host: GitHub
- URL: https://github.com/nivindulakshitha/subscription-tracker
- Owner: nivindulakshitha
- License: mit
- Created: 2025-02-16T08:55:09.000Z (over 1 year ago)
- Default Branch: Master
- Last Pushed: 2025-03-13T04:19:49.000Z (over 1 year ago)
- Last Synced: 2025-05-07T03:03:56.996Z (about 1 year ago)
- Topics: api, arcjet, expressjs, javascript, mongodb, nodejs, upstash
- Language: JavaScript
- Homepage:
- Size: 108 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π Subscription Management System API
## π€ Introduction
This project is a **production-ready Subscription Management System API** that handles real users, real money, and real business logic.
π **Features include:** Authentication with JWTs, database integration with MongoDB, API scalability, and seamless communication with the frontend.
## βοΈ Tech Stack
- **Node.js** - JavaScript runtime
- **Express.js** - Web framework
- **MongoDB & Mongoose** - Database & ORM
## π Features
β
**Advanced Rate Limiting & Bot Protection**
- Powered by **Arcjet** to secure the entire application.
β
**Database Modeling**
- Structured with **MongoDB & Mongoose** to manage users and subscriptions.
β
**JWT Authentication**
- Secure login, user management, and subscription handling.
β
**Global Error Handling**
- Input validation, middleware integration, and standardized error responses.
β
**Logging Mechanisms**
- Efficient logging for debugging and monitoring API performance.
β
**Automated Email Reminders**
- Uses **Upstash** to schedule and send smart email notifications.
πΉ **And much more**, including **clean architecture** and **code reusability**.
## π Getting Started
### π§ Installation
1. Clone the repository:
```sh
git clone https://github.com/your-username/your-repo.git
cd your-repo
```
2. Install dependencies:
```sh
npm install
```
3. Set up environment variables:
- Create a `.env` file in the root directory.
- Add required credentials like JWT_SECRET, DB_URI, etc.
4. Start the development server:
```sh
npm run dev
```
---
## π API Endpoints
| Method | Endpoint | Description |
|--------|--------------------|----------------------------------|
| POST | `/api/auth/signup` | Register a new user |
| POST | `/api/auth/login` | User login with JWT |
| GET | `/api/users` | Fetch all users (admin only) |
| POST | `/api/subscription` | Create a new subscription |
| GET | `/api/subscription/:id` | Fetch subscription details |
π **More endpoints available in the documentation.**
---
## π― Contributing
π‘ Contributions are welcome! Feel free to submit issues or pull requests.
1. Fork the repository
2. Create a new branch: `git checkout -b feature-branch`
3. Commit changes: `git commit -m "Added new feature"`
4. Push: `git push origin feature-branch`
5. Open a Pull Request
## π License
This project is licensed under the **MIT License**.
### β If you found this useful, donβt forget to give a star! π