A full-stack application that lets users schedule reminders which are automatically sent via WhatsApp using Twilio API at the scheduled time.
Reminder-App-Demo.mp4
- 📝 Add custom reminders with messages and reminder time
- 📬 Automatically sends WhatsApp reminders using Twilio
- 🗃️ View and manage all reminders from the frontend
- ❌ Delete reminders
- 📦 Stores reminders in MongoDB
- 💬 Realtime scheduler running in backend using
setInterval
- React 19
- Tailwind CSS 4
- Axios
- React-Datetime-Picker
- React-Hot-Toast
- Vite
- Node.js
- Express.js
- MongoDB & Mongoose
- Twilio (WhatsApp Messaging API)
- Dotenv
- Nodemon (for development)
WhatsAppReminder/
│
├── client/ # Frontend (React)
│ └── ... # Components, Styles, Logic
│
├── server/ # Backend (Express)
│ ├── controllers/ # Reminder logic
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ ├── utils/ # Reminder scheduler
│ ├── server.js # Entry point
│ └── .env # Environment variables
PORT=3000
MONGODB_URI=your_mongodb_connection_string
TWILIO_ACCOUNT_SID=your_twilio_account_sid
TWILIO_AUTH_TOKEN=your_twilio_auth_token
VITE_API_BASE_URL=http://localhost:3000
🔁 Note: Make sure the backend is running on the same port as
VITE_API_BASE_URL
. If your backend usesPORT=3000
, the frontend should point tohttp://localhost:3000
.
cd server
npm install
npm run dev
cd client
npm install
npm run dev
Frontend will run at
http://localhost:5173
- User schedules a reminder from the frontend.
- The backend stores the reminder in MongoDB.
- A scheduler (running every second) checks for due reminders.
- If the reminder time has passed and it's not already sent, Twilio sends the WhatsApp message.
- Reminder is marked as "sent" (
isReminded: true
) to avoid duplicate messages.
- User authentication
- Custom phone number input
- Email reminders
- Edit reminder functionality
- Admin dashboard to monitor reminders sent
Made with ❤️ by Varun Yadav LinkedIn • GitHub • X
This project is open-source and free to use under the MIT License.