Skip to content

aayush2724/CheckMate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✅ CheckMate

Enterprise Visitor & Security Tracking

Node.js Express MongoDB Twilio Cloudinary



🌌 Overview

CheckMate is a fully modernized full-stack application designed to replace legacy paper-based visitor logs in corporate environments.

It handles end-to-end visitor processing: from initial registration and hardware-locked photo capture, to automated WhatsApp/Email background notifications, secure administrative dashboards, and pre-scheduled visitor entry logic.


🏗️ System Architecture (SaaS Structure)

The project follows a modular SaaS architecture for scalability:

CheckMate/
├── backend/
│   ├── config/              # DB & Env configurations
│   ├── controllers/         # Request logic (what happens)
│   ├── middlewares/         # Auth, security & error handling
│   ├── models/              # Database schemas (Mongoose)
│   ├── routes/              # API endpoints (URLs)
│   ├── services/            # Business logic (optional but pro)
│   ├── utils/               # Helper functions & scripts
│   └── app.js               # Express application setup
├── frontend/                # View Layer (Static HTML/CSS/JS)
├── server.js                # Application Entry Point
├── package.json             # Root dependencies & scripts
└── .env                     # Environment Secrets

🛡️ Enhanced Security Suite

  • Authenticated API Access: Protected by a server-side Auth Middleware requiring a secret token.
  • Brute-Force Protection: Implements express-rate-limit on the login gateway.
  • Production-Grade Headers: Powered by Helmet.js.
  • Encrypted Env Handling: Managed exclusively through environment variables.

✨ Core Features

  • Biometric Identity Capture: Custom JS webcam integration with Cloudinary upload.
  • Dynamic Check-in Pass & QR Code: Automated QR generation for secure entry.
  • Background Async Notifications: Email via Nodemailer/Resend and WhatsApp via Twilio.
  • Intelligence Dashboard: Live stats, search, filtering, and .xlsx exporting.
  • Pre-Clearance Schedule Portal: Pre-approve future guest visits.

🚀 Deployment Instructions (Render + MongoDB Atlas)

1. Database Setup

  1. Create a free cluster on MongoDB Atlas.
  2. Copy your connection string (mongodb+srv://...).

2. Render Setup

  1. Sign in to Render and create a New Web Service.
  2. Connect this repository.
  3. Use the following commands:
    • Build Command: npm install
    • Start Command: node server.js
  4. Add the Environment Variables listed below.

Required Environment Variables

# Core
PORT=3000
MONGODB_URI=your_mongodb_atlas_uri
BASE_URL=https://your-app.onrender.com
ADMIN_PASSWORD=your_secure_pin
ADMIN_SECRET_TOKEN=generate_a_random_long_string

# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret

# Messaging
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
TWILIO_WHATSAPP_NUMBER=your_twilio_number
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_password
HR_EMAIL=recipient@gmail.com

🐳 Docker Deployment

  1. Ensure Docker is Installed
  2. Build and Run
    docker-compose up -d --build
  3. Access: http://localhost:3000

💻 Local Development Setup

  1. Clone & Install
    git clone https://github.com/aayush2724/CheckMate.git
    cd CheckMate
    npm install
  2. Configure .env in the root folder.
  3. Run
    npm run dev

Built with precision and care ✅

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors