Important
The Website is hosted on Renderβs free tier, so it might take a few seconds to load and display the website - but hey, good things take time! π
A smart and seamless AI leave management system designed for modern workplaces using modern AI.
Request, approve, and track leaves in real time with AI smart automation, google calendar sync, and effortless transparency.
No spreadsheets, no hassle, just smooth leave management that keeps work and life in balance.
leave-tracker-ai.mp4
Important
- Logging in with dummy/demo accounts will not provide the full experience:
- Email confirmations will not work (requires SMTP with real Gmail).
- For the best experience, log in with your own Gmail account.
Caution
- The Manage Leave Requests section is available only to Managers.
- Please log in with a user account that has the Manager role.
- Admins and Team Members will not see this section.
- Leave approvals are done on a group basis. Each Manager can only approve or reject leave requests for members of their assigned group/project.
- Simply assigning someone as a Manager will not allow them to receive leave requests unless they are also a manager of a group/project.
-
- Get Events - Fetches all the events from Calendar.
- Create Event - Creates or marks leaves on the calendar based on the employeeβs leave balance, and syncs with Google Calendar.
- Delete Event- Deletes any event from the calendar.
- Show Balance- Displays the current employeeβs leave balance.
-
Role-based Access Control
- Admin
- Create and manage users
- Assign leave quotas
- Create projects and groups
- Manager
- Approve or reject leave requests
- Trigger automatic email confirmations on each action
- Team Member
- Apply for leave
- Cancel/reject their own leaves
- View history of approved, rejected, and cancelled leaves
- Admin
-
Leave Quota Management
- Each user is assigned a custom leave quota.
-
Interactive Calendar
- A shared big calendar where all users can view applied/approved leaves.
- Calendar updates automatically when leaves are approved (sometimes requires a refresh).
-
Google Calendar Sync
- Once a leave is approved, it is automatically synced to Google Calendar.
-
Gmail Authentication
- Logging in via Gmail automatically makes you an Admin, enabling configuration of system details.
-
Team Member applies for leave.
-
Manager approves/rejects the request.
- Email confirmation is sent automatically.
-
Approved leaves appear on:
-
The shared big calendar inside the app
-
The userβs Google Calendar (if Gmail login is used)
-
Pressing on a username will open a popup with user details.
-
When running in Docker, clicking on the calendar icon will send an email containing a Google Calendar link.
-
Opening this link grants you permission to view live events synced with Google Calendar.
-
-
-
Admin configures users, leave quotas, projects, and groups.
- Frontend: React / ShadCN / TailwindCSS
- Backend: Node.js / Express / Prisma
- Gen Ai: LangChain, LangGraph, GROQ LLms, AI Tools
- Database: PostgreSQL (Supabase / pgAdmin)
- Authentication: Google OAuth (Gmail login) / JWT
- Email Service: Gmail API / Nodemailer
- Calendar Sync: Google Calendar API
- Cache: React Query
- Containerization: Docker
For quick testing, you can use the following demo accounts:
- Admin β Email:
mark@leave-tracker.comPassword:mark - Manager β Email:
john@leave-tracker.comPassword:john - Team Member β Email:
sam@leave-tracker.comPassword:sam
# Clone the repo
git clone https://github.com/A-ryan-Kalra/leave-tracker-AI
cd leave-tracker
# Install dependencies
npm install
# Run the app
npm run devBefore running the Docker container , please follow these steps carefully:
- Clone the repository
git clone https://github.com/A-ryan-Kalra/leave-tracker-AI
cd leave-tracker- Set up environment variables
- You will find the
.env.examplefile stored in the server directory. - Rename the
.env.exampleto.envfile: - Open
.envfile and fill in your own credentials and fill all the environment variables as required: β οΈ Make sure theGOOGLE_CLIENT_IDandVITE_GOOGLE_CLIENT_IDused in the docker-compose.yml file must share the same ID.
- Run Docker Compose
docker compose up
- The app will now start and be available at
http://localhost:3000
Powered by βοΈ & π§
Aryan Kalra