Skip to content

ashlessscythe/checker

Repository files navigation

🕰️ Checker

Real-time Check-In/Check-Out System for Small Businesses 🏢

Checker is a modern, efficient solution for managing employee attendance and time tracking. Built with cutting-edge technologies, it offers real-time updates and seamless scalability for growing businesses.

✨ Key Features

  • 🔄 Real-time updates - no need to refresh!
  • 🚀 Easily scalable for businesses of all sizes
  • 🔐 Secure user authentication
  • 🏢 Department management and user-department linking
  • ⏰ Automatic check-out after configurable periods
  • 🤖 System-generated check-ins for data population
  • 🎨 Customizable through environment variables

🛠️ Technologies Used

  • Next.js
  • React
  • InstantDB
  • Deployment platform of choice: (Render/Vercel/Netlify/Heroku) etc.

📸 Screenshots

Main Interface

Main Page The main check-in/check-out interface showing real-time employee status

Admin Dashboard

Admin Page Administrative dashboard for managing users, departments, and system settings

Visitor Pre-Check (Email → Form → Admin Approval)

Visitors submit a tokenized pre-check request before arriving. Admin approves or rejects, and visitors receive QR + PDF for kiosk check-in.

Visitor Pre-Check

Visitor Approvals

Fire Drill Checklist

Fire Drill Checklist
Emergency fire drill checklist feature for safety compliance

Recent Check-ins

Recent Check-ins
View of recent employee check-ins and check-outs with timestamps

🧾 Visitor Pre-Check Flow

  1. Admin sends an email invite to a visitor (tokenized link valid for 24 hours).
  2. Visitor opens the link and fills out: who/whom, reason, and when (with optional details).
  3. Request is queued until an admin approves it.
  4. Admin approves or rejects:
    • Approve: admin generates a visitor code and the visitor receives QR + PDF by email.
    • Reject: visitor receives a rejection email (default message, with optional admin-provided message).
  5. Kiosk check-in: scanning the visitor code/QR completes check-in using the standard process.

🚀 Getting Started

  1. Clone the repository:
git clone https://github.com/ashlessscythe/checker.git
  1. Install dependencies:
cd checker
npm install
  1. Set up your environment variables:
  • Rename .env.example to .env.local

  • Update the variables as needed:

    NEXT_PUBLIC_INSTANT_APP_ID=your_instant_app_id
    NEXT_PUBLIC_THRESHOLD_HOURS=14
    NEXT_PUBLIC_ENABLE_AUTO_CLEANUP=false
    NEXT_PUBLIC_STALE_CHECKIN_CLEANUP_HOURS=18
    NEXT_PUBLIC_CLEANUP_INTERVAL_MINUTES=20
    

    Visitor pre-check (email token) settings:

    PRECHECK_TOKEN_SECRET="somethingsupersecret"
    NEXT_PUBLIC_APP_BASE_URL="http://127.0.0.1:3000"
    
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser to see the app in action!

🌐 Deployment

Make sure to set your InstantDB URL in your deployment environment settings.

🤝 Contributing

We welcome contributions! If you'd like to contribute:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please ensure your code adheres to the project's coding standards and includes appropriate tests.

📄 License

This project is licensed under the MIT License - see the LICENSE.md file for details.


Built with ❤️ by Some dude

About

Check in and out application for managing people present in the building, can be used for fire drills

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages