Skip to content

Team-Legacy-Foundation/legacy_foundation

Repository files navigation

Legacy Children's Foundation Payroll Helper Application

Description

The purpose of this app is to help centralize the gathering of student information as well as expedite the payroll process associated with the student's earings from attending school and getting good grades.

Installation

In order to run this from Github, you will need to:

  1. Create a database named legacy_children_foundation
  2. Use the queries in the database-v2.0.sql and database_functions.sql files to set up all the necessary tables and populate the needed data to allow the application to run correctly. The project is built on Postgres, so you will need to make sure to have that installed. (Postico recommended)
  3. Clone/fork the repository
  4. Open up your editor of choice and run an npm install
  5. Run npm run server in your terminal
  6. Run npm run client in your terminal
  7. The npm run client command should open up a new browser tab for you.

Usage

Student Account Creation

1. After collecting information from new students, an Admin will add new students to the database from the Admin Homepage via the{" "} Add New Student button.
2. Once the student is successfully created (will appear in Student List on Homepage), an email will automatically be sent out to the student with their login information which is:
    *email used upon LCF signup
    *temporary password created by Admin when creating new student account
  OR this can presented to the student in person.
Students should be reminded to check their spam folder for this email as it may be marked as spam initially.
3. Once the student logs into their account, they will be able to change their password by clicking the "Reset Password" tab and entering a new password.
  (Make sure the student double checks that their new password works).
4. The Admin can change a student's information at any time by clicking the{" "} {" "} button found in the row of the student on the Admin Homepage.
5. The Admin can also change a student's status from "active" to "inactive" and vice versa via the Change Status column found on the Admin Homepage.
  Students who are inactive in the database can still log into their account but will not be able to make entries.

Student Makes an Entry

6. Once a student is ready to make their entry for the Pay Period (i.e. reflecting on the last two week school period), they will login and click "Make an Entry" from their navbar.
 They will be met with a form for them to fill out cataloging their activity the past two weeks.
  NOTE: Students should only make an entry once they have completed the two weeks of school within that pay period.
  Filling out an entry early will result in the{" "} student not being able to make another entry for that pay period.
  The Admin will be able to review entries and see if students submit BEFORE they should (i.e. before they have finished school for that pay period).


Admin Duties/Run Payroll

7. Once all entries for that pay period are entered, the Admin can review all entries submitted by clicking the tab "Current Entries".
  If they find something wrong with an entry, the Admin can click the{" "} {" "} button in the row that needs changing.
8. If all entries look good, the Admin can click the{" "} Run Report button at the top of the page to run the calculations behind the scenes.
  This will bring the Admin to a new page.
9. Here the Admin can review the calculations made by the built-in logic and figure out how much each student is getting paid.
  If the numbers look wrong or an error is spotted, the Admin can click the Cancel {" "} button on the bottom to move back to the entry list and correct it.
10.Otherwise, if the final calculated number for each student looks good, the Admin can click{" "} Confirm Report to push everything to the Past Reports Page.
  NOTE: Once entries are pushed to Past Reports they{" "} CANNOT be removed. This discourages tampering of past data.
  If an error is indeed made and is not caught before the check is sent out, the Admin will have to reconcile the amount manually.


Past Entries/History

The purpose of the past entries on the student's account is to allow them to reflect on their past entries as well as have a record of their past paychecks.
If students have questions on their past entries or their past paychecks, they should contact an Admin to discuss.


Creating New Deductions/Charges

If an Admin wishes to add a new charge to a specific student's account, they can use the "Create New Deduction" tab found in their navbar.
This will prompt the Admin to fill out a form detailing things like:
 *Which student is being charged
 *The name and description of the charge
 *The charge amount ($)
Once these are all filled in, the Admin simply presses the{" "} Create New Charge button to add that charge to the student's account.
A record of such charges made can be found via the "Past Deductions" tab in the navbar.
Please note that these charges are automatically taken out of the student's paycheck for the next pay period.
An outstanding balance will remain if the amount of funds going to student does not fully cover the charge amount.


Password Resets

If a password reset is needed by a student, they can use the "Forgot Password" button found on the login page to get an email sent to their email on file.
Otherwise they will contact an Admin. The Admin will confirm the student's credentials (name, LCF ID) and reset their password manually.
This new password can then be given to the student so that they can login and change their password to a password they will better remember.
Admins also have the ability to reset their own password if they so choose via the Reset Password tab in the navbar.

Calculation Details

GPA Bonus

GPA Bonus Amount ($)
< 2.0 NO PAYCHECK
2.0 - 2.4 0
2.5 - 2.9 20.00
3.0 - 3.4 40.00
3.5 - 3.9 60.00
4.0 80.00

Base Pay

School Year? Amount ($)

Built With

  • React - Javascript framework
  • Node - Javascript runtime environment
  • Express - Web application framework for Node.js
  • Passport - Authentication middleware
  • Material UI - React design framework
  • Moment.js - Time formatting Javascript library
  • (Postgre)SQL - Relational database management system
  • Heroku - Cloud platform
  • Redux + Sagas - Javascript library for managing application state
  • SweetAlerts2 - Javascript library for alerts/confirmations
  • SendGrid - platform for generating/sending emails

Authors

Christopher Neisen cneisen234 Clever Mukori clevereda Dalton Meyer Dalton-Meyer Kyle Hagler KyleHagler-bit

MIT License

Copyright (c)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Acknowledgement

Thank you Mary Dehne and Legacy Children's foundation for this opportunity to create a custom application. Thank you Emerging Digital Academy for equipping us with the knowledge to make this application a reality.

Support

If you have suggestions or issues, please email us at: [email protected]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages