Coder Social home page Coder Social logo

employeepayroll's Introduction

Employee Payroll

An application made in React and C# with an API that posts csv format file and returns a payroll report of employees.

Technologies used

Instructions

  1. Install the latest .NET 6 SDK
  2. Install the latest React-Bootstrap via npm or yarn
    npm install react-bootstrap bootstrap
    
  3. Navigate to EmployeePayroll and launch the back-end project using dotnet run
  4. Navigate to EmployeePayroll > src > WebUI > ClientApp and launch the front-end project using npm start

Testing the back-end only

  1. Open Postman and make a POST request using the url https://localhost:7150/api/timereport
  2. Add Body form-data key file as type File and Value as the csv file located in EmployeePayroll > src > WebUI time-report-x.csv where x is the variant report id.
  3. The application also allows GET requests using the same url.

Steps taken to test the application

  1. Implemented a test case.
  2. Used Postman and created test scenarios of requests using the data to understand the process and how I would implement it.
  3. Tested alternative cases using different data types and volumes.
  4. Implemented the presented solution following the requirements.
  5. Structured the code following some clean architecture principles.
  6. Did a regression test to guarantee the application was working as intended.

Plans to improve the application

  1. Add a flag variable to change from in-memory database to a real database.
  2. Add SQL Server or Postgres database due to the potential large data volume and to handle better performance.
  3. Implement limitation of requests per minute per user.
  4. Include logging for monitoring purposes such as log4net. Logging would be used for understanding the app usage levels, if the server needs to be scalled or the database is inappropriate.
  5. Add validation for users using different versions of apps that consume this api. For instance, if the request version differs, the HTTP response would be 406 Not Acceptable, requiring the user to install an updated app version.
  6. Add more options to increase the performance and improve user experience:
    1. Pagination.
    2. Limit data per page.
    3. Filters to search employees in determined Date range and/or Amount Paid range.
    4. Display the Name of the Employee as well since just the Id don’t tell much. I would join the Employee data using employeeId. When displaying the results, there’s a possibility to know the details of the employee using a modal screen or a tooltip.
    5. Allow sorting by Employee, Start Date, End Date, or Amount Paid.
  7. Use a Swagger page for documentation purposes.

employeepayroll's People

Contributors

jufb avatar

Watchers

 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.