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