Coder Social home page Coder Social logo

ifmeorg / ifme Goto Github PK

View Code? Open in Web Editor NEW
1.4K 1.4K 729.0 83.35 MB

Free, open source mental health communication web app to share experiences with loved ones

Home Page: http://www.if-me.org/

License: GNU Affero General Public License v3.0

Ruby 62.31% JavaScript 25.06% HTML 6.26% Shell 0.19% Dockerfile 0.05% SCSS 6.13% Procfile 0.01%
capybara community-driven flow free-software hacktoberfest html i18n javascript jest mental-health rails react react-testing-library rspec ruby ruby-on-rails scss social-impact storybook webpack

ifme's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ifme's Issues

Reporting abuse and harassment, blocking allies

There needs to be a feature in place for doing so and a moderation system for that

Requirements

  • Being able to report a user by clicking a link from their profile or from a comment
  • When that happens, that data is saved to a new table in the database (include the reportee user id and reported user id and an optional comments column)
  • You would have to create the ability to make a User an admin account, I would use column as a flag in the db for that.
  • Any “admin” user and can go in and open a panel and block users
    • Admin users also see the emails of the users, so that they can email them for any follow-up
    • Make the link to this dashboard obvious in the header. I suggest maybe a smaller header above the current one that appears just for admin users
  • Blocking users entails not being able to sign into their account and getting an email and message on the site that says their account has been blocked for violating Terms and Conditions (that is currently being worked on but mention it anyways :P)
  • We don’t need to delete the account, so again set a column as a flag for the "block" state

For now, the only way you can add someone as an admin is through rails console. We don't need a UI for that. Definitely add documentation on how to do that in the README.

Treatment and exercises

Posts on treatment and exercises to improve a user's condition
Tied to a specific categories and triggers
Users are able to "adopt" strategies from their allies and add them to their triggers.

Creating new triggers/navigating through new forms

When adding a new trigger, if a category doesn't exist that fits the topic, the user cannot make one, however, they may make new strategies if one doesn't exist that fits their needs.

Navigating to the "create a strategy" page, deletes anything written in the trigger form. The user can also add new categories from this form. Again, navigating to the category form deletes any progress on the "strategies" form. Additionally, sometimes navigating forward, such as from the Triggers form to the hyperlink "Anxious" in the moods dropdown, and then navigating back, causes the form to freeze.

There are a few solutions I can think of:
simplest: open these links in a new tab, which preserves the old forms.
medium -- for moods: shows these descriptions in a modal/tool-tip.
medium -- for forms, going back and forward preserves the content. I actually thought this was a default so I wonder how to enable it.

Privacy Policy

I'm currently working on the privacy policy and am looking for help to write it!
Things we want to outline:

  • What data is being collected
  • How the data will be used
  • How the data will be protected in all circumstances

more user-friendly in terms of viewings

currently the allies who are able to view your posts are all adjusted manually. this should be done automatically and users should be able to configure if they dont want certain or any users to see their post.

Improve UX in various forms

The UX could be sooo much more engaging. Various people can work on this!

These are the most critical areas to address (in order of importance)

  • Triggers
  • Support groups
  • Medications
  • Strategies

Use cases and HIPAA compliance?

Hey I'm currently in therapy after years of homelessness and mental illness and since I'm interested in technology, my therapist and I have been talking about how we might be able to include technology in our sessions. I've brought my laptop in and showed her cool stuff like Github, Cloud9, IBM's Bluemix, and Trello and I plan on showing her If Me in our next session, but at first glance I'm assuming she'll see it mostly as a cool idea at this point but maybe even yet another software she'll have to deal with.

So how can she see it as something we need to be using right away?

Anyway, personally, and as a mental heath patient, I can't stand talking about my triggers and moods, but the strategies and groups sections interest to me. I would love to click on strategies and see proven strategies for overcoming addiction, or getting out of homelessness, or depression, or etc etc and then be able to network with people and talk about it with both peers and professionals in the session. Something like like a virtual "crisis house" with advanced technology would be really cool.

Also, are you guys HIPAA compliant? That's a huge issue to us and a big reason why we couldn't use something like Google Docs because they track all your keywords and browsing history and whatnot and sell it to marketers and advertising companies. So, we're talking about using military grade encryption to cover our sessions.

Anyway If Me looks cool. I may end up contributing in some fashion and hope to hear back from you!

  • Chris

Allyship seeds cannot be created

Allyship seeds cannot be created after running rake db:seed and/or rake db:setup

After putting debug statements in seeds.rb, the error message is coming from the different_users validation in Allyship.rb, which makes no sense because the user ids used are different and non-nil

@wdhorton

strategies/new won't load when using Google Oauth

screen shot 2015-12-05 at 1 44 04 pm

