Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

[Non-Issue: Discussion] Status of BetterMeans #18

Open
strich opened this Issue · 10 comments

5 participants

Scott Richmond trbryant Robert Fletcher jsilence ajsilvia
Scott Richmond

Hi,

Apologies for putting this here, but there doesn't appear to be any way to get into touch with a maintainers as most of the project has been torn down.

Where is BetterMeans at now? I tried to get it up and running a few months ago and ran into too many errors just getting it up and assumed it was long abandoned.

trbryant

I'm running it on my server. It took a while because I wasn't familiar with Ruby but it's up and running. There is activity on github and so as far as I can tell the product is still being actively developed.

Scott Richmond

Hrm there is too! Thanks for replying trbryant - For what purpose do you current use Bettermeans?

I'd also love to know if there is any roadmap for development.

trbryant
Robert Fletcher

Sorry for not responding sooner. Turns out I wasn't watching the project. At any rate, I'm sole maintainer at the moment. For now I'm just polishing up the code base. Writing specs, refactoring, eventually updating to Rails 3. It's going to be slow going, as it's mostly a hobby for me. I picked it up because nobody else was actively working on it. Totally open to pull requests if you want to lend a hand.

Also, if you need help getting it set up, let me know. I'll see if I can help.

jsilence

While trying to set up a test instance of bettermeans I ran into a couple of obstacles. This post is not meant to be bashing or flaming, but as a description of the starting experience of someone who'd like to get into it. I really like the basic ideas behind the task management and would like to use the system with a group of spatial planners in the city where I live.
So thank you mockdeep for all the work you have done, the ideas are great and frontend looks awsome.

Setting up Ruby on Rails can be a drag. Especially when you're a novice. This project has a lot of dependencies, resulting in a bumpy setup starting at "bundle install". The database definitions use three different database systems, MySQL, Postgresql and Sqlite3, thus one needs development libraries for all three databases. Rubygems can not install these dependencies for you, so this quickly becomes a tedious try and error game fighting the package dragon.

Suggestion:

  • use only one database in database.yml, maybe sqlite3, because that seems to be the lightest. Include the definitions for the other databases and comment them out. Same for the Gemfile.
  • A brief summary of all the required libraries for at least one sample Linux OS. I'm a Debian guy, so I'd prefer aptitude hints on what to install before invoking bundle.

capybara-webkit is used for testing. It depends on qt4 which some people might not want to install. Tests are mainly interresting for the developers who are working on the code. Less interresting for those who simply want to run the software.
Suggestion: refactoring the tests into a git subrepository if that is possible. Or somehow make the tests and thus this dependency optional, mentioning it in the README how to activate it.

rmagick has a couple of dependencies as well. After some digging I figure that "sudo apt-get install libmagickwand-dev" helps.

There is no hint as to which Ruby version is preferred or known to work. Ruby 1.8 seems to do just fine. On Debian I had to symlink ruby1.8 to ruby to get going. Suggestion: A "Prerequisites" Section in the README with this information.

The rake tasks gave me Postgresql errors regarding the authentication against the database. It took me a while to figure it out since I am not too familiar with Postgresql. In the end I had to create a database user with superuser privileges before letting rake set up the database.
Suggestion: Document how to set up the required user in Postgresql (Prerequisites).

There seems to be an encoding issue with some installs of Postgresql. Fixed that using this article:
http://jacobian.org/writing/pg-encoding-ubuntu/

Then I did not know how to actually start the Rails application. Not too difficult to figure it out, but a simple one liner in the README would have saved me from the Google search.

Wheee, I finally had the application running. Sweet lord, I was almost on the brink of giving up and ditching the software altogether. Now... create an account. Bäm! Application throws a runtime error. From the stacktrace one can deduct that there are no entries in the plans table. I manually created one entry in the plans table to fix this.

Suggestion:

  • Include the plans in the database.

Registration email does not get sent. Digging down to email.yml.sample and fiddling around with it. Can not use the same usernames, as they are already taken. Trashing the database for a fresh start. Somehow the registration confirmation email still does not get through. Started digging into the database and manually updated my user record to make it registered. Discovered that there is no default admin account.

Suggestion:

  • set the smtp server to localhost without authentication in the email.yml.sample. On my testing machines I usually have at least some local email delivery. Documentation in the Prerequisites section.
  • automaticall create a default admin account with a default admin password. Document in README.
  • Document the URL to the admin interface in the README.

