Giter Club home page Giter Club logo

homestead's Introduction

Homestead

Scrutinizer Code Quality Build Status

On-campus Housing Management

Homestead is a web-application for managing on-campus student housing.

Development Setup

  • Install phpwebsite using postgresql
  • Clone this repo into the phpwebsite/mod into an hms directory: git clone [email protected]:AppStateESS/homestead.git hms
  • Install the HMS module from the phpwebsite control panel
  • Copy mod/hms/inc/hms_defines.php and mod/hms/inc/SOAPDataOverride.php to phpwebsite/inc/
  • In the phpwebsite/inc/hms_defines.php file you just copied, change the following values to true:
    • HMS_DEBUG (causes uncaught exceptions to be echoed to the browser, instead of caught, logged, and emailed)
    • SOAP_INFO_TEST_FLAG (forces use of hard-coded student info in TestSOAP.php)
    • EMAIL_TEST_FLAG (causes emails to be logged to phpwebsite/log/email.log)
  • Install Composer
  • Install dependencies with Composer -- from inside the hms directory: ./composer.phar install
  • Install Node.js (includes npm) (Something like sudo yum install npm should work)
    • Bower
    • Use npm to install Bower: sudo npm install -g bower
    • Use Bower to install dependencies -- from inside the hms directory: bower install
    • Bower is deprecated. Use Yarn instead.
  • Setup the Postgresql Fuzzy String Matching Extensions:
    • sudo yum install postgresql-contrib
    • From the psql command line on the Homestead database: create extension FUZZYSTRMATCH;

homestead's People

Contributors

braswelldl avatar caldwellc1 avatar dwest avatar eberhardtm avatar jacobpollard avatar jlbooker avatar johnfe423 avatar kevinwilcox avatar lacymorrow avatar stardog avatar themicahmachine avatar tylercraig9332 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

homestead's Issues

Show/hide bed on assign student page

Add a link to show/hide the bed drop down on the assign student page.

The drop down needs to display the correct content no matter what state the other drop downs (hall, floor, room) are in.

Username Capitalization

There may be areas of HMS where usernames are compared in a case-sensitive manner, whether this is within the php code or a select statement that uses '=' instead of 'ILIKE'. This needs to be fixed. Particularly, when the autoassigner checks to see if someone had already been assigned, it is case-sensitive.

Also, the application should save all usernames as lowercase. Really there should never be any uppercase letters whatsoever in a username, but it's best to be able to accept bad data, so in the application and in all comparisons, strtolower should be used.

Overhaul HMS Letters

Needs different letters to be sent out to different groups:[[BR]]

  • Newly assigned student; first mailing to them[[BR]]
  • Student who has already been assigned and is moving somewhere else[[BR]]
  • Student who has already been assigned and is NOT moving but is getting a new room

For printing, the above should be sorted by last name, and give the option to split into groups of freshmen/transfer/continuing.

The letters should be editable, with an option to preview changes.

Fix and Update Auto-assigner

Make it work with the new hall structure.

Make it handle all current situations as well as filling in individual empty beds appropriately

Add assignment pager to 'edit room' screen

Add an assignment pager to the HMS_Assignment class, and call it from the show_edit_room function.

The assignment pager should have links for 'Reassign' and 'Unassign' for each student assigned to the room.

Get rid of HMS_Forms

Need to separate the code in HMS_Forms out into the individual classes it belongs in.

Add verbage to RLC application.

Need to app "You're applying for an RLC." and "What is an RLC?" links and verbage saying that applying for an RLC will limit the selection of roommates to only those in the same RLC.

Need to also add some verbage to the initial housing app and the main menu with links such as "What is an RLC?".

Select bed drop downs broken

The select bed drop downs don't activate/deactivate properly one a bed is selected but then a hall/floor/room is changed.

Banner Activity Should Be Logged

We have a db.log of every database transaction that takes place; we also need a soap.log that shows every SOAP transaction that takes place, including results, whether successful or not. This can be done within HMS_SOAP.php, and the log file needs to be more or less human-readable with definitely human-readable timestamps.

Change the link to view RLC application.

The link to view a full RLC application in the RLC application pager is not intuitive.

