Skip to content

Management System using MERN (MongoDB, Express.js, React.js and Node.js)

Notifications You must be signed in to change notification settings

alaminsahed/employee-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Employee Management System

Technology:

Frontend:

  • React.js
  • Typescript
  • Material UI

Backend:

  • Node.js
  • Express.js
  • MongoDB
  • Socket.io

Features:

  • Login
    Employees and Admins both can login from this page.
login
  • Forget Password
    User will give his registered email address and press the submit button. A recovery link will send to the user email.
forget pass
  • Home Page
    Employee

home
Admin
admin home
  • Change password
change password
  • View Personal Information, current projects and monetory details
my profile
  • Edit personal Information
    User auhorized to edit only personal information
update profile
  • Users All Projects Details
    User can veiw his all projects lists from joinning date to now.
projects
  • Claim leave request
    User can claim for leave from here
claim leave req
  • View leave request status
    User can view their accepted or rejected leave request list.
leave req status
  • Download payslip
    User can download monthly payslip from here
payslip
  • Veiw notice
    User can view general and perivate notice. Other users can't view any one's particular notice.
notice board
  • Real time notification
    If admin change any user's information, that user get notification about that update.

Only Admin Features

Admin is also a employee. They have all user's functionality including some extra functionality.
  • View all employee list
    Only admins can view all employee list. Admin can edit, delete, active and deactive any employee's profile excluding his own profile. But admin can view, edit, delete, active and deactive others admin profiles.
    Deactive users can't login in this system with correct credientials
admin all profiles
  • Add new employee profile including personal, project and financial information.
    Only admin can add new employee profile in the system.
add users add users project
  • View, Edit and Delete all projects deatils in the company
    Admin can view, edit and delete all running, completed and pending projects in the comapany.
admin projects
  • Add new projects.
    Admin can add new projects in this system.
add new projects
  • View, Reject and Approve leave request.
    Admin can view, reject and approve leave request excluding his own leave request.
admin leave req status
  • Send notice.
    Admin can send notice or any message to the all employee or any particular employee.
send notice

Note:

  • We have to create first admin from Database. We can use post man or direct mongo alts for this.
  • To receive forget password email, employee's email address should be real. ( I add my email address for demonstration. Change the email address in the code.)

How to run:

  • Clone this repo
  • Go to the root folder and run npm install.
  • Go to the frontend folder and run npm install
  • Create a .env file and input your cridentials
  • .env file example:
PORT=
MONGO_URL=
JWT_KEY=
  • Go to the mongo alts and connected your project to the database
  • Run the backend and frontend
  • Backend command for run the project
npm run dev
  • Frontend command for run the frontend
npm run start
  • Typescript run command
npm run watch

Improvement Scope: I build this project from scratch and according to my raw idea. So, there are lots of improvement scope.
  • I used typescript and used dynamic type any in many places because of time shortage.
  • Real time notification can be more updated and optimized. Specialy we can save all notifications in the database.
  • This app can be more optimized and can be reduce extra rendering.

Purpose:

Learning

Key Learning:

  • Typescript project setup
  • Project feature design
  • Material UI
  • Forget password Workflow
  • Role base features
  • File uploads techniques
  • Middlewires
  • Schema desgin and more