Loading repository data…
Loading repository data…
ydvlalit03 / repository
Modern HRMS employee & admin portal — attendance, payroll, recruitment, leave and employee-lifecycle modules. Built with Next.js 16, TypeScript, Tailwind and Zustand on an ERPNext (Frappe) backend.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
HRMS Portal is a modern web front end for human-resource operations, split into two coordinated experiences: an employee self-service portal where staff handle their own attendance, leave, payslips and expenses, and an admin console where HR runs recruitment, payroll, approvals and onboarding.
It's built with Next.js 16 and is backed by a self-hosted ERPNext (Frappe) instance — all ERP calls are proxied server-side through Next.js API routes, so the ERP URL and session cookies never reach the browser. Together the two surfaces cover four HR modules end to end: Recruitment, Attendance, Employee Lifecycle and Payroll.
| Module | What employees can do |
|---|---|
| Dashboard | personalized overview of attendance, leave balance and announcements |
| Check-in / Attendance | clock in/out and review attendance history |
| Shifts | view assigned shifts |
| Leave | apply for and track leave requests |
| Payslip | view and download monthly salary slips |
| Expenses | submit and track expense claims |
| Directory | browse the company directory |
| Profile | manage personal details |
| Announcements | read company-wide updates |
| Module | What HR can do |
|---|---|
| Dashboard & Reports | HR analytics at a glance |
| Employees | manage records, onboard new joiners (/employees/new) |
| Recruitment | manage applicants and the interview pipeline |
| Attendance | organization-wide attendance monitoring |
| Leave Approvals | review and approve/reject requests |
| Payroll | run payroll (/payroll/run) and manage salary slips (/payroll/slips) |
| Onboarding | structured employee-lifecycle onboarding |
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) + React 19 |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| State management | Zustand |
| Utilities | lucide-react (icons), date-fns (dates) |
| Backend | ERPNext (Frappe) REST API, proxied via Next.js API routes |
The portal is a Next.js frontend that talks to a self-hosted ERPNext instance. Every ERP request is proxied through a catch-all Next.js API route so credentials stay on the server:
Browser ──▶ Next.js (App Router)
│
├─ /(portal) employee self-service pages
├─ /admin HR admin console pages
├─ /api/auth/* login / logout (session)
└─ /api/erp/[...] server-side proxy ──▶ ERPNext (Frappe) REST API
Authentication flows through /api/auth/login and /api/auth/logout, with session/auth helpers in src/lib/. Because the ERP base URL and cookies are handled in the proxy route, the browser never sees them.
src/app/
├── (portal)/ dashboard · checkin · attendance · shifts · leave ·
│ payslip · expenses · directory · profile · announcements
├── admin/ dashboard · employees (+/new) · recruitment (applicants, interviews) ·
│ attendance · leave-approvals · payroll (run, slips) · onboarding · reports
├── login/
└── api/ auth/login · auth/logout · erp/[...path]
npm install
cp .env.example .env.local # set the ERPNext base URL + credentials
npm run dev # http://localhost:3000
npm run dev # start dev server
npm run build # production build
npm run start # run the production build
npm run lint # lint
src/
├── app/
│ ├── (portal)/ # employee self-service pages
│ ├── admin/ # HR admin console pages
│ ├── api/ # auth + ERPNext proxy routes
│ ├── login/
│ └── layout.tsx
├── components/ # shared UI (Sidebar, AdminSidebar, …)
└── lib/ # api client, auth, types
docs/ # HRMS user guide
proxy.ts # ERP proxy helper