> For the complete documentation index, see [llms.txt](https://gyansetu-java.gitbook.io/core-java/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gyansetu-java.gitbook.io/core-java/access-modifiers/problems.md).

# Problems

## Project 1:

### Problem Statement :&#x20;

This project will enable us to perform create read update and delete (CRUD) operation on/of a manager.&#x20;

### Pre-conditions :&#x20;

Two default managers should always be present for testing purpose.&#x20;

### Design :

![](/files/-LdJlC7ltVfKLwBPNxBk)

### Step 1: Create one class : Manager

```javascript
Create one class : Manager

Attributes :
managerId
name
age
salary
gender
yearOfExp
projects[]
phonenumbers[]

Methods : 
Getters and Setters , Constructors (both Parameterized and no args)
```

### Step 2: Class for virtual database : VirtualDatabaseUtil

```javascript
Class for virtual database : VirtualDatabaseUtil

 Attributes:
 static managerTable[] 
 
 static block to initialize managerTable with some manager objects
 
 Methods:
 Only static getter method
```

### Step 3: Class to interact with virtualDB ManagerDAOImpl

```javascript
Class to interact with virtualDB ManagerDAOImpl 
 Methods:
 + basic CRUD (save,update,findById,findAll,delete)
```

### Step 4: Class for bussiness logic : ManagerServiceImpl

```javascript
Class for bussiness logic : ManagerServiceImpl
  Methods:
 + basic CRUD (save,update,findById,findAll,delete)
 + getAllProjectsStartingWithEventById()
 
 ex: all project starting with "Event" of manager "id : 2"
```

### Step 5: Class for utility methods : Utility

```java
Class for utility methods : Utility

Static Methods:
+compareTwoNumbers
+isOddSum
+isEvenSum
```

### Step 6: Class for all screen messages and error : ManagerContants

```javascript
Class for all screen messages and error : ManagerContants

Static Attributes:
Manager Id
Manager Name
Age
Salary
Sender
Years Of Exp
Projects Accomplished
Phone Numbers
```

### Step 7:  Class for Testing : ManagerTest

```javascript
Class for Testing : ManagerTest

Method:
+ main()
+ displayMenu()
```

### GitHub Link:

{% embed url="<https://github.com/mmalhotra2000/ManagerProject>" %}
