Giter Site home page Giter Site logo

project-phoenix's Issues

RD select all RCIs for check in

  • Enable an RD to select all RCI's and mark them as "signed"
  • In db, check if a certain RCI has already been signed by the RD and only update the ones that have not yet been signed
  • In UI, show a grayed-out or something clearer to designate that the RCI has already been signed.

Populate correct components

  • Using the old RCI's given to us from MC, implement logic to check user's building and create corresponding component upon RCI generation

Ability to delete images

Allow users to delete an image once they have uploaded it.
This will involve a call to the db to delete the entry that contains the damage image.

UI - Login, Dashboard, RCIInput

  • Improve UI design for Login, Dashboard page, and RCIInput which are relatively set.
  • Implement necessary css and javascript
    • Mobile first
    • Gordon branding

Auto save

  • Allow for auto saving on both RCI input and checkout use cases.
  • We tried this on reload, but it caused some weird behavior (#49) .

Photo upload not working consistently

  • Initially, the bug was that nothing seemed to be happening when photo upload is called on Safari.
  • In fixing that, the behavior has become inconsistent - when photos are uploaded and someone tries to open the modal, it will not always open on the correct picture.
  • I think this is because of the way I set the click handlers on the openModal and the index being passed.

Chrome Stay/Leave Behavior

  • On Chrome, when the site is live it was demonstrating buggy behavior when the user tries to leave the RCIInput page.

Security cleanup

  • The private key is not very secure.
  • I think we need to relocate the value of the key?

Testing

  • Implement unit tests and other testing methods
  • Cover all the use cases we have implemented thus far.

RCI generation logic

  • When a user logs in, the HomeController checks if any current RCI's exist for user's most recent room and building, as indicated by RoomAssign table
  • If no RCI exists, generate a new one.
  • If user is in an apartment, also check for a current common area RCI. If none, generate a new one.
    Note: we need to think about the case of a common area RCI for someone who moves into/out of an apartment mid-way through the semester. Do they need to fill it out again? Will one be generated for them?

Set up test data

  • Contact CTS to set up test users for different roles - apartment resident, RA, RD, admin?
  • Set up more RCIs (but once RCI generation is figured out, this would be unnecessary)

Common area signature

  • We need to figure out common area signatures on check-in and checkout.
  • We are planning to follow the current system, and provide signature fields for all residents of a given apartment.
    • To find out who is in an apartment, we will have to do a query based on who has the particular room number.

Filtering on Dashboard

  • Allow RD/RA to search for residents.
  • Filter by Room/Resident, or determine other way to filter.

Search on Dashboard broken

  • With the introduction of the UI changes, the search field on the Dashboard no longer works, due to the additional text "Checkout" and "Swap Furniture".
  • When a search is entered, a bunch of blocks that just say "Checkout" and/or "Swap Furniture" populate the dashboard, as well as the actually desired search query

Gordon Branding

  • Revisit the notion of branding, to align better with other Gordon web apps
  • See possible mock ups here

Export Fines

  • Gathers fines from db into .csv file
  • Accessed via RD's dashboard
  • To start: all RCI's for this past session. We can figure out selectivity later.
    • To get at specific session, add Session col to RCI table. Reference Session table for Session dates. Eze already wrote this code for Gordon360. ๐Ÿ™†

Custom auth filters

  • Instead of all the redirects in the controllers, we can implement custom authorization filters
  • In this issue, we should also take care of an admin auth filter, which would allow the admin to see all residents.
    • Perhaps we will want to look into more sorting options in that case? Like ability to sort by building or something? It could get overwhelming to have so many residents.
    • Admin should also be able to see past RCI's.

RCI State

First: Have an rci reflect its correct state when you click on it from the dashboard.
Second: Have some visual clue on the dashboard as to what state an rci is in.

States and what someone might see when they click on an rci from the dashboard:

RCI_UNSIGNED:

  • Resident sees: RciInput View
  • RA sees: RciInput View
  • RD sees: RciInput View

RCI_SIGNGED_BY_RES_CHECKIN

  • Resident sees: RciInput View
  • RA sees: RciInput View
  • RD sees: RciInput View

RCI_SIGNGED_BY_RA_CHECKIN

  • Resident sees: RciReviewCheckin View
  • RA sees: RciReviewCheckin View
  • RD sees: RciInput View

RCI_SIGNGED_BY_RD_CHECKIN

  • Resident sees: RciReviewCheckin View
  • RA sees: RciCheckout View
  • RD sees: RciCheckout View

RCI_SIGNED_BY_RES_CHECKOUT

  • Resident sees: RciReviewCheckout View
  • RA sees: RciCheckout View
  • RD sees: RciCheckout View

RCI_SIGNED_BY_RA_CHECKOUT

  • Resident sees: RciReviewCheckout View
  • RA sees: RciCheckout View RciReviewCheckout View
  • RD sees: RciCheckout View

RCI_COMPLETE

  • Resident sees: RciReviewCheckout View
  • RA sees: RciReviewCheckout View
  • RD sees: RciReviewCheckout View

Let me know if you disagree/ have comments/ questions etc...

Allow empty password

  • Before calling IsValidUser() in LoginController, set a null password to an empty string

Authorization

  • Research on how to do authorization
  • Add fields to JWT tokens
  • Applying authorization filters to controllers
  • Instead of applying filters, we used controller logic to determine which view gets displayed for RA and RD.

Storing Images upon RCI Input

  • Figure out how to store images

  • Image gets uploaded and shown as a thumbnail in the DOM.
  • With an AJAX call, image gets saved to server and the resulting filepath gets saved to the db in a new entry in the Damage table.

Adjust export fines spreadsheet

  • Meet with Marta to get clarification on fines vs. charges - do we want separate spreadsheets?
  • Slightly related - who should receive emails when?

Unit tests

  • Identify and implement possible unit tests for controllers
  • For many tests, this will involve updating/installing packages in the Phoenix.Tests project, as they do not automatically mirror those in Phoenix projects.

Prefill RCI

  • Dearly beloved, we are gathered here today to tackle everyone's favorite use case: PREFILL RCI's.

Checkout Subsystem

  • View - essentially same as RCIInput, with ability to add fines.
  • Accessed via button on Dashboard.
  • DB - create fines column in Damages table. Damages entered by resident during check-in will have a null value for fine. A fine that is added by RA then "deleted" by RD will be set to $0.00.
  • Signatures - both Resident and RA will sign on RA's system.
  • Later feature: add option for improper checkout on signing page.

Get HTTPS

Currently we are sending over http. This needs to change to https, stat.

Photo Upload on Checkout

  • Enable RD/RA users to upload photos when they assign a charge during checkout, in order to document what the Resident is being charged for.
  • This will look very similar to photo upload during the RCI input use cases.
  • It involve adding a new column to the Fine table, which will be something like DamageImagePath
  • Do we want an image modal for each fine? That may be excessive. Perhaps just decently sized images instead of thumbnails.

Photo compression

  • Figure out the specifics on photo size.
  • Apparently there is a limit on photos, as Adam was not able to add a picture bigger than 21 MB, but where is this set?

Site navigation

  • Improve nav bar
  • Provide ability to navigate back to Dashboard.
  • Make dropdowns consistent and aesthetically pleasing.

Generate RCI's on RA log in

  • Generate the whole building's RCI's upon the first login of any RA in the building.
  • Every time when an RA logs in, check if everyone in the building already has an RCI. If not, generate one for each of who has not had one.
  • In order to not generate duplicated RCI's, check to make sure creation date of the latest RCI is always later than the latest room RCI (of each person).

Electronic Signature on Check-in - Resident, RA, and RD

  • View - allows user to input signature and submit
  • Resident signs on their system; RA signs on RA's system; RD on RD's system
  • Once RD signs, RCIInput fields become un-editable.
  • Changes must be reflected in db - perhaps a column in RCI table that indicates SignedByResident and SignedByRA, etc. Or other method.
  • Electronic signature input will be: Gordon username; check this.
  • Investigate legal issues behind electronic signatures.

Admin

  • Create admin functionality, so that if certain users with admin privileges log in, they can:
    • All past RCI's - how to organize these? By year?
    • Edit any RCI at any time

Housecleaning

  • Move out helper functions from controllers to services
  • Remove unnecessary using statements
  • Clean up code in general - dust, mop, vacuum

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.