So now I have user and start digging around. Trying to create a new workstream. App throws Runtime Error. Apparently there are some role definitions missing.

This is where I stand right now. The experience so far has been terrible, but I'm still resolved to get is up and running. Cloned the repo and will start working on the suggestions. Will issue pull requests.

As said, this is not meant to be a flame. Simply an impression on how a new user experiences the software.

Best regards,

-jsilence

Robert Fletcher

Hey @jsilence. No worries on the criticism. I feel your pain. I've actually done no work feature-wise on the code base. Since I've come on I've focused on simply cleaning up the code, fixing a couple bugs and writing specs. Have a looksee here if you like: https://github.com/Bettermeans/bettermeans/commits/master

Some of your complaints can be resolved by a better understanding of how Rails works, others by a better understanding of the code base, more by making the code base more sensible and pretty much all of which could be better documented. I've done much of this so many times on different projects that I don't even think about it much anymore. At any rate, here's a point-by-point response, which I will probably copy much of into the readme (unless you get to it first!).

  1. Databases and dependencies

    I've definitely gone through the headache of setting up Rails apps before. Here's my personal setup script, which covers pretty much every dependency you'll ever need for a Rails project (under the editors/ides/build tools section), as well as how to configure Postgres in the comments. I'd much prefer to only have one database in the Gemfile, too, though I'd probably pick Postgres, since SQLite3 isn't great for scalable production services, and it's best to have the same database locally as you would have in production.

  2. capybara-webkit

    This is also handled in my setup script, but if you're not interested in being able to run the tests then you can just install the production dependences with bundle install --without development test. No need to deal with the confusion of git sub-repos. I've been through that before and it is not fun.

  3. RMagick

    Also in the setup script, same as you figured out. We should probably document these things for Mac as well, though I think it can all be handled with homebrew instead.

  4. Ruby version

    One reference point for this is the .rvmrc file in the root of the project. A lot of projects have them these days, so it might be a good place to start when you need to figure out what version of Ruby you need. I recommend using rvm or rbenv to set up Ruby on your machine, since the version in the Debian repositories won't necessarily be kept up to date, and often times you want a specific patch level or version of Ruby for each different project. I think we can also add the Ruby version to the Gemfile, so I'll do that soon. Something else to note is that you can guess the Ruby version based on the Rails version. I don't think Rails 2 is even compatible with Ruby 1.9, so you're generally safe guessing 1.8.7.

  5. Setting up PostgreSQL

    In this case, you'll also need to set up the bettermeans user with sudo -u postgres createuser bettermeans, though I guess you've already figured that part out.

    I haven't run into the encoding issue, but I'll keep it in mind if there's a situation in the future.

  6. Getting the application up and running

    For better or worse, there are a number of records that need to be in the database in order for the app to run properly. I think all of these are in the db/seeds.rb file, which you can execute with rake db:seed. Hopefully, in the future this will become unnecessary.

  7. Email

    I'm shamefully ignorant on email, so I'll defer to you on that front. The admin user is, however, also created in the db/seeds.rb file. I got bitten by that writing some tests, so a (hopefully temporary) hack was to run rake db:seed before the specs. I ended up just confirming my first user through the console.

At any rate, thanks for your patience and persistence. If you run into more issues (which, tbh, wouldn't surprise me in the least) please speak up so we can work to make the process easier all around.

  • Robert
jsilence

Robert, great response. Thank you!
I'll wrangle your hints into the README and take a look at the email topic. Will generate pull requests. A friend of mine is a RoR developer and he agreed on giving me a speedy intro into it. We'll use bettermeans for doing so.

-jsilence

Scott Richmond

Ah love the feedback! I just wanted to echo the myriad of problems around getting BetterMeans up and running as someone who isn't an RoR SME. I basically gave up on the project a few months ago when I tried to overcome what @jsilence managed to do.
I'll definitely jump back in shortly now that I'm armed with the above information (Hopefully when I do some will already be resolved :) ).

Robert Fletcher

If you're just looking to get a server up and running, pushing to heroku should be almost entirely painless. Otherwise, there's https://www.bettermeans.com if you don't mind it being hosted for you.

ajsilvia

Hi, I'd like to use bettermeans for my team, but I have no experience with Ruby or installing web apps. Is there somebody that could help me install it on my server? I would really appreciate the help! This stuff is a foreign language to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.