GithubHelp home page GithubHelp logo

expense-reimbursement-system's Introduction

Expense-Reimbursement-System

This is the Expense Reimbursement System project, made by me, Steven Chang (Alteras1). The goal is to create a full stack website and backend that will take in reimbursement claims made by a user, which can be approved by a manager, and subsequently be updated in both the user view and in the database. The premise of this site is that it is a site for a Mochi Donut Bakery.

Here is a link to a live site, where you can view it in action. By default, there is a manager user with the credentials johnsamson and samsonite, and an user with the credentials emilylee and leelee.

Technologies Used

  • Java - JRE 1.8
  • PostgreSQL 10
  • HTML5 & CSS3
  • JavaScript
  • Fetch API
  • Bootstrap 4.5
  • Apache Tomcat
  • JDBC
  • AWS EC2
  • AWS RDS
  • Jenkins

Features

  • Employees/Finance Managers can open Reimbursement Claims for a variety of types, along with a description and claim amount.
  • Finance Managers can view all claims, sorted by default from latest to oldest.
  • Finance Managers can filter claims by type and/or status.
  • Finance Managers can approve/deny claims, and instantly see updated claims.
  • Employees can view their own claims, updated, and are able to filter them as well.
  • Finance Managers can create new users as either Employees or Finance Managers.
  • Employees/Finance Managers can update their own personal information.

To-do list:

  • Make claim approval/denial smoother by dynamically generating approve/deny buttons next to each pending claim.
  • Separate Claims and User info into different pages

Getting Started

This project was designed to operate on an AWS EC2 instance with Apache Tomcat and Jenkins as part of CI/CD. However, it can also run locally. To download and run a local copy of this project, start by git cloning this repository to your preferred directory.

git clone https://github.com/Alteras1/Expense-Reimbursement-System.git

Inside src/main/resources contains a PostgreSQL script that will set up the database. Please run it in your database instance. To connect your code to the database, please edit the relevant information listed in the pom.xml's systemPropertyVariables within the maven-surefire-plugin, as well Java system variables, setting aws_url, aws_password, and aws_username to the database url, password, and username.

Once the database is properly set up, you can run the program through a Apache Tomcat server, where it will be hosted under the endpoint /Reimbursement.

Usage

When you first open the page, you'll be greeted with the following Home screen. To login, click on Accounts.

Imgur

By default, there will be an admin admin account, and a test test account, a manager and an employee account respectively, that you can sign into.

Imgur

If you log into a manager account, you'll see the following screen. From here, you can view all reimbursements, filter them, and create new accounts. You can also pull up the specific details of a claim by inputting the claim # into the View Reimbursement Claim box. From there, you'll be able to update the status of the claim to either approved or denied.

Imgur

If you log in as an employee, you'll see the following screen. Managers are also able to view this and make their own claims by clicking on the dropdown on the top right of the navbar, and clicking on employee view.

Here you can view your own reimbursement claims, their status, open new claims, and update personal information. To update personal information, the password must be given.

Imgur

To log out, you can click on the dropdown on the top right of the navbar, and click logout, where it'll execute a log out process for both the frontend and the backend.

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.