Code Monkey home page Code Monkey logo

online-hardware-and-software-support-system's Introduction

Online Hardware And Software Support System🖥️

Description:

The system will be available on an online platform for 24x7 access to the employees, the engineers, the Head of the Department and the administration. It Helps keeping your IT staff productive with fast, accurate, remote technical support for your System environment. It provides defect support for a broad range of Products running on System hardware.

Factors to consider include cost of downtime, skills, retention, overheads, customer satisfaction, and many others. Employees of the organization uses IT based hardware for their daily work. If by some reason, these hardware goes down it is very important to take care of these hardware and in case of fault, that should be repaired in priority basis. To maintain and support these hardwares there exists a separate department, generally known as “SYSTEM ENGINEERS DEPARTMENT”. For any problem, concerned employee must report to this department. Engineers from this department take care of the problem.

There are 3 users in the system:

1. HOD
2. Engineer
3. Employee

The Roles for HOD:

  1. Login into the system
  2. Register a new Engineer with a username(email) and password and the category (Hardware/software)
  3. Can see List of all the Registered Engineers.
  4. Can Delete any Engineers from the system
  5. Can able to see all the raised problem.
  6. Can assign any problem to any Engineer.

The Roles of Engineer:

  1. Each engineer has their own account by which they can login.(credentials given by the HOD)
  2. Engineer can view the problem assigned to him by HOD .
  3. Engineer can update the status of the problem addressed by him . i. e. whether it solved or any thing .
  4. They can see list of all the problems attended by him/her.
  5. Engineer can change his password.

The Roles of Employee:

  1. Employee can register himself with his username and password.
  2. Each employee has their account in the system with which they can login
  3. Employee can register any complain (hardware / software ) through the system. After registering the complain a complain id is generated by the system.
  4. Employee can see the status of their problem by using complain id . Status means they can check who (engineer) is assigned to his problem.
  5. They can see all complain history raised by him/her.
  6. Employee can change his/her password.

ER DIAGRAM:


Tables:

create table HOD(
    hodName varchar(25),
    hodUsername varchar(25) unique not null,
    hodPassword varchar(25) not null
);
create table EngineeringDepartment(
    deptId int primary key auto_increment,
    deptName varchar(25) not null
);
create table Engineer(
    engId int primary key auto_increment,
    engName varchar(25),
    engUsername varchar(25) unique not null,
    engPassword varchar(25) not null,
    deptName varchar(25)
);
create table Employee(
    empId int primary key auto_increment,
    empName varchar(25),
    empUsername varchar(25) unique not null,
    empPassword varchar(25) not null,
    deptId int,
    foreign key (deptId) references EngineeringDepartment(deptId) on update cascade on delete cascade
);
create table Complaints(
    complaintId int primary key auto_increment,
    complaintType varchar(25) not null,
    complaintStatus varchar(25) not null,
    complaintRaisedDate date,
    complaintResolutionDate date,
    empId int,
    engId int,
    foreign key (empId) references Employee(empId) on update cascade on delete cascade,
    foreign key (engId) references Engineer(engId) on update cascade on delete cascade
);

DESCRIBE (DESC) TABLES:

# DESC HOD

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| hodName     | varchar(25) | YES  |     | NULL    |       |
| hodUsername | varchar(25) | NO   | PRI | NULL    |       |
| hodPassword | varchar(25) | NO   |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+

# DESC ENGINEERINGDEPARTMENT

+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| deptId   | int         | NO   | PRI | NULL    | auto_increment |
| deptName | varchar(25) | NO   |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+

# DESC ENGINEER

+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| engId       | int         | NO   | PRI | NULL    | auto_increment |
| engName     | varchar(25) | YES  |     | NULL    |                |
| engUsername | varchar(25) | NO   | UNI | NULL    |                |
| engPassword | varchar(25) | NO   |     | NULL    |                |
| deptName    | varchar(25) | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+

# DESC EMPLOYEE

+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| empId       | int         | NO   | PRI | NULL    | auto_increment |
| empName     | varchar(25) | YES  |     | NULL    |                |
| empUsername | varchar(25) | NO   | UNI | NULL    |                |
| empPassword | varchar(25) | NO   |     | NULL    |                |
| deptId      | int         | YES  | MUL | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+

# DESC COMPLAINTS

+-------------------------+-------------+------+-----+---------+----------------+
| Field                   | Type        | Null | Key | Default | Extra          |
+-------------------------+-------------+------+-----+---------+----------------+
| complaintId             | int         | NO   | PRI | NULL    | auto_increment |
| complaintType           | varchar(25) | NO   |     | NULL    |                |
| complaintStatus         | varchar(25) | NO   |     | NULL    |                |
| complaintRaisedDate     | date        | YES  |     | NULL    |                |
| complaintResolutionDate | date        | YES  |     | NULL    |                |
| empId                   | int         | YES  | MUL | NULL    |                |
| engId                   | int         | YES  | MUL | NULL    |                |
+-------------------------+-------------+------+-----+---------+----------------+

Teck Stack : Core Java, JDBC, SQL.

Softwares and Tools : MYSQL, STS, GitBash

THANK YOU

online-hardware-and-software-support-system's People

Contributors

tahir-manzoor-110 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

online-hardware-and-software-support-system's Issues

Project Review

  1. Package bean sounds wrong for entity objects , Always keep entity objects inside entity package .
  2. Use @DaTa annotations from lombok package for dynamic getters and setters , won't have to create getters and setters manually for all the parameters in entity classes.
  3. Instead of prepared statements in DAO implementations , you could use JPA (Java persistence API) , it gives more flexibility in terms of querying the db.
    • It provides methods such as findById() where you won't have to write native sql queries explicitly.
    • Internally JPA uses prepared statements only , so it does the job of creating the corresponding queries for you.
  4. good job on separating the DB Util class . [nit] => always close the conn object that you open.
  5. conn object could have been globalized or passed as a reference .
  6. In jpa , no need to create conn objects , it does the job for us . pasting some links for JPA
  7. good job on creating custom exceptions .
  8. put Use cases classes in service layer where all the business logic must reside.
  9. separate controller , service layer must be present .
  10. could remove DBUtil from utility into configuration package and initialize the conn objects using dependency injection. Pasting some useful links for dependency injections below.
  11. functionality is in working condition so that's good.
  12. Just focus on the aspects that i have mentioned above , you'll be good to go.
  13. good job on camel casing and meaningful variable names.
  14. Below site has some small projects with different spring boot concepts in it , do go through once on your own pace.
    - https://www.springboottutorial.com/spring-boot-projects-with-code-examples

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.