Giter VIP home page Giter VIP logo

grants's People

Contributors

itsrachelfish avatar katlyn-thomas avatar kelsh avatar marcj303 avatar meleeman01 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grants's Issues

Countdown timer on the last day

During the last 24 hours or some period before the end of applications being submitted there should be a visible indicator of when submissions will be closed.

Refactor ownersip / authorization

There's some boilerplate I've noticed in controllers that should be refactored. Many controllers need to determine if the current user is the creator of a model object or has permission to view / edit it. This logic could probably be handled by a custom middleware with a couple parameters.

// Did the current user create this application?
if($application->user->id != Auth::user()->id)
{
    $request->session()->flash('error', 'Only the person who created an application may change it.');
    return redirect('/login');
}

budget check error doesn't work in application screen

If the user updates the budget amount on the application screen the error isn't shown if it is out of range.

In the ApplicationController, updateApplication() checks the amount and should return the error, but the ajax doesn't seem to catch it.

The original value is not updated. This confused an applicant as they thought they couldn't update the budget amount. Their update was out of range, but they didn't get a message.

Clarify file upload interface

It seems that some users have problems with the file uploads. Something about the interface isn't clear. I had two applicants email me their files because they couldn't do it. The description was nebulous, but this has happened to a few people.

Checkboxes and dropdowns lose their values

When a submitted form is prevented by form validation (for example on the question create page), checkboxes and dropdowns have their values reset.

Checkboxes that are checked should remain checked, and dropdowns should have their old value selected.

Pagination

I'm not sure what the best way to do pagination is in Laravel, but I'm sure it's easy. We'll need pagination for the list of users and list of applications pages especially.

Add export feature

Add an export for the application and scores views to be imported to a spreadsheet. This is helpful for scoring meetings as well as individual notes etc.

Only allow admins to approve / deny

Currently the approve / deny options appear for all judges when the applications have been reviewed by at least half of all the judges. This should be changed to only appear for admins and the permissions will need to be updated as well.

A score is not saved if the user accepts the default

If the user doesn't click in each criteria scoring form, a score is never recorded for that criteria. This is common that the user accepts the default value displayed.

A default score should be created for each criteria if the ajax doesn't save/create it.

Sorting columns

Most of the data in the application is provided in tables, the table columns should be sortable.

Notification when logged out for inactivity

When a user is logged out for inactivity, there is no indication of this until they refresh the page. This can be especially confusing when a user tries to update their application (which fails, but no error message is displayed) and all of their answers are lost when they go to review.

Is the 'status' option for questions necessary?

The original idea was that questions could belong to specific statuses and only appear to users / judges when an application was in that specific status. However, this would make the code for displaying questions and updating applications much more complicated. I'm wondering if this feature would actually be useful in the future or should be removed.

Add budget to applications table

In the first application creation screen there should be an option to specify the budget. This option should be validated based against the minimum / maximum round options.

Password reset

There is currently no way to recover a forgotten password. This is especially bad because there are currently no confirmation emails sent when accounts are registered, so it's easy for people to forget what username or email they used when registering.

Unhelpful error pages when logged out

If you're on a protected page (for example, editing your own application) you will see a 404 page if your session times out. If you try to save an answer, upload a new document, or refresh the page when logged out, you'll see this 404 page:

Whoops, looks like something went wrong.
1/1 MethodNotAllowedHttpException in RouteCollection.php line 219

You should be redirected to the login page instead

AJAX autosave should detect errors

Currently the AJAX autosave always says "Saved!" even if there was an error (the user is logged out, etc)

The autosave code should make sure that the request was actually successful.

General uploads

In addition to being able to upload files in response to specific questions, it might be necessary that users can also upload supporting files for their application. For example, if a user needs to upload a signed contract.

Add Grant round controls

Add controls for different grant rounds.
Admin should be able to create a grant round, set dates for users to apply and for judges to judge (prevent changes pre/post dates), set the grant round amount etc.

Landing page could automatically show current or upcoming grant round information and statistics.

Users/judges dashboard should show the current grant round applications.

Add ability for a user to retract/withdraw an application

Some users applied before the deadline and submitted their application and then could not edit it prior to the deadline. A feature to retract an application would be useful, so we don't get multiple submissions for the same project to judge. A user may wish to withdraw during the scoring period (they can't do the project or have any other issue that requires them to withdraw). That would be important to know before final judging and project acceptance.

I think that the following would work:

  1. retract button available to user once they submit
  2. retract put the application back in the new state, removes any scores, ( not certain feedback should be kept or not.)
  3. user resubmits application after making changes (if submissions are allowed).

Issue when saving datetime

It seems like there is an issue when dates are saved (on the production server at least). The created date is being saved in MST but the modified date is being saved in UTC. This might be because the MySQL server is configured to use MST but laravel is configured to use UTC. The created_at column is updated by using a default value in the database where updated_at is actually generated by Laravel.

This might be a common / known issue in Laravel, I think it would be worth looking in the documentation or Laravel support forums.

User list

Right now the user list page is just placeholder text. This page should be a list of users in a table, same as the questions page.

Better handling for large files

Right now there's an obscure error message when an uploaded file is too large. We should mention somewhere on the page what the maximum upload size is and figure out how to tell users a more helpful message when their file goes over the limit.

User profiles

Users should be able to view and edit their own profiles where they can add additional information about themselves. Real name, contact information, etc.

We'll need to figure out what information is most useful?

Add list input type

Would be useful for the budget question to force the user to enter an itemized list

Relicense project

@marcj303 I have been considering changing the license of the this project from MIT to AGPL. The AGPL license would ensure anyone who uses this software on their own website has to share their changes back to the burner community. As a contributor to this project, how do you feel about that?

Set up HTTPS

The official apogaea install should use LetsEncrypt for free HTTPS

Hide old applications by default

Applications older than the most recent round should be hidden by default. There should be a button / check box on the applications list to toggle viewing old applications.

Question ordering

Admins should be able to reorder questions from the questions list page, and maybe be able to edit a number from the edit question page?

Add numeric type field

A new question type should be added for numeric answers. These answers would need server-side validation and maybe some client-side stuff to automatically format the number nicely?

Add funds field to application variables

Add requested funds as an application field. This will make it easier to sort and find the funds for an application instead of trying to find it in the questions fields. We can also validate the funds requested are below the limits for that round (once round data is added).

Email notifications

Email notifications should be sent for the following events:

  • To user when account is registered
  • To user when application is accepted or rejected
  • To user when feedback is requested (queued)
  • To judges when feedback is answered (queued)

It might also be helpful to add an option to only send emails at specific times? Like when an application is accepted / denied, instead of sending an email to a user immediately as approve is clocked.

Search feature

It would be nice to be able to search for users by name or applications by title / content.

Judges general feedback is broken

regarding_type isn't set and blows up when submitting the feedback. Later the feedback-form also throws errors on regarding->exitst.

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.