playasoft / grants Goto Github PK
View Code? Open in Web Editor NEWAn online question and answer system for receiving grant funding from non-profits
License: GNU Affero General Public License v3.0
An online question and answer system for receiving grant funding from non-profits
License: GNU Affero General Public License v3.0
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.
The amount requested is important to display. It might be nice to be able to preview information about an application by clicking to expand.
If two judges accidentally ask a similar question, it would be nice if a judge could withdraw / delete their feedback.
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');
}
Judges can't see the applications in the application view.
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.
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.
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.
This should prevent duplicate questions from judges and make it easier for applicants and judges to reference the initial field.
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 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.
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.
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.
Most of the data in the application is provided in tables, the table columns should be sortable.
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.
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.
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.
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.
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
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.
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.
Admins should be able to change a user's role when viewing their profile.
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.
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:
We might ask for a clarification that is best drawn/photoed etc. Allow file in the feedback stage.
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.
Currently, the judge is sent to the application page, which isn't helpful for showing them what applications they need to judge. Return them to the dashboard.
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.
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.
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?
When creating a question, the type of answer is defined with more descriptive names ("Short Sentence" instead of "Input"), the list of questions should also use these names.
Would be useful for the budget question to force the user to enter an itemized list
When attempting to navigate to page you cannot view (http://artgrants.apogaea.com/applications/[someotherapplicationid]/review), you appear to be deauthenticated. When navigating to subsequent pages you are permitted to see, you are still logged in.
@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?
The official apogaea install should use LetsEncrypt for free HTTPS
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.
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?
This leads so a confusing user experience since the initial form requires the user to submit.
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 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).
Right now it just says "validation.hashed" in red text. Nobody understands what that means
Steps to reproduce:
Allow judges to abstain and don't score an application.
Email notifications should be sent for the following events:
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.
This makes it easier for judges to use the home page as a worklist.
The followup questions have a 255 character limit but there is no notification when they go over, leading to truncation.
After submitting an application there should be an option to un-submit an application, edit it, and resubmit.
Because questions and criteria use a checkbox to determine if they are required, the required option is not set unless the checkbox is checked. This makes it impossible to remove the "required" option once set
It would be nice to be able to search for users by name or applications by title / content.
regarding_type isn't set and blows up when submitting the feedback. Later the feedback-form also throws errors on regarding->exitst.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.