I get this page when I got to strategies/new when logged in with my Google account. The error on my server is this:

ActionView::Template::Error (undefined method 'name' for nil:NilClass):
44:


45: <% Category.where(:userid => current_user.id).all.each do |item| %>
46: <%= f.check_box(:viewers, {:multiple => true, :checked => @strategy.viewers.include?(item)}, item, nil) %>
47: <%= User.where(:id => item).first.name %>

48: <% end %>
49:

50:
app/views/strategies/_form.html.erb:47:in 'block (2 levels) in _app_views_strategies__form_html_erb__4453707060243933365_70155494022380'
app/views/strategies/_form.html.erb:45:in 'block in _app_views_strategies__form_html_erb__4453707060243933365_70155494022380'
app/views/strategies/_form.html.erb:1:in '_app_views_strategies__form_html_erb__4453707060243933365_70155494022380'
app/views/strategies/new.html.erb:1:in '_app_views_strategies_new_html_erb___3652141696081662668_70155428362280'

It appears that when using Oauth, User.where(:id => item).first just returns nil.

UML Diagrams for Models

I need to create UML diagrams for the existing models. Anyone else who is adding a model should do the same. It will make it easier for people to decipher the database schema.

Research in psychology?

Broadly speaking, what research in psychology might help provide ideas / give implicit suggestions about how to improve the design & functionality of ifme?

Notes from UX Report

Huge thanks to the super talented Tess Gadwa for writing a usability audit on if me. To view it see: https://www.dropbox.com/s/5zftbyt3jrdfxsv/ux-report.if-me.pdf?dl=0

The following bullets are the most important points we should focus on:

  • Better privacy policy, have someone with a legal background take a look at it
  • Improving storytelling with Triggers feature with better writing cues, audio, and images
  • Think about users who are are using the app for support primarily vs. users who are using the app to support others primarily

Better error pages

Create better 404, 422, and 500 pages that match the UI and are more helpful to the user. Right now, they are pages auto-generated by Rails.

"Please fill out the marked fields! " not being highlighted for fields with no labels

Example:
Categories > New Category > Create Category without filling out fields
In this example, name is a mandatory field, but no label is being used so it isn't being highlighted.

Fix:
We don't want to add labels, so we need a way to highlight the field when it needs to be filled out. However, right now when you enter text in a field, the border turns red. So perhaps change this normal behaviour to green, and highlight the field as red when it needs to be filled.

A similar bug exists in Medications as well

Thinking about different user personas

Our primary focus has been creating tools for people looking for support. We should also enhance the experience for people using the app primarily to support others. Supporters can use all the tools supportees can use.

However we should provide recommendations on what to use for supporters. Should we consider the supporter/supportee persona in user onboarding? @jeanieshark

Application controller / application.html.erb refactoring thoughts

Some principles when writing code are the Law of Demeter and SOLID. If you're interested, I'd suggest reading the blurbs about them.

Basically, programming lives by the concept that no single function or class should know, or do, too much. At the moment, the taxonomies function violates that bit.

Similarly, the application.html.erb has many long conditional chains to determine what to render.

