A comprehensive tracking application with beautiful UI that allows users to monitor product prices, gold rates, job opportunities, and medical alerts.
- Beautiful UI: Soft, rounded design with pastel colors and smooth animations
- Responsive Design: Works seamlessly across all devices
- Four Tracker Types:
- 💙 Product Tracker (price monitoring)
- 💚 Medical Tracker (blood/organ alerts)
- 💛 Gold Tracker (price alerts)
- 🧡 Job Tracker (opportunity matching)
- Real-time Notifications: In-app and push notifications
- User Authentication: Secure sign-in/sign-up flow
- RESTful API: Complete backend with Express.js
- Authentication: JWT-based secure authentication
- Database: MongoDB with Mongoose ODM
- Background Tasks: Automated price checking and alerts
- External Integrations:
- Product price scraping
- Gold price APIs
- Job search APIs
- Push notifications (Firebase)
- Email notifications
- React 18 with TypeScript
- Tailwind CSS for styling
- Framer Motion for animations
- Lucide React for icons
- React Router for navigation
- Node.js with Express.js
- MongoDB with Mongoose
- JWT for authentication
- bcryptjs for password hashing
- node-cron for background tasks
- Firebase Admin for push notifications
- Nodemailer for email notifications
- Node.js (v16 or higher)
- MongoDB (local or cloud)
- Firebase project (for push notifications)
- Clone the repository
git clone <repository-url>
cd multi-tracker-app- Install dependencies
npm install- Environment Setup
Create a
.envfile in the root directory:
# Database
MONGODB_URI=mongodb://localhost:27017/multitracker
# JWT
JWT_SECRET=your-super-secret-jwt-key-change-in-production
JWT_EXPIRES_IN=7d
# Server
PORT=5000
NODE_ENV=development
# External APIs
GOLD_API_KEY=your-gold-api-key
RAPIDAPI_KEY=your-rapidapi-key
# Firebase (for push notifications)
FIREBASE_PROJECT_ID=your-firebase-project-id
FIREBASE_PRIVATE_KEY=your-firebase-private-key
FIREBASE_CLIENT_EMAIL=your-firebase-client-email
# Email (for notifications)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
# Frontend URL
FRONTEND_URL=http://localhost:5173-
Start MongoDB Make sure MongoDB is running on your system.
-
Run the application
Start the backend server:
npm run server:devIn a new terminal, start the frontend:
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
POST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/refresh- Refresh JWT token
GET /api/user/profile- Get user profilePUT /api/user/profile- Update user profilePUT /api/user/preferences- Update user preferences
POST /api/product/add- Add product to trackGET /api/product/list- Get tracked productsGET /api/product/status/:id- Get product statusPUT /api/product/:id- Update productDELETE /api/product/:id- Remove product
GET /api/medical/alerts- Get medical alertsPOST /api/medical/alert- Create medical alertPOST /api/medical/subscribe- Subscribe to alertsGET /api/medical/subscription- Get subscription
GET /api/gold/current- Get current gold pricePOST /api/gold/alert- Set price alertGET /api/gold/alert- Get user's alertGET /api/gold/history- Get price history
POST /api/job/search- Search jobsPOST /api/job/subscribe- Subscribe to job alertsGET /api/job/subscriptions- Get subscriptionsGET /api/job/trending- Get trending categories
GET /api/notifications- Get notificationsPUT /api/notifications/read/:id- Mark as readPUT /api/notifications/read-all- Mark all as readDELETE /api/notifications/:id- Delete notification
The application runs several background tasks:
- Product Price Checking: Every 2 hours
- Gold Price Monitoring: Every hour
- Job Alert Processing: Every 4 hours
- Medical Alert Matching: Every 30 minutes
- Data Cleanup: Daily at 2 AM
- JWT-based authentication
- Password hashing with bcryptjs
- Input validation and sanitization
- Rate limiting on API endpoints
- CORS protection
- Helmet.js security headers
The frontend can be deployed to any static hosting service:
npm run buildThe backend can be deployed to services like Heroku, Railway, or DigitalOcean:
- Set environment variables on your hosting platform
- Ensure MongoDB is accessible
- Configure Firebase and email services
- Deploy the application
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.