Smart To-Do & Reminder App with WhatsApp Alerts ⚡
Simple • Fast • Reliable 🚀
Developed by Amit Das
NoteNDo is a modern full-stack to-do application that helps you manage tasks, organize notes, and receive smart reminders directly on WhatsApp.
It combines real-time cloud syncing with an automated reminder system, ensuring you never miss important tasks. Designed for simplicity and performance, NoteNDo is perfect for daily productivity.
# Clone the repository
git clone https://github.com/AmitDas4321/NoteNDo.git
cd NoteNDo
# Install dependencies
npm install
# Start development server
npm run devOpen:
http://localhost:3000
- Task & To-Do Management
- Smart Reminder System
- WhatsApp Notifications
- Firebase Realtime Sync
- User Profile Management
- Media Attachment Support
- Timezone-aware Scheduling
- Fully Responsive UI
- Create a task
- Set reminder date & time
- Data stored in Firebase
- Background service checks reminders
- WhatsApp notification sent
- Task marked as notified
- Create, edit, delete tasks
- Mark as completed
- Add descriptions and media
- Set date & time
- Enable or disable reminders
- WhatsApp alerts
- Manage user information
- Set timezone
- Real-time updates
- Reminder tracking
- Task status (pending / completed)
- Notification logs
| Endpoint | Description |
|---|---|
/api/db/todos |
Get tasks |
/api/db/todos (POST) |
Create task |
/api/db/todos/:id |
Update task |
/api/db/todos/:id DELETE |
Delete task |
/api/db/users/:uid |
Get user |
/api/db/users/:uid |
Update user |
/api/whatsapp/send |
Send WhatsApp |
/api/upload |
Upload files |
- Runs every minute
- Checks reminder time
- Sends WhatsApp alerts
- Marks reminders as sent
- React
- Tailwind CSS
- Vite
- Node.js + Express
- Firebase Realtime Database
- TextSnap API
- Multer
This project is supported by TextSnap, which provides the WhatsApp messaging system used for sending real-time reminders.
How to get access:
- Visit https://textsnap.in
- Create an account
- Create a new instance
- Connect your WhatsApp using QR code
- Obtain your Instance ID and Access Token
Used for:
- Sending WhatsApp reminders
- Media message delivery
- Notification system
Firebase is used as the backend database for storing tasks and user data.
How to get started:
- Visit https://console.firebase.google.com
- Create a new project
- Go to Build → Realtime Database
- Create a database (use test mode for development)
Used for:
- Task storage
- User data management
- Real-time synchronization
NoteNDo
├── assets/
├── src/
├── server.ts
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
├── Dockerfile
├── metadata.json
├── .env.example
├── .gitignore
├── README.md
├── SPONSORS.md
- Push to GitHub
- Go to Render dashboard
- Create a new Web Service
- Connect your repository
npm install && npm run build
npm start
# ===============================================
# NOTE N DO - ENVIRONMENT CONFIGURATION
# Version: 1.0.0
# Author: Amit Das
# ===============================================
# APPLICATION URL
# The public URL where this application is hosted.
# Used for API callbacks, redirects, and internal references.
APP_URL=https://example.com
# TEXTSNAP API CONFIGURATION
# Credentials required for sending WhatsApp messages via TextSnap API.
TEXTSNAP_INSTANCE_ID=
TEXTSNAP_ACCESS_TOKEN=
# FIREBASE REALTIME DATABASE CONFIGURATION
# Base URL of your Firebase Realtime Database.
FIREBASE_DATABASE_URL=
# Secret key used for authenticating requests to Firebase.
FIREBASE_DATABASE_SECRET=
- Use dynamic port:
const PORT = process.env.PORT || 3000;- Do not upload
.envfile - Free tier may sleep, affecting reminders
git clone https://github.com/yourusername/NoteNDo.git
cd NoteNDo
npm install
npm run buildnpm install -g pm2
pm2 start server.ts --name notendo --interpreter tsx
pm2 save
pm2 startupserver {
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
}docker build -t notendo .
docker run -p 3000:3000 --env-file .env notendo- Use VPS for 24/7 reminders
- Secure environment variables
- Use HTTPS
- Monitor with PM2
MIT License © 2026 Amit Das
Built with React and Express
Made by Amit Das