Need to change this link so it is more obvious how to view an individual student's RLC app.

Student Search

  • Fix "Assigned To" to display CURRENT TERM'S ASSIGNMENT
  • Add link to create assignment for an unassigned student, or to move them if they are assigned (again only in current term)

Banner Errors During Application Are Not Logged

Any banner errors during the Application process are thrown out. $result gets set to the output of report_application_received in line 180 of HMS_Application, but then is tested with PEAR::isError, which doesn't tell us anything, as a nonzero integer reply is not a PEAR_Error. What needs to happen is thus:

  1. Go ahead and record the application in our table
  2. Record the error in the log file that will be created in trac#56
  3. Send someone important (ie, [email protected], or perhaps [email protected]) an email saying that it screwed up

A banner failure causes a failure during assignment or removal on the administrative side, because they are part of the staff and are aware of how things work around here. A banner failure CANNOT cause a failure to apply, as the applicant is NOT aware of how things work around here, it will just piss them off, and chances are it will happen because of something stupid. If we can quietly resolve the problem on our end, so much the better.

Easy Assignability Testing

We need two methods to test for assignability on a bed:

bed->can_assign($gender)
This will test whether someone can be assigned there through the actions of the administrative interface. $gender must match the bed gender (and all other related checks) and the bed and all nodes on the path to its residence hall should all be marked online.

bed->can_autoassign($gender)
This tests whether someone can be assigned by the autoassigner. In addition to the above checks, if any of the reserved (medical, etc) flags are set, return false.

Roommate confirmation improvement

Implement a captcha and multiple "are you sure" screens before a roommate is confirmed (when a user clicks a link from the confirmation request email).

Applications are Broken

Firstly, it said I hadn't filled out an application, when I had.

Secondly, I couldn't create a new application due to some key violation. I suspect this is related to #1, but it needs to be looked into.

Botch Roommate support in Auto-Assigner

Comment out all the nice, clean stuff that's in there, and replace it with hacks on the new "roommate_hack" table. Basically: try the pair, and if it doesn't work, too bad.

Optimize HMS_SOAP & Student classes.

Modify the HMS_Student class to call HMS_SOAP::get_student_info() only once (when the Student object is created) and parse all the data accordingly.

Additionally, the HMS_Student object should pull from a yet-to-exist proxy class, which pulls its data from a local database populated by the Banner dump.

ged_free_bed($gender)

The Autoassigner needs a method for getting an unassigned, autoassignable bed from anywhere in the active semester's bedfile. There may need to be a second (optional) parameter to say that extra steps should be taken to ensure that this bed is random

Do not allow room gender change if someone is assigned.

Do not allow a room's gender to change if there is anyone assigned to that room.

Additionally, the halls, floors, and rooms, need to make sure that their genders are consistent when changing the gender at any level higher than the 'room' level.

Get Hall Overview

Fix to work with the new layout; CONSIDER pretty graphics, although this can be put off for time.

Suite Editing

Rework suite editing to work with the new hall structure.

Need at least the ability to change the gender of a suite and view the rooms in a suite.

Should be linked to from the 'edit room' screen.

Add event define for >25 yr olds.

Add an event define for students who log in and are shown the >25 yrs old message. Log this event and redirect the student to the mountaineer apartments page.

Bed Pager in Edit Room

Fix the "assignment pager" currently shown when editing a room.

It should list the beds, the person currently assigned (or ), and whether or not the bed is an RA bed.

Show (RA) and M/F in drop downs on assign student

The drop downs for room and floor should show a M/F.

The floor drop down should show the M/F if the floor is of a single gender.
The room drop down should show the M/F if the floor is coed.

The room and bed drop downs should show (RA) if the room/bed is an RA room/bed.

Check for 'entry_term' in 'terms' table at login.

The login code needs to check if the student's 'entry_term' from banner exists in the 'hms_term' table.

If so, everything is fine. If not, the student needs to be shown the 'it's too early' message.

PHP 5 / PostgreSQL 8 Compatibility

Right now, there are a few issues running HMS under PHP 5, and maybe some PostgreSQL 8 problems. We basically need to go over it with a fine-toothed comb and make sure it will work with these before the migration happens.

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.