Giter Club home page Giter Club logo

thriver's Introduction

Build Status

Thriver

Thriver is a Content Management System for Nonprofit Organizations. Thriver helps staff communicate and engage with the community, provide education and services to its membership, accept payments and donations, and automate the more painful aspects of nonprofit work. Thriver also helps the Board of Directors train and recruit, remain compliant on annual requirements, and retain a high-level view of the organization's activities and its alignment with organizational strategy.

Getting Started

To contribute, you'll need the Meteor platform.

curl https://install.meteor.com/ | sh
git clone https://github.com/enove/Thriver.git
cd Thriver
meteor npm install
meteor

Then navigate your web browser to http://localhost:3000/

How can I help?

Thriver needs a lot of help. The architecture needs to be re-evaluated and modified per best practices. Furthermore, the platform was initially developed for a single institution. Some parts of the platform still need to be abstracted.

An incomplete list of major work that needs help:

  • Abstraction from WCASA
  • Architectural redesign
  • Designing a system for applying organizational brand (fonts, colors, whitespace, etc)
  • Better authorization mechanisms, esp. RBAC
  • Technical writing and project management (deployment guides for non-techies, etc)
  • Better package/extension support
  • Better administration interface
  • Basically all board-related visions still need to be programmed
  • Init scripts for new contributors and users (right now the platform doesn't work without importing a sample db)
  • A testing framework, including unit and integration testing

We use the shared repository model of the Github Flow but may switch to the fork-and-pull model in the near future.

License

Thriver is under the MIT License.

Copyright 2017 Micah Henning

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

thriver's People

Contributors

eoghantest avatar et-mc avatar micchickenburger avatar partisan-bobryk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

thriver's Issues

Generic Notification Links

Generic notifications should link to their hrefs somehow. For instance, if an action alert is added, the user should be able to click the corresponding notification to view the action alert. The notification already receives this information in the url attribute; we just need the front-end to inform the user somehow that it's clickable.

Require Original Art Asset for Logos

Currently the logo file being used was doctored by me because the PDF was rendering some errors in transparency.

Can we get a copy of all logo asset files in either an AI or EPS file format?

What We Do Section missing some formatting

In the What We Do section, it looks like <h3> elements have no top margin, and <li> elements have no bullet point. That's what's causing the formatting to look a bit off. In reality, some of the sections are actually well-formed from markdown, such as the Advocacy page; it just doesn't look like it because of some missing styles.

Donate section doesn't resize

The donate section can be too large for some displays, requiring a scroll. I don't think this should be the case.

Create an easy editor for section content

Staff members aren't very keen on writing markdown for sections. Help them out with some compromised interface that allows for some WYSIWYG elements without causing additions of poor code and without incurring a buggy and unpredictable interface.

React to location bar changes

If the hash value in the URI in the browser's location bar changes, prevent the page from reloading and smooth scroll to the respective location.

Email Verification

When a user's email address gets verified by them following a link sent to them in an email, we need to somehow convey to the user that the email has been verified successfully.

Disabled buttons should be visibly disabled

CSS rules should be in place for letting the user know that a button is disabled and may not be clicked. This includes the following:

<button>
<input type="submit" />

The following templates may contain disabled buttons at any given time:

  • register
  • login
  • profile
  • donate

Notifications icon doesn't show numbers

Just shows the exclamation icon, hex ๏ช I think it should show the number of notifications, unless you disagree. If so, I can add a dataset property for an ::after psuedo-element, or connect the number in the template directly.

Fix smooth scroll jitter

At times, clicking a link will cause a stutter before the smooth scroll appears. It's almost as if the page relocates to that location of the destination, then back in less than half a second before beginning the smooth scroll.

Add Print Support

CSS required for print in addition to singular print icon styles.

Modularize "template components"

Template components, like the Donate, work, callout, and community sections should be modularized into their own folders. In that way they may eventually register themselves to new API features, which I anticipate will be required in order for the "Complete Location and History Support" milestone to complete.

Create NoSLB API

Create an API for NoSLB that will allow features to register methods without worrying about race conditions.

Donation Error Messages

screen shot 2015-12-26 at 10 06 19 pm

Fields with errors now highlight after form submission; however, they look terrible. The color of the inset box shadow on the error fields should reflect the brand. Furthermore, the error messages are ::after pseudo elements on error field parent nodes since input elements cannot contain pseudo elements and I think error messages should be adequately presented near the problem fields. My current solution has some display problems, as you can see in the screenshot. Particularly, error messages on the expiration or cvv2 fields cover the submit button because those fields are floating. I tried to clear the float, as well as the overflow:auto; hack, but neither resolve the problem.

Email Verification Styles

When a user verifies their email address, a popup appears showing their email has been verified. We need to style this section.
screen shot 2016-03-06 at 5 59 35 pm

The section appears as the first child under <body>. Here's the markup:

<div class="accounts-dialog accounts-centered-dialog">
    Email verified.
    You are now logged in as ********@gmail.com.
    <div class="login-button" id="just-verified-dismiss-button">Dismiss</div>
</div>

Styles currently applied to the whole section:

** login_buttons.import.less:342 **
.accounts-centered-dialog {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    z-index: 1001;
    position: fixed;
    left: 50%;
    margin-left: -129px;
    top: 50%;
    margin-top: -40px;
}

** login_buttons.import.less:234 **
.accounts-dialog {
    border: 1px solid #cccccc;
    z-index: 1000;
    background: white;
    border-radius: 4px;
    padding: 8px 12px;
    margin: -8px -12px 0 -12px;
    width: 250px;
    box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.2);
    font-size: 16px;
    color: #333;
}

Styles currently applied to child "Dismiss" button:

** login_buttons.import.less:389 **
#just-verified-dismiss-button, #messages-dialog-dismiss-button {
    margin-top: 8px;
}

** login_buttons.import.less:153 **
.accounts-dialog .login-button {
    width: auto;
    margin-bottom: 4px;
}

** login_buttons.import.less:99 **
#login-buttons .login-button, .accounts-dialog .login-button {
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
    padding: 4px 8px;
    font-size: 80%;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    line-height: 1.5;
    text-align: center;
    color: #fff;
    background: #596595;
    border: 1px solid #464f75;
    border-radius: 4px;
}

** login_buttons.import.less:256 **
.accounts-dialog > * {
    line-height: 1.6;
}

** login_buttons.import.less:133 **
.accounts-dialog * {
    padding: 0;
    margin: 0;
    line-height: inherit;
    color: inherit;
    font: inherit;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

Complete 'Get Help' Utility LI click event

We need to complete the event for the 'Get Help' button in the utility navigation.
@micchickenburger , was hoping you could help.

Visible on line 55-61 in utility.js:
'click li.getHelp': closeAsides, 'click li.getHelp': function (event) { location.href='/#service-providers'; $('figure.alert').addClass('active').delay(5000).queue(function(){ $(this).removeClass("active").dequeue(); }); }

We need to scroll down the page to #service-providers and display an alert with content.
Alerts have their own module where their template can be referenced.

Cross-Browser validation

Perform cross-browser testing to ensure compatibility with:

  • IE 9, 10, 11
  • Edge
  • Firefox
  • Safari
  • Chrome

Create textBody Styles

To be used in such sections as news articles and large content editable areas such as work.

Hover effect on various input fields is inconsistent

The hover effect established by the following code does not apply to email, search, or password input fields, which can make the hover effect feel inconsistent, such as in the profile tab under Account Details.

form .styledSelect:hover, form .cvv2:hover, form input[type=text]:hover {
    background-color: #4c5d67;
}

Furthermore, disabled fields should not have a hover effect.

<input type="text" value="Text" disabled />  <!-- Don't allow user to edit -->

Improving the Navigation Page Transitions

This is something we should talk about.
Is scrolling to a section the best method?
Or could it be better if say it faded in/out?

If scrolling is the answer:
Observing a flicker of the section it is to scroll to occasionally.
Can we modify the easing of that effect?

Fixed Navigation detection is delayed

I understand we needed to implement a solution to prevent bubbling on the scroll action to detect if the fixed nav class should be added. However from an animation perspective, adding that fixed nav class right away is essential for a better UX.

Is there a way we can make that class added sooner? Perhaps on some type of "scroll initialized" function?

Require Content Verbiage for "Get Help" Alert

When user selects "Get Help" from the utility navigation: the page is to scroll to the "Providers" section. In addition to this: an alert is displayed for the user reading something such as:
"If this is an emergency please dial 911. Please use our provider locator to find the nearest available help center."

We need to acquire or create the appropriate verbiage for this alert.

Register Error Element needs to be removed from source code

Line 6 of account_register.html reads:
<p id="register-error" style="display:none;"></p>

I've added a display:none to this element temporarily.
It needs to only be only placed in the markup if error=true.
Then of course we can remove the inline style.

Alternatively it needs to have a class added to the element if error=true, that way I can hide the element unless error=true.

Log in section display issues

  1. The drop down doesn't close unless the close button is pressed. It should close automatically if the user clicks outside of the box.
  2. The drop down is hidden behind the donate section.
  3. When logged in, the close button appears only partially on top of the logged-in user's email address.

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.