Giter Club home page Giter Club logo

eworldaccessrequest's Introduction

eWorldES Employee Access Tracking Service

A CRUD web app to help DHS Internal Access Coordinators, Project Managers, and Business Analysts at eWorldES update, add, and track the DHS access of all eWorldES employees across many DHS projects.

Technology

Backend -- FINISHED

  • Spring Boot
  • MySQL

Frontend -- FINISHED

  • HTML/CSS
  • JavaScript

Cloud Services

  • AWS (not started)

Authentication & Authorization

  • Spring Security (in progress)
  • Uses JWT Authentication

Build & Run for Windows OS

  • Download and install Java
  • Download and install MySQL DB and MySQL Workbench (https://www.simplilearn.com/tutorials/mysql-tutorial/mysql-workbench-installation)
    • Run Schemas "DB Schema" (Need to create) Folder in MySQL WorkBench
  • Download and install Tomcat 8.5
  • Edit application.properties file to include your own MySQL root username, password, and MySQL port
  • Run EWorldAccessRequestApplicationTest on IntelliJ or another IDE

Extra Features To-Do List

  • Create a MySQL Docker Container
  • Add an "admin" account that can edit/delete Access Groups
  • Add more frontend functionality to connect with more of my APIs (e.g, possibly re-enable findEmployeeByExpiration APIs)
  • Make website look better

Screenshots of Frontend

Index Page:

  • Main page is built from a Bootstrap template. Buttons go to separate Employee and Access Group pages. INDEX_PAGE

Main Employee Page (Read):

  • Table is created w/ jQuery DataTables API EMPLOYEE_PAGE

Adding an Employee (Create):

  • Adding an Employee is as easy as filling in a few fields and checking off their appropriate Access Groups. After adding, you are sent back to the main Employee page. EMPLOYEE_POST1 EMPLOYEE_POST2

Updating an Employee (Update):

  • Updating an Employee is as easy as unchecking removed Access Groups and adding new ones. You're also able to change name, email, offshore, and BES values. After updating, you are sent back to the main Employee page. EMPLOYEE_POST1 EMPLOYEE_PUT1 EMPLOYEE_PUT2

Deleting an Employee (Delete):

  • After a confirmation prompt, the user is deleted from the DB, and the table is refreshed. EMPLOYEE_DELETE1 EMPLOYEE_DELETE2

Adding an Access Group (Create/Read):

  • Adding access groups is as easy as typing a name and selecting its type. In theory, access groups will neither be edited nor deleted, but I plan to add those features once I finish the authentication feature. ACCESS_GROUP_POST1 ACCESS_GROUP_POST2

Screenshots of Backend

POST Request formats fullName & email fields and returns detailed descriptions of assigned Access Groups:

  • Response Body is a GET of Access Groups, which shows Name and Type fields. Notice how Employee's JSON Body only lists Access Group IDs.

POST1

  • POST Response returns with detailed Access Group information. Employee's ID is 107.

POST2

POST3

  • POST is reflected in MySQL DB.

POST4

PUT Request preserves previous legitimate fields and updates Employee by removing absent Access Groups from DB while adding a new Access Group:

  • In this PUT, Access Group 37 & 38 have been removed, but Access Group 39 has been added.

PUT1

  • PUT is reflected in MySQL DB.

PUT2

POSTing the same email returns a "Duplicate Entry" error:

DUPLICATE_ERROR

POSTing an Employee w/ a non-eWorldES email returns an "Invalid Email" error:

INVALID_EMAIL_ERROR

A list of all custom exceptions:

ALL_ERRORS

Goals:

  • Replace the current tracking system in which the DHS access PDFs are stored in a SharePoint and cannot be queried
  • Reduce back-and-forth between DHS Internal Access Coordinators and Project Managers/Business Analysts
  • Improve programming skills

Personal note:

  • First Spring Boot project
  • First project with Unit & Integration Tests
  • First project with custom error handling
  • First project with DTOs
  • Includes an expiration field tied to Employee_Access_Group that is no longer relevant due to eWorld policy changes but is still present to exemplify my understanding of joined tables

Created by an Internal Access Coordinator as a side project.

eworldaccessrequest's People

Contributors

jsinger808 avatar

Watchers

Rachel Marison avatar  avatar

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.