Skip to content

Latest commit

 

History

History
125 lines (102 loc) · 4.3 KB

README.md

File metadata and controls

125 lines (102 loc) · 4.3 KB

THE OFFICE : HUMAN RESOURCE MANAGEMENT APP💼

Tech Stack ⚔

  • React JS with Semantic UI for Frontend
  • Node JS with express for Server
  • GraphQL
  • Mongo DB as the primary database

To run locally:

Server

  cd server
  npm install 
  nodemon server.js

Client

  cd client
  npm install 
  npm start

Application Architecture⛄️:

The application has a client -server model, which handles mutation mostly using REST Api, whereas the read operations/queries are mostly written and handled using graphQL

Application Working☸️:

The application is wrapped with user-authentication and renders pages based on users role and permissions. the admin page is only accessible by admins and also the kanban board of a particular department is accessible by employee of the department. Try accessing '/admin' from a regular employee account.

Workforce🦾:

The workforce is divided into three departments which is further divided into three positions.

departments:

  1. Finance
  2. Sales
  3. Management

Positions:

  1. Regular
  2. Manager
  3. Intern

User Roles:

  1. Regular
  2. Admin

Components of Application🐳

A. Attendance management 📅:

Employees can mark their attendance as present and absent from their dashboard, this attendance is stored in database with the current date and the type as "absent" or "present". The attendance calender is also manipulated by the request handler. Whenever an employees leave request gets accepted, that employee is automatically marked absent for the requested dates.

B. Request Creation 👨🏻‍💻:

Employees can create requests for leave, payroll and bonus. Moreover the employee has the control to monitor his/her request status at their dashboard and they can also take it back. Only the admins have the privilege of resolving the requests.

C. Request Resolving 💯:

Requests Created by employees are sent to the request container in the admin panel where the admin has the privilege to accept/delete the requests. On accepting the requests it will have direct imapct on the user's data. for eg: if a leave request is accepted the employee is marked absent. If the bonus request is accepted the employee's salary is increased. Only the admins have this privilege of resolving request.

D. Discussion Page 📣:

Any important announcement in the office can be posted in the discussion page accessible by everyone. Only the admin has the right to create/ delete posts for the discussion page directly from the admin panel. Moreover the admin can create posts with images and rich text(bold, italic, etc..) and can preview them before posting them.

E. Kanban Board 📝:

Kanban Board is extensively used in a corporate world/ offices. It helps in organising tasks and goals for the future. The application provides the employees with kanban boards for indivisual departments. Each department like finance, management and sales have their own Kanban Board which is accessible only by the members of that department. Only the admins have the privilege to read all the kanban boards. The Kanban Board has three section : todo, doing, done. These sections represents the state of a task, employees can add new task or delete them or they can change the status of an existing task in realtime.

F. Create a new Employee 👨🏼‍🎓:

Admins have the privilege to create a new employee using a form in admin panel. The form provides with complete validation and preview as well. After an employee is created the credential to login are automatically generated. the email is what is entered by the admin and the password is the firstName + lastName.length

G. Search page 🔎:

You can find or search any employee based on department, name, position in the search page. You can also click on h=show profile to see their attendance and basic info. Admins also get the option to delete the employees from the search page.

Deployment 🚀:

Backend is deployed to Heroku

Frontend is deployed to Vercel

Database service : MongoDB atlas