Code Monkey home page Code Monkey logo

adult-nominations's Introduction

Occoneechee Lodge, Order of the Arrow's Adult Nomination Portal

This is the Adult Nomination Portal used by Occoneechee Lodge. This system allows for our lodge to track adult nominations from start to finish.

Our lodge uses LodgeMaster's Induction Module to track unit elections and youth candidates. LodgeMaster does not currently allow for the tracking and processing of adult nominations. This system is a solution until LodgeMaster eventually adopts the ability to do adult nominations.

The adult nomination process begins when a unit election is sent for approval in the induction module of LodgeMaster. If a unit has at least one scout elected, an administrator will create a unit profile in this system. They'll include the unit leader's information, the date of their election, and how many scouts were elected.

Admin Dashboard

The adminstrator will then click a button to start the nomination process by sending an invitation email through the system.

The unit leader will get an email invitation with a link to a nomation dashboard. On the dashboard, it will show instructions and a button to submit nominations. The systems is able to calculate how many adult nominations are allowed based on the number of elected scouts previously entered for the unit. The system will prevent more nomations than allowed from being made.

Unit Leader Dashboard

Once the unit leader submits the nomination, an automated invitation is sent to the unit chair to review it. The unit chair's information is provided in the nomination form. The unit chair cannot create nominations but can only review and edit ones created by the unit leader. Only certain fields are editable by the unit chair.

Create Nomination

Once the unit chair approves the nomination, an automated email is sent to the selection committee. The selection committee then goes to it's own dashboard to review and approve/disapprove of the nomination. The information can be copied over to LodgeMaster by either the selection committee or a system admin.

Selection Committee Dashboard

The system used Auth0.com as the user management and role access control. Our lodge uses Auth0 for all our systems to control access and give everyone one account. Similar to ArrowID.

Features
  • User Management
  • Automated Election Results
  • Anonymous Voting
  • Unit Leader Dashboard with pre-election access
  • LodgeMaster Exporting

Technologies used:

Prerequisites
  • PHP required

    • Minimum version: 7.0
    • pdo_mysql extension required
    • Recommended to enable shell_exec
  • MySQL required

    • Version 5.6+ recommended
Components loaded via Composer that are contained in this repo
  • jQuery
    • Version 3.1
    • Pulled in via composer
  • Bootstrap
    • Version 4.4.1
  • PHP-Mailer
    • Version 6.2.0
    • Pulled in via composer
  • auth0-PHP
    • Version 7.6.1
    • Pulled in via composer
General Recommendations

Installation

Clone the Repository

$ git clone https://github.com/Lodge104/adult-nominations-auth0.git

Install Unit Elections Database

Find the unitelections.sql file in the root of this repository and import it into your MySQL database. This will create a new database called elections. This will keep your data seperate from user management data.

Then find the unitelections-info-sample.php file and rename it to unitelections-info.php leaving it in the site's root. Change the values within the file to match the elections database you just created.

adult-nominations's People

Contributors

nranderson avatar

Watchers

 avatar  avatar

adult-nominations's Issues

Add Twilio SMS Alerts

There is currently an issue with unit leaders not realizing they can submit nominations. The lodge has a Twilio account with credits. The idea is to add SMS alerts sent to the unit leaders. This will guarantee they know about nominations. Also should add alerts for the selection committee.

[Feature] Scoutmaster Exception

Is your feature request related to a problem? Please describe.
Currently, scoutmasters are considered apart of the 2/3 rule. They need to be allowed one extra just for a scoutmaster in addition to the usual allotment.

Describe the solution you'd like
Have a distinct button that specifies Scoutmaster nominations separate from the normal button. Add a new column in the database to indicate if the nomination is a scoutmaster nomination. Set the button to disappear after that one has been used.

Describe alternatives you've considered
The other option is to change the position field to be a dropdown and set the original button to ignore a nomination with the label scoutmaster. The issue is that it would be near impossible to make a unit add the scoutmaster first before the button disappears because they used up their nominations.

[Feature] Time Stamp Each Step

Is your feature request related to a problem? Please describe.
Each action does not currently record time stamps so we do not know when each step is completed.

Describe the solution you'd like
Add a timestamp on the dashboard.

Update add-nomination.php security

The unit leader dashboard has a function that removes the create nomination button after their allotted nominations have been submitted but I want to update the create nomination page to have the same function. Someone who knows the URL could get past the first function pretty easily and create more nominations.

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.