Skip to content

Latest commit

 

History

267 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swiftly — Leave & Reimbursement Portal

A full-stack web application for managing employee leaves and reimbursement claims with role-based access control.

Features

  • Authentication — JWT-based login & signup
  • Role-Based Dashboards — Employee, Manager, and Admin views
  • Leave Management — Apply, approve, and reject leave requests
  • Reimbursement Claims — Submit claims with optional bill uploads (via ImageKit)
  • Bill Management — Upload, replace, delete, and download bills (images/PDFs)
  • Charts & Analytics — Donut charts showing status breakdown on dashboards
  • Toast Notifications — Real-time feedback for all actions
  • Dark / Light Mode — Theme toggle with system preference support

Tech Stack

Layer Technology
Frontend React, Vite, TailwindCSS, Recharts
Backend Node.js, Express, Mongoose
Database MongoDB Atlas
Storage ImageKit (bill uploads)
Auth JWT (jsonwebtoken + bcryptjs)

Getting Started

  • Demo credential for admin

Prerequisites

  • Node.js v18+
  • MongoDB Atlas connection string
  • ImageKit account (for bill uploads)

1. Clone the repo

git clone https://github.com/Abhishek-Verma0/Employee-Leave-Management-System.git
cd Employee-Leave-Management-System

2. Setup the server

cd server
npm install

Create a .env file in server/:

MONGO_DB_URL=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
IMAGEKIT_PUBLIC_KEY=your_public_key
IMAGEKIT_PRIVATE_KEY=your_private_key
IMAGEKIT_URL_ENDPOINT=https://ik.imagekit.io/your_id

Start the server:

npm start

Note: The very first user to register is automatically promoted to admin so you can start approving other users immediately. If you already have users in the database and need to create an admin, run the seed script instead:

node scripts/seedAdmin.js

You can customise the seed credentials with environment variables: ADMIN_NAME, ADMIN_EMAIL, ADMIN_PASSWORD.

3. Setup the client

cd client
npm install

Create a .env file in client/:

VITE_API_BASE_URL=http://localhost:3000

Start the client:

npm run dev

The app will be available at http://localhost:5173.

Roles

Role Capabilities
Employee Apply for leaves & reimbursements, upload bills
Manager All employee actions + approve/reject employee requests
Admin Manage users, approve/reject manager requests, view all data

Project Structure

├── client/             # React frontend (Vite)
│   └── src/
│       ├── components/ # Reusable UI components
│       ├── context/    # Auth & Theme context providers
│       ├── pages/      # Dashboard & auth pages
│       └── utils/      # Axios instance
└── server/             # Express backend
    ├── config/         # DB & ImageKit config
    ├── controllers/    # Route handlers
    ├── middleware/      # Auth middleware
    ├── models/         # Mongoose schemas
    └── routes/         # API routes

Contributing

Contributions are welcome! If you'd like to improve this project:

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

Author

Abhishek Verma@Abhishek-Verma0

✨ README Improvement Notes

📌 Formatting Enhancements Needed

  • Improve heading hierarchy for better readability
  • Ensure consistent spacing between sections
  • Use proper Markdown formatting for code blocks and lists
  • Align all installation and usage steps properly

🚀 Suggested Structure Upgrade

  • Introduction
  • Features
  • Tech Stack
  • Installation
  • Usage
  • Project Structure
  • Contribution Guidelines
  • License

🛠️ Documentation Improvements

  • Add badges (optional): build, license, contributors
  • Add screenshots for better UI understanding
  • Standardize code blocks for commands

🎯 Goal

Improve onboarding experience for new contributors and users by making README more structured, readable, and professional

About

A professional MERN stack portal for managing employee leaves and reimbursement claims with role-based dashboards, ImageKit bill uploads, and interactive analytics.

Resources

Code of conduct

Stars

4 stars

Watchers

0 watching

Forks

Contributors

Languages