A full-stack web application for tracking and managing your subscriptions with automated email reminders, built with React.js and Node.js.
Live Application: https://subscription-tracker-frontend-1.onrender.com/
- Frontend Repository: https://github.com/ARCoder181105/Subscription-tracker-frontend
 - Backend Repository: https://github.com/ARCoder181105/Subscription-tracker-backend
 
- Multiple Login Methods: Email/password, Google OAuth, GitHub OAuth
 - Secure Authentication: JWT-based authentication with refresh tokens
 - User Profiles: Avatar upload, user information management
 - Session Management: Automatic token refresh and secure logout
 
- Add Subscriptions: Track any subscription with custom details
 - Multiple Billing Cycles: Weekly, Monthly, Quarterly, Yearly
 - Multi-Currency Support: USD, EUR, INR, GBP, JPY
 - Status Tracking: Active, Paused, Cancelled, Expired subscriptions
 - Categories: Organize subscriptions by type (Entertainment, Productivity, etc.)
 
- Email Notifications: Automated reminder emails before billing dates
 - Customizable Reminders: Set reminder period (1-30 days before billing)
 - Welcome Emails: New user registration notifications
 - Login/Logout Notifications: Security alerts for account activity
 - Payment Reminders: Never miss a subscription payment again
 
- Spending Overview: Monthly and yearly expense calculations
 - Visual Statistics: Dashboard with spending breakdown
 - Upcoming Renewals: Track subscriptions due soon
 - Filtering Options: View subscriptions by status or category
 
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
 - Professional UI: Clean, modern design with Tailwind CSS
 - Real-time Updates: Toast notifications for all user actions
 - Dark/Light Themes: Professional color schemes
 - Interactive Elements: Smooth animations and hover effects
 
- React 19 - Modern React with hooks
 - Vite - Fast build tool and development server
 - Tailwind CSS - Utility-first CSS framework
 - Lucide React - Beautiful icon library
 - React Router DOM - Client-side routing
 - Context API - State management
 
- Node.js - JavaScript runtime
 - Express.js - Web application framework
 - MongoDB - NoSQL database
 - Mongoose - MongoDB object modeling
 - JWT - JSON Web Tokens for authentication
 - Passport.js - Authentication middleware
 - Cloudinary - Image upload and management
 - Nodemailer - Email sending functionality
 - bcrypt - Password hashing
 
- Node.js (v16 or higher)
 - MongoDB database
 - Cloudinary account (for image uploads)
 - Email service (Gmail, SendGrid, etc.)
 
- 
Clone the repositories:
# Frontend git clone https://github.com/ARCoder181105/Subscription-tracker-frontend.git cd Subscription-tracker-frontend # Backend (in another terminal) git clone https://github.com/ARCoder181105/Subscription-tracker-backend.git cd Subscription-tracker-backend
 - 
Install dependencies:
# In both frontend and backend directories npm install - 
Environment Configuration:
Backend (.env):
PORT=6969 MONGODB_URI=your_mongodb_connection_string ACCESS_TOKEN_SECRET=your_access_token_secret ACCESS_TOKEN_EXPIRY=15m REFRESH_TOKEN_SECRET=your_refresh_token_secret REFRESH_TOKEN_EXPIRY=7d SESSION_SECRET=your_session_secret # Cloudinary Configuration CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret # Email Configuration EMAIL_USER=[email protected] EMAIL_PASS=your_app_password # OAuth Configuration GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret
Frontend (.env):
VITE_BACKEND_URL=http://localhost:6969
 - 
Start the development servers:
# Backend (port 6969) npm run dev # Frontend (port 5173) npm run dev
 
POST /api/v1/auth/register- User registrationPOST /api/v1/auth/login- User loginGET /api/v1/auth/logout- User logoutGET /api/v1/auth/refresh- Refresh access tokenGET /api/v1/auth/google- Google OAuthGET /api/v1/auth/github- GitHub OAuth
GET /api/v1/user/home- Get user subscriptionsGET /api/v1/user/subs/:id- Get specific subscriptionPOST /api/v1/user/subs- Create new subscriptionPATCH /api/v1/user/subs/:id- Update subscriptionDELETE /api/v1/user/subs/:id- Delete subscriptionPATCH /api/v1/user/subs/:id/done- Mark subscription as paid
The application includes a comprehensive email notification system:
- Registration Welcome: Sent when users create an account
 - Login Notifications: Security alerts for account access
 - Logout Notifications: Session termination confirmations
 - Payment Reminders: Automated emails before subscription renewals
 
- Set custom reminder periods (1-30 days before billing)
 - Automatic calculation of next billing dates
 - Prevention of duplicate reminder emails
 - Support for different billing cycles
 
Professional HTML email templates for all notification types with:
- Branded design matching the application
 - Clear call-to-action buttons
 - Subscription details and payment information
 - Responsive design for mobile devices
 
Frontend/
βββ src/
β   βββ components/          # Reusable UI components
β   βββ contexts/           # React Context providers
β   βββ pages/             # Application pages
β   βββ utils/             # Utility functions
β   βββ App.jsx           # Main application component
β   βββ main.jsx          # Application entry point
βββ public/               # Static assets
βββ package.json         # Dependencies and scripts
Backend/
βββ src/
β   βββ controllers/      # Route handlers
β   βββ models/          # Database schemas
β   βββ routes/          # API routes
β   βββ middleware/      # Custom middleware
β   βββ utils/          # Utility functions
β   βββ db/             # Database configuration
βββ index.js            # Server entry point
βββ package.json       # Dependencies and scripts
- JWT Authentication: Secure token-based authentication
 - Password Hashing: bcrypt encryption for user passwords
 - CORS Protection: Cross-origin request security
 - Input Validation: Mongoose schema validation
 - Rate Limiting: Protection against brute force attacks
 - Secure Headers: Security middleware for Express
 
- Real-time Notifications: Instant feedback for all user actions
 - Responsive Design: Seamless experience across all devices
 - Professional UI: Modern, clean interface design
 - Smart Reminders: Never miss a subscription payment
 - Multi-platform Auth: Login with Google, GitHub, or email
 - Expense Tracking: Monitor monthly and yearly spending
 - Data Security: Secure authentication and data protection
 
- Fork the repository
 - Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
 
This project is licensed under the MIT License - see the LICENSE file for details.
ARCoder181105
- GitHub: @ARCoder181105
 - Frontend Repo: Subscription Tracker Frontend
 - Backend Repo: Subscription Tracker Backend
 
The application is deployed on Render with:
- Frontend: Static site deployment
 - Backend: Node.js application deployment
 - Database: MongoDB Atlas cloud database
 - File Storage: Cloudinary for image management
 
Live Application: https://subscription-tracker-frontend-1.onrender.com/
Built with β€οΈ using React.js, Node.js, and MongoDB