PulseWatch is a SaaS uptime monitoring platform.
Users can:
- Register
- Login
- Create monitors
- Track website/API uptime
- View monitoring history
- View analytics
User ↓ Render (Backend) ↓ Express API ↓ MongoDB Atlas ↓ Scheduled Monitor Worker ↓ Analytics Engine
Repository hosted on GitHub.
Features:
- Source control
- Deployment source
- Version history
Status: Complete
Database migrated from local MongoDB to Atlas.
Collections:
Stores:
- name
- password hash
Stores:
- name
- url
- method
- expectedStatus
- interval
- userId
Stores:
- monitorId
- statusCode
- responseTime
- isUp
- checkedAt
Status: Complete
Backend deployed publicly.
Live URL:
https://pulsewatch-backend-jl6s.onrender.com
Status: Complete
Endpoint:
POST /api/v1/auth/register
Features:
- User creation
- Password hashing
Status: Complete
Endpoint:
POST /api/v1/auth/login
Features:
- Password verification
- JWT generation
Status: Complete
Features:
- JWT verification
- User extraction
Status: Complete
Endpoint:
POST /api/v1/monitors
Status: Complete
Endpoint:
GET /api/v1/monitors
Status: Complete
Endpoint:
PATCH /api/v1/monitors/:id
Status: Complete
Endpoint:
DELETE /api/v1/monitors/:id
Status: Complete
Runs every minute.
Implementation:
node-cron
Status: Complete
Responsibilities:
- Fetch URL
- Measure response time
- Determine uptime
- Save result
Status: Complete
Stores:
- status code
- response time
- uptime status
Status: Complete
Endpoint:
GET /api/v1/monitors/:id/results
Returns:
- historical checks
- response times
- uptime records
Status: Complete
Endpoint:
GET /api/v1/monitors/:id/analytics
Calculates:
- uptime %
- average response time
- successful checks
- failed checks
- total checks
Status: Complete
Verified on Render.
Status: Passed
Verified on Render.
Status: Passed
Verified on Render logs.
Status: Passed
Verified in Atlas.
Status: Passed
Verified on production.
Status: Passed
Backend Core: 100%
Infrastructure: 100%
Monitoring Engine: 100%
Analytics: 100%
Deployment: 100%
Frontend: 0%
Alerts: 0%
Billing: 0%
Status Pages: 0%
Teams: 0%
Subscriptions: 0%
Frontend Dashboard
Pages:
- Login
- Register
- Dashboard
- Create Monitor
- Monitor Details
- Analytics View
Goal:
Allow non-technical users to use PulseWatch without curl commands.
After frontend:
- Telegram alerts
- Email alerts
- Public status pages
- Stripe billing
- Subscription plans