An open API service indexing awesome lists of open source software.

https://github.com/souvikdas040/employee-ms

A sophisticated web program called the Employee Management System (EMS) was created to manage and expedite an organization's administrative requirements. The platform offers role-based features, such as administrator and employee-specific modules. By facilitating the smooth administration of staff data, departments, leave requests, and salaries, th
https://github.com/souvikdas040/employee-ms

components javascript mern-stack-development mongodb mongoose-schema react-components react-router react-router-dom reactjs responsive tailwindcss

Last synced: 3 months ago
JSON representation

A sophisticated web program called the Employee Management System (EMS) was created to manage and expedite an organization's administrative requirements. The platform offers role-based features, such as administrator and employee-specific modules. By facilitating the smooth administration of staff data, departments, leave requests, and salaries, th

Awesome Lists containing this project

README

          

# Employee Management System (Employee MS)

## Overview
The Employee Management System (Employee MS) is a web application designed to streamline and manage employee-related operations for an organization. This project uses the MERN stack (MongoDB, Express.js, React.js, Node.js) for its development, ensuring a robust, scalable, and user-friendly experience.

---

## Features

### **Implemented Features**
1. **Dashboard**
- Provides a quick overview of organizational metrics.
- Displays key data summaries such as total employees, departments, and pending tasks.

2. **Employee Management**
- Add, view, update, and delete employee details.
- Manage employee profiles, roles, and assignments.

3. **Department Management**
- Create, view, and manage departments.
- Assign employees to specific departments.

4. **Leave Management**
- View individual employee leave records.
- Navigate to a detailed leave application and approval section (coming soon).

5. **Salary Management**
- Add and view employee salary records.
- Maintain logs for past salary disbursements.

### **Upcoming Features**
1. **Admin Settings**
- A dedicated section to manage system configurations.
- Options to configure user roles, permissions, and global settings.

2. **Leave Application**
- A user-friendly form for employees to submit leave requests.
- Admin functionality for reviewing, approving, or rejecting leave applications.

---

## Technologies Used

### Frontend
- **React.js**: For building the user interface and handling dynamic state management.
- **React Router**: For seamless navigation between pages.
- **Tailwind CSS**: For responsive and modern UI design.
- **React Icons**: For intuitive and visually appealing icons.

### Backend
- **Node.js**: For server-side scripting and handling API requests.
- **Express.js**: For routing and middleware.
- **MongoDB**: As the database to store employee, department, and salary records.
- **Mongoose**: For object data modeling (ODM) in MongoDB.

### Additional Tools
- **Vite**: For faster build times and efficient development.
- **Git & GitHub**: For version control and collaborative development.

---

## Folder Structure
```plaintext
frontend/
|-- src/
| |-- components/
| | |-- dashboard/
| | | |-- AdminSidebar.jsx
| | | |-- AdminSummary.jsx
| | | |-- Navbar.jsx
| | | |-- SummaryCard.jsx
| | |-- departments/
| | | |-- AddDepartment.jsx
| | | |-- DepartmentList.jsx
| | | |-- EditDepartment.jsx
| | |-- employee/
| | | |-- Add.jsx
| | | |-- Edit.jsx
| | | |-- List.jsx
| | | |-- View.jsx
| | |-- EmployeeDashboard/
| | | |-- Setting.jsx
| | | |-- Sidebar.jsx
| | | |-- Summary.jsx
| | |-- leave/
| | | |-- Add.jsx
| | | |-- List.jsx
| | | |-- Table.jsx
| | |-- salary/
| | |-- Add.jsx
| | |-- View.jsx
| |-- context/
| | |-- authContext.jsx
| |-- pages/
| | |-- AdminDashboard.jsx
| | |-- EmployeeDashboard.jsx
| | |-- Login.jsx
| |-- utils/
| |-- DepartmentHelper.jsx
| |-- EmployeeHelper.jsx
| |-- PrivateRoutes.jsx
| |-- RoleBaseRoutes.jsx
| App.jsx
server/
|-- controllers/
| |-- authController.js
| |-- dashboardController.js
| |-- departmentController.js
| |-- employeeController.js
| |-- leaveController.js
| |-- salaryController.js
| |-- settingController.js
|-- db/
| |-- db.js
|-- middleware/
| |-- authMiddleware.js
|-- models/
| |-- Department.js
| |-- Employee.js
| |-- Leave.js
| |-- Salary.js
| |-- User.js
|-- public/
| |-- uploads/
|-- routes/
| |-- auth.js
| |-- dashboard.js
| |-- department.js
| |-- employee.js
| |-- leave.js
| |-- salary.js
| |-- seeting.js
|.env
|index.js
|userSeed.js
```

---

## How to Run the Project

### Prerequisites
- Node.js installed on your system.
- MongoDB installed locally or have access to a MongoDB Atlas cluster.

### Steps
1. Clone the repository:
```bash
git clone https://github.com/Souvikdas040/employee-ms.git
```
2. Navigate to the project directory:
```bash
cd employee-ms
```
3. Install dependencies for both backend and frontend:
```bash
cd server
npm install
cd ../frontend
npm install
```
4. Set up environment variables for backend (e.g., `PORT`, `MONGO_URI`).
5. Start the backend server:
```bash
cd server
npm start
```
6. Start the frontend development server:
```bash
cd frontend
npm run dev
```
7. Open the application in your browser at [http://localhost:5173](http://localhost:5173).

---

## Contribution Guidelines
We welcome contributions from the community. Here’s how you can help:
1. Fork the repository and create a new branch for your feature or bug fix.
2. Commit your changes and open a pull request.
3. Ensure your code adheres to the project’s coding standards and is well-documented.

---

## Future Scope
- Implementation of **Admin Settings** for enhanced configurability.
- Development of a comprehensive **Leave Application System** with admin review capabilities.
- Integration of notifications and email alerts for critical updates.
- Advanced analytics and reporting for better decision-making.

---

## License
This project is licensed under the MIT License. Feel free to use, modify, and distribute this application.

---

## Contact
For any queries or suggestions, please contact:
- **Developer**: Souvik Das
- **Email**: [souvikdas.aec@gmail.com](mailto:souvikdas.aec@gmail.com)
- **GitHub**: [[github.com/Souvikdas040](https://github.com/Souvikdas040)