We can actually refactor both of these things so that 1) the controllers tell the views what title and contents to render, and 2) the models take care of their pluralization (which, I think though I'm not sure, is the main function of the taxonomies methods).

Anyway, I wanted to log an issue while I tinkered, so if there needs to be conversation about it, there can be.

Putting string labels in en.yml

Ideally, string labels (used in forms, headings, etc.) should be placed in config file so that we can easily modify things in the future. Go through all of the strings being used in the various views and put them in en.yml

Improve flow of adding categories and moods to triggers

Creating categories, moods, and triggers feels like a redundant process. We should combine creating categories and moods while writing triggers (also giving the option for users to add descriptions and manage all categories and moods in one place)

Code of Conduct

We should have a code of conduct for team communication (particularly on Slack).

Time and date picker broken in Group Meetings

To get to group meetings:

  • Sign in
  • Click Groups
  • Create a Group or click on an existing one
  • Create a Meeting (clicking plus sign to the right of Group name)

screen shot 2015-11-15 at 11 57 21 am

Clicking on the date and time fields should open a jQuery UI picker, but it is not working

Reproduced using Firefox

GUI issue: Nav bar not showing 'ifme' user section

Using Chrome or Firefox, and the dev environment on my own machine (using a fork from today), I'm having an issue with the Nav Bar.

When I go to 0.0.0.0:3000 (home) --> Strategies --> ifme --> The Sign out, Account, Profile do not appear.

Experiences/Stories/Events Feature?

Hi,

Somewhat following my train-of-thought from #88: there doesn't currently seem to be a 'central feature' that would allow me to write about mental health experiences - with which I could apply triggers (causal relationships between categories and moods), to describe the emotional-state-transition that occurred for me during said experience.

On a somewhat related note, I'm somewhat just describing my train-of-thought when using the application in these issues and apologize if it doesn't align with how others think the application should work / how certain features should be used.

Thoughts?

Thanks,

Mark.

Profile information is globally viewable

By explicitly specifying a user ID in the query string, any user can view any other user's profile page. This also allows a user to indirectly determine the total number of if-me users.

Steps to reproduce:
Log in as any user and make a GET request of the form http://www.if-me.org/profile?userid=N, where N is any integer. If a user with ID N exists, their profile page will be returned. Otherwise, HTTP 404 is returned.

Usage of Moods (and Triggers in General)?

Hi,

In the triggers section I've started to fill out entries for moods - under the impression that moods are like emotional-states and that categories are there to, like, model some sort of causal relationship between experiences involving certain people/places/objects and emotional-state-transitions. However, in the current version of the application, I can't seem to be able to model theses causal relationship between people/places/objects and moods (based on my "intuition" / impression of how said features should be used).

Thoughts, on how the functionality of the triggers part of the application, in general, should work / possibly be enhanced?

screenshot-www if-me org 2016-01-28 15-43-13

Thanks,

Mark.

User Onboarding: Mood Details

users should be taken through filling out details about the mood they chose in the first step of onboarding.

This includes situations that may arise when this mood happens (triggers/moments), potential ways to cope with it if it's something to be coped with, etc.

In-depth profiles

  • Bio
  • Ability to make some triggers public (like blog posts)
  • List conditions

Substances (and/versus Medications)?

Hi,

I found myself wanting to report non-prescription substances I use with the belief that they help enable control over my emotional-state, so that I can then work towards the emotional-state I'd wish to maintain/achieve.

I suppose I could add these substances under medications; but it feels a bit unnatural?

Also, rather than listing a prescribed dosage and refill, I feel like I'd want to instead list what quantity I was taking at certain time intervals (like daily), track its cost and try to measure its effectiveness inside the application (in relation to experiences and emotional-states I would be e.g. writing about with the application).

What are your thoughts on having a more general 'substance' feature, I suppose would be my question? And to integrate with the rest of the application?

screenshot-www if-me org 2016-01-28 15-32-53

Thoughts in general?

Thanks,

Mark.

Sleep, nutrition, exercise, supplement intake, meditation time, etc?

Hey,

I feel like I'd want to somehow be able to measure and log my sleep schedule, nutritional content of diet, exercise vigor & time, supplement intake, meditation time, etc. when using ifme. When poking around the app, I almost feel as though I'd like to be able to compare these measures/log to my mood/trigger event at a nearest moment in time and derive strategies from there. Derive strategies and then hopefully be able to determine how effective they are/adjust them in sort of a circular way with the data/support. There's no way to really have these measures/logs in ifme right now, is there (and use them approximately as suggested)?

Just an idea I had when thinking about how I would want to use the app. Thoughts?

Enchancements to news feed

  • Updates in real time
  • Sorting news by categories
    Can be found in app/views/pages/home.html.erb (view) app/controllers/pages_controller.rb (controller, look at home def)

Specify ruby version used for the project

I would recommend indicating somewhere what version of ruby you are using for development of this project, so that new contributors know what to set up and to minimize any weirdness that could be caused by people using different versions.

I think you can enforce this programmatically with a .ruby-version file. At a minimum, maybe specify it in the README.

allies table is hard to work with

Determining if two users are allies currently requires searching two lists. Accessing each list requires multiple dereferences, which need to be checked for null. Making allies a junction table would make working with this table much easier, and is required to solve #11 cleanly.

Support groups

Create support groups from allies use them to tag triggers and strategies.

Adding date/timepicker

I am currently working on adding a timepicker and a calender to the meetings' feature.

User Onboarding: Mood Inventory

Create a way where users can identify commonly occurring moods/emotions that will later populate on a landing page.

Users should be able to choose up to 3.

Making the triggers feature more engaging

The goal the triggers feature is to tell stories about an event, moment, or experience that played an affect on your mental health (whether positive or negative)

Currently the feature looks like this:
screen shot 2015-11-15 at 10 58 00 am

In order to get the user to share more details, it's important to have useful writing prompts. We need a way to cater writing prompts based on a user's needs.

We would like a feature to screen what a user's needs are? Perhaps a short survey they can fill out when they first use the app to figure out what they would want to get out of the Triggers feature OR options in the Trigger feature to determine what type of writing prompts they would want to see.

e.g.

  • Talking about negative moods in relation to triggers
  • Talking about positive moods in relation to triggers
  • Talking about any type of mood in relation to triggers
  • Focusing more on quantifying experiences rather than reflecting on them

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.