Ems App
Employee Management System App
- Author: MohamedAliSmk
- Repository: https://github.com/MohamedAliSmk/EMS-App
- GitHub stars: 0
- Forks: 0
- License: MIT
- Category: Developer Tools
- Maintenance: Unmaintained
Install Ems App
bench get-app https://github.com/MohamedAliSmk/EMS-App
Add the Frappe Gems badge to your README
Maintain Ems App? Paste this into your README:
[](https://frappegems.com/gems/apps/MohamedAliSmk/EMS-App)
About Ems App
# Employee Management System – Back End
## Project Description
The **Employee Management System (EMS)** is a backend application designed to facilitate the management of companies, departments, employees, and projects. The system provides Create, Read, Update, and Delete (CRUD) functionality for each entity, alongside workflows for handling the onboarding process of employees and role-based access control (RBAC) for secure data handling.
### Key Features
- **Comprehensive Management**: Handle Companies, Departments, Employees, and Projects effectively.
- **Automatic Calculations**: Automate metrics like department count, employee count, and project assignments.
- **Input Validation**: Validate email and mobile formats.
- **Cascading Logic**: Manage dependencies between entities during updates or deletions.
- **Secure Access Control**: Role-based access control (RBAC) for user permissions.
- **Onboarding Workflows**: Customizable transitions for employee onboarding.
- **Enterprise-Ready**: Scalable, secure, and adheres to real-world enterprise needs.
---
## Prerequisites for Installation
To set up this system on your local machine using Docker, ensure the following prerequisites are met:
### 1. **Docker and Docker Compose**
- Install Docker: [Docker Official Website](https://www.docker.com/)
- Install Docker Compose (usually included with Docker Desktop).
Verify installation with:
```bash
docker --version
docker-compose --version
```
## 2. System Requirements
### Minimum Requirements:
- **RAM**: 4GB
- **CPU**: 2 cores
- **Supported Operating Systems**: Windows, macOS, or Linux
---
## Installation Steps
### Step 1: Clone the Frappe Docker Repository
```bash
git clone https://github.com/frappe/frappe_docker.git
cd frappe_docker
```
### Step 2: Run the Docker Setup
Build and start the Docker containers:
```bash
docker compose -f pwd.yml up -d
```
Wait for 5 minutes for ERPNext site to be created or check create-site container logs before opening browser on port 8080. (username: Administrator, password: admin)
If you ran in a Dev Docker environment, to view container logs: docker compose -f pwd.yml logs -f create-site. Don't worry about some of the initial error messages, some services take a while to become ready, and then they go away.
### Step 3: Install the Custom App on Your Site
Once the containers are running, follow these steps to install your custom app:
Access the backend container:
```bash
docker exec -it frappe_docker-backend-1 /bin/bash
```
Set Developer mode
```bash
bench set-config -g developer_mode 1
```
Get your custom app from the repository:
```bash
bench get-app ems https://github.com/MohamedAliSmk/EMS-App.git
```
Install the app on your site:
```bash
bench --site site-name install-app ems
```
Replace site-name with the name of your site.
## API Documentation
Check the postman_collection.json file for all the available API endpoints.
Create Employee
Description: Creates a new employee record.
Method: `POST`
Endpoint: `{{base_url}}/api/resource/EMS Employee`
Authorization:
Key: `Authorization`
Value: `token {{api_token}}:{{api_secret}}`
Request Body:
Content-Type: application/json
```json { "employee_name": "Mohamed Ali", "email_address": "mohamedali@gmail.com", "address": "123cairo", "designation": "software engineer", "ems_company": "Apple", "ems_department": "Development - AAP" } ``` Expected Response:
Status: 201 Created
Response Body:
```json { "data": { "name": "Mohamed Ali", "owner": "Administrator", "creation": "2024-11-27 20:08:06.441083", "modified": "2024-11-27 20:08:06.441083", "modified_by": "Administrator", "docstatus": 0, "idx": 0, "workflow_state": "Application Received", "employee_name": "Mohamed Ali", "email_address": "mohamedali@gmail.com", "address": "123cairo", "designation": "software engineer", "ems_company": "Apple", "ems_department": "Development - AAP", "number_of_assigned_projects": 0, "days_employed": 0, "doctype": "EMS Employee" } } ``` Thanks
Mohamed Ali
Description: Creates a new employee record.
Method: `POST`
Endpoint: `{{base_url}}/api/resource/EMS Employee`
Authorization:
Key: `Authorization`
Value: `token {{api_token}}:{{api_secret}}`
Request Body:
Content-Type: application/json
```json { "employee_name": "Mohamed Ali", "email_address": "mohamedali@gmail.com", "address": "123cairo", "designation": "software engineer", "ems_company": "Apple", "ems_department": "Development - AAP" } ``` Expected Response:
Status: 201 Created
Response Body:
```json { "data": { "name": "Mohamed Ali", "owner": "Administrator", "creation": "2024-11-27 20:08:06.441083", "modified": "2024-11-27 20:08:06.441083", "modified_by": "Administrator", "docstatus": 0, "idx": 0, "workflow_state": "Application Received", "employee_name": "Mohamed Ali", "email_address": "mohamedali@gmail.com", "address": "123cairo", "designation": "software engineer", "ems_company": "Apple", "ems_department": "Development - AAP", "number_of_assigned_projects": 0, "days_employed": 0, "doctype": "EMS Employee" } } ``` Thanks
Mohamed Ali
Related Developer Tools apps for Frappe & ERPNext
- Frappe — Low code web framework for real world applications, in Python and Javascript
- Frappe Docker — Docker environment for developing, deploying, and running Frappe applications (ERPNext and custom apps) in production and development
- Builder — Craft beautiful websites effortlessly with an intuitive visual builder and publish them instantly
- Bench — CLI to manage Multi-tenant deployments for Frappe apps
- Frappe Ui — A set of components and utilities for rapid UI development
- Press — Full service cloud hosting for the Frappe stack - powers Frappe Cloud
- Gameplan — Open Source Discussions Platform for Remote Teams
- Doppio — A Frappe app (CLI) to magically setup single page applications and Vue/React powered desk pages on your custom Frappe apps.