1 of 24

ICREATESOFTWARE

Project Day.

2 of 24

Problem

  • Working in a management-based environment has managers managing employees, teams, and projects, and tracking how effectively they are being utilized within an organization.
  • This problem was exacerbated by the COVID-19 pandemic which saw most of the workforce working from home making it difficult for managers to track how effectively their employees are being utilized.
  • Utilization is a measure of how much work your employee or team has e.g a 50% utilization implies that the employee’s contractual hours are 50% being used up and that employee can still direct 50% of his hours to another job. So, the employee is not being fully utilized.
  • To have a balanced utilization of employees you need to consider the following factors:
    • How many projects you have.
    • How many Teams are working on the project(s)
    • How many employees are part of the teams working on the projects.
  • Our system helps to solve that issue by considering all these factors and give the manager a single metric to see how efficiently the organization is running.

3 of 24

HOW DOES TEAM UTILIZATION MONITOR SOLVE THESE ISSUES?

4 of 24

Overview

Our system provides:

  • Utilization percentage metrics to give an overview of the company’s total utilization.
  • Individual utilization targets that can determine if a resource (employee or team)  is under/overused or requires more training.
  • Team recommendation system to propose ideal teams for projects based on individual parameters such as skills and availability.
  • A visual depiction of all these elements in a clear concise manner like:
    • Historic utilization of a company
    • Individual utilization
    • Team utilization
  • Ability for admins to create teams and assign members based on preference.

5 of 24

Utilization System

6 of 24

DEMOs

7 of 24

Testing

  • For our tests we used the following technologies:
    • Jest for unit testing and integration testing.
    • Cypress for end-to-end testing.
    • GitHub actions to automate our tests.

8 of 24

Unit Testing – Service Layer

9 of 24

Unit Testing – Database Access Layer

10 of 24

End-to-End Testing

11 of 24

Front End Tests

12 of 24

Testing Automation – Git Actions

13 of 24

Non- functional Requirements Testing

  • Our main functional requirements are:
    • Security
    • Usability
    • Maintainability
    • Reliability

14 of 24

Security Testing

15 of 24

Maintainability Testing

16 of 24

Reliability Testing

17 of 24

Usability

18 of 24

Security

  • Bcrypt: Used to hash and salt passwords.
    • We do not store passwords as plain text.
  • N-tier architecture: Allows unique security measures to be implemented at multiple layers.
  • Tokens: All our api calls to the backend sever are handled through unique tokens assigned to each user.
  • Role Based Access Management System: We have two roles, admin and individual (employee)
    • Critical information like contract hours, is only accessed by the admin and not available to the employee.

19 of 24

Architectural Design

20 of 24

Technologies

21 of 24

DEPLOYMENT MODEL

22 of 24

23 of 24

Project Management

24 of 24

QUESTIONS