- 🤖 Introduction
- ⚙️ Tech Stack
- 🔋 Features
- 🤸 Quick Start
This project is a full-stack Attendance and Leave Management System designed to streamline employee attendance and leave tracking processes. Built with cutting-edge web technologies, it provides tools for managing user authentication, attendance records, and leave applications, ensuring seamless administrative workflows for organizations.
- Node.js: Runtime for building fast and scalable server-side applications.
- Next.js: Framework for React-based server-side rendering.
- Prisma: ORM for database management and migrations.
- PostgreSQL: Database solution for storing and managing records.
- TailwindCSS: Utility-first CSS framework for responsive and modern UI designs.
👉 User Authentication: Secure user login and management.
👉 Attendance Tracking (CRUD):
- Record, view, update, and delete attendance data for employees.
👉 Leave Management (CRUD):
- Submit, approve, or reject leave requests with clear status tracking.
👉 Role-Based Access Control:
- Different permissions for admins and regular users.
👉 Database Integration:
- Utilizes Neon PostgreSQL and Prisma for robust and scalable data handling.
👉 Responsive Design:
- TailwindCSS ensures a clean and adaptive UI.
👉 Search and Filter:
- Quickly find attendance records or leave requests using powerful search and filter functionalities.
Follow these steps to set up the project locally:
Ensure you have the following installed on your machine:
- Git
- Node.js
- npm or yarn
- PostgreSQL
git clone https://github.com/codewithnuh/attendance-and-leave-management-system.git
cd attendance-management-system
npm install --legacy-peer-deps
Create a .env
file and configure it with your database credentials:
# Database connection settings
DATABASE_URL="postgresql://your_username:your_password@localhost:5432/your_database_name"
# Session secret for authentication
SESSION_SECRET="your_session_secret_key"
# Uploadthing token for file uploads
UPLOADTHING_TOKEN="your_uploadthing_token"
# Optional: uncomment if you use Prisma <5.10
# DATABASE_URL_UNPOOLED="postgresql://your_username:your_password@localhost:5432/your_database_name?sslmode=require"
npx prisma migrate dev
npm run dev
Open http://localhost:3000 in your browser to access the application.