Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions achyut/pom.xml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,4 +6,11 @@
<version>1.0.0</version>
</parent>
<artifactId>achyut</artifactId>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.33</version>
</dependency>
</dependencies>
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
package com.lftechnology.appinterfaces;

import com.lftechnology.entities.Employee;
import com.lftechnology.entities.User;
/**
* Interface for authentication for the application users
* @author achyut
*
*/
public interface AppUserInterface{

public Employee authenticate(User user);

}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
package com.lftechnology.appinterfaces;

import com.lftechnology.entities.Employee;
import java.sql.ResultSet;
/**
* An Interface to define the signatures for the employee management
* @author achyut
*
*/
public interface EmployeeInterface{

public boolean isUsernameExists(String username);

public int addEmployee(Employee e);

public int deleteEmployee(Employee e);

public int terminateEmployee(Employee e);

public Employee editEmployeeDetails(Employee e);

public ResultSet searchEmployee(Employee e);

}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@

package com.lftechnology.controller;

import java.sql.ResultSet;
import com.lftechnology.entities.Role;
import com.lftechnology.service.EmployeeService;
import com.lftechnology.service.ServiceFactory;
import com.lftechnology.entities.Employee;

/**
* Controller to managed the employee
* @author achyut
*
*/
public class EmployeeController{

/**
* For First time setup on the superadmin
* @author achyut
* @return void
*/
public void prepareInitialUser(){
EmployeeService ed = ServiceFactory.getEmployeeService();
if(!ed.isUsernameExists("superadmin")){
Employee e = new Employee();
e.setUsername("superadmin");
e.setPassword("superadmin");
e.setDepartment("FHF");
e.setAddress("Kalanki Syuchatar");
e.setFullName("Achyut Dahal");
e.setIsTerminated(false);
e.setRole(Role.ADMIN);
ed.addEmployee(e);
}

}

/**
* Add an employee object to database
* @param employee
* @return int
*/
public int addEmployee(Employee employee){
int employeeAdded = 0;
EmployeeService ed = ServiceFactory.getEmployeeService();
employeeAdded = ed.addEmployee(employee);

return employeeAdded;
}

/**
* Terminate an employee
* @param employee
* @return int
*/
public int terminateEmployee(Employee employee){
int employeeTerminated = 0;
EmployeeService emplSerObj = ServiceFactory.getEmployeeService();
employeeTerminated = emplSerObj.terminateEmployee(employee);
return employeeTerminated;
}

/**
* Delete an employee from the system
* @param em
* @return int
*/
public int deleteEmployee(Employee employee){
int employeeDeleted = 0;
EmployeeService emplSerObj = ServiceFactory.getEmployeeService();
employeeDeleted = emplSerObj.deleteEmployee(employee);
return employeeDeleted;
}

/**
* View an employee in the system
* @param employee
* @return ResultSet
*/
public ResultSet viewEmployee(Employee employee){
ResultSet rs = null;
EmployeeService emplSerObj = ServiceFactory.getEmployeeService();
rs = emplSerObj.searchEmployee(employee);
return rs;
}

/**
* Update the profile of an employee
* @param employee
* @return Employee
*/
public Employee editEmployeeDetails(Employee employee){
EmployeeService emplServiceObj = ServiceFactory.getEmployeeService();
String userNameFormat = "[a-zA-z][a-zA-z0-9._@]+"
if (employee.getUsername().length() != 0 && !(employee.getUsername().matches(userNameFormat))){
System.out.println("\n\t\tUsername Cannot contain extra characters\n");
return employee;
}
return emplServiceObj.editEmployeeDetails(employee);

}



}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@

package com.lftechnology.controller;

import java.util.Scanner;
import com.lftechnology.service.UserService;
import com.lftechnology.service.ServiceFactory;
import com.lftechnology.entities.Employee;
import com.lftechnology.entities.User;
import com.lftechnology.entities.Role;
import com.lftechnology.view.UserMenu;
/**
* Controller for handling the user actions
* @author achyut
*
*/

public class UserController{

/**
* Validate and login a user
* @param user
* @param scan
*/
public void login(User user, Scanner scan){
Employee employee = new Employee();
UserService ls = ServiceFactory.getLoginService();

employee = ls.authenticate(user);

if (employee.getId() == 0){
System.out.println("\nLogin Failed. No username and password matched");
} else{
System.out.format("Welcome %s", employee.getFullName());
UserMenu userMenu = new UserMenu();
if (employee.getRole().equals(Role.ADMIN)){
userMenu.displayAdminMenu(employee, scan);
} else{
userMenu.displayUserMenu(employee, scan);
}
}

}

/**
* Prepare a user for logout making the user GUEST
* @param employee
* @param sc
* @return Employee
*/
public static Employee logOut(Employee employee, Scanner sc){
System.out.println("\nYou Wanna Sign Out?");
System.out.println("tyes = 1\t\tno = 2");

int check = Integer.parseInt(sc.nextLine());
if (check == 1){
employee.setRole(Role.GUEST);
employee.setId(0);
employee.setUsername("");
employee.setPassword("");
employee.setIsTerminated(true);
employee.setFullName("");
employee.setAddress("");
employee.setDepartment("");
}
return employee;
}

}
23 changes: 23 additions & 0 deletions achyut/src/main/java/com/lftechnology/dao/DaoFactory.java
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@

package com.lftechnology.dao;


public class DaoFactory{

private DaoFactory(){

}

public static UserDao getLoginDao(){

return new UserDao();
}

public static EmployeeDao getEmployeeDao(){

return new EmployeeDao();
}



}
48 changes: 48 additions & 0 deletions achyut/src/main/java/com/lftechnology/dao/DbAdapter.java
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
package com.lftechnology.dao;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

/**
* DBAdapter for Mysql
* @author achyut
*
*/
public class DbAdapter{

private DbAdapter(){

}

/**
* Get a MYSQL JDBC Connection
* @return Connection
*/
public static Connection setConnection(){

Properties prop = new Properties();
InputStream input = null;

Connection connection = null;
try{
input = new FileInputStream("src/main/java/com/lftechnology/dao/dbconfig.properties");
prop.load(input);
String username = prop.getProperty("dbuser");
String password = prop.getProperty("dbpass");
String url = prop.getProperty("dburl");
connection = DriverManager.getConnection(url, username, password);

input.close();
} catch(FileNotFoundException fnf){
System.out.println("File not found");
} catch (Exception e){

System.out.println("Couldn't connect to database ="+e.getMessage());
}
return connection;
}
}
Loading