Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
granadajs Hacknight Uno

Granadajs Hacknight Uno

Ideas for app

  • Shopping - a shopping list app, maybe with phonegap. Web/phone sync.
  • Tapatracker - categorize, describe, photos?, location tapa tracker. "Do I want asian noodles or oxtail? I'll check tapatracker!"
  • Unlikeable - a facebook app that checks which of your friends liked things that you disliked. I don't know if this is possible. It probably is.
  • SoundCloud playlist creator
@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

I also would like to go with Tapatracker but if anyone else is emotional about another choice, throw down a comment.
And because I am also a Ruby dev (we have 3 right?), I would also like to go with a rails backend. Again, any emotional against, let us know.
I would also like to make this a phonegap app because it would be able to integrate nicely with one's intelligent phone's camera.

my vision of this app's workflow

tapa comsumer :)

  • at a bar, take out phone, snap a picture of your tapa.
  • phone asks you about geolocation/name of local
  • you can rate the tapa
    tapa searcher on the go
  • view tapa nearest to you in best rated or "fresh" order
  • click down to get more information
  • view a google map of rated locations near you
  • view recommendations based on your reviews or if their is a social aspect eventually, based on people you follow
    desktop user
  • pretty much same as mobile search user
  • larger photo album view?

Architecture

Server

app

  • rails
  • we can start on either one of my Hetzner 1GB VPSs, an ec2 instance or one of my boxes in my office in Guejar (I have an Ubuntu 12.04, dual 1.6Ghz 64, 1GB RAM, soon to have an SSD, bare box waiting to house something nice) to start (you all get SSH access).
  • handles
    • desktop search user
    • authentication
    • api for all requests from phone (current restaurant lists, recommendations, etc)
    • media storage

phonegap app

  • lets one take photos, uploads photos to server with geo data
  • display lists of locations, google maps with information taken from server
  • user login through facebook connect/twitter APIs
  • view location information from mapview/listview
  • view reviews
  • view images others have taken (linked to on server)

The phone app would stay as stateless as possible, only holding user session data and maybe caching a bit at some point.
This means that the phone app would need to be connected to a network to be usable, I don't know how reasonable this is, how much bandwidth this would take up, how much this would cost the users. I will be setting up my phone in the next days with a 3G connection so I will have the answers very soon ;)

Your thoughts...

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

The formatting above got fudged. The bolded desktop user should be on its own line.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

And as far as a javascript framework goes, I would like to use Angular.js. I am a backbone.js man myself, but I have heard good things about angular.js.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@opsb You can also check out my rails templater fork(it adds support for devise or sorcery and bootstrap-sass install as well as backbone.js) and my rails bootstrap helpers(which are very limited but could be easily built upon).

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

If anyone really wants to build a nodejs app, we could make it an exercise some time to pull the API out into an express.js app. I mean this is a Javascript group after all :P

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

I like the view binding on angular but I've found binding to server apis is less than elegant. I'd be happy to give it another crack though, I've only spent a couple of hours with it so far.

Rails templater looks good, only thing they don't have on the list which I'd probably want is https://github.com/codegram/spinach. Much prefer it to cucumber but if everyone else wants to use cucumber I'm cool with that. I've been using https://github.com/jonleighton/poltergeist as a capybara driver, it's a headless webkit driver like capybara-webkit but it let's you do awesome stuff like fire up a webkit remote debugger half way through your integration test.

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

@pferdefleisch do you want to generate a project with rails templater fork and then we can tweak the setup before wednesday so we can get down to some feature dev quickly.

@vemv

This comment has been minimized.

Copy link

@vemv vemv commented Oct 8, 2012

I'd be fine with the tapa tracker!

on Angular - what does the 'W' on MVW stand for? ;p anyway, for this sort of thing maybe just following an ad-hoc MVC design could do?

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@opsb I will generate something and push it in the next half hour. I decided not to use spinach in the past because they were assholes about cucumber on the website. Though i felt the same about rbenv and I much prefer it now. I also have a pretty decent poltergeist setup that I can throw in there with my rspec setup.

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

@pferdefleisch ha that does sound like a dick move... aside from them being dicks though I have to say spinach really has been an improvement over cucumber. I find spinach steps quickly turns into a shitty NLP project, I found that in the end the step definitions were driving my choice of language in the gherkin scenarios which is definitely the wrong way round! Spinach is much better at encouraging you to use natural sounding english.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@vemv I think it stands for Model View Whatever. A play on everyone coming up with ridiculous new abbreviations for Model View Controller or Model View Presenter patterns. Which in itself is ridiculous. Something like YAML (YAML Ain't a Markup Language).

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@opsb It looked really neat but I really hate that attitude, "this is dumb, ours is so awesome" like the seattlerb guys with vlad/capistrano or whatever that obnoxious underscore.js "drop in replacement" is. Just tell me why your thing is cool please.
And plus, I do my integration testing with rspec ;)

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

I just created and pushed the scaffold of an app. https://github.com/granadajs/tapatracker-server
Installation

  • Have ruby 1.9.2 or greater installed on your system
  • on the command line run gem install bundler
  • git clone git@github.com:granadajs/tapatracker-server.git
  • cd tapatracker-server
  • bundle install
  • bundle exec rake db:migrate
  • bundle exec unicorn_rails -p 3000
  • navigate to http://localhost:3000 in your browser.

You need SQLite3 installed on your system for this to run. I picked this database because it is usually pretty worry free to install, I have had issues getting postgresql installed on some people's systems.
If you are on windows, this probably won't work. I can help you if you need more instructions.
If you are on OSX, you will probably need to install XCode followed by a packaging manager like homebrew where you can then run brew install sqlite3.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@opsb I set it up with capybara-webkit a headless webkit lib instead of poltergeist. Poltergeist is commented out in the Gemfile as well as in spec/spec_helper.rb if you want to switch. It doesn't matter to me, this is how my setup normally is.
You should add spinach too.
You will also see that I set the project up with haml. I use slim but thought I would pick something that more devs might know.
If anyone thinks it would be better to use ERB, that is fine. At this point my brain won't let me pick it as a default.
Compass and Twitter bootstrap are also installed. I like to do this to slowly ween myself off of bootstrap as the app develops. If anyone thinks this is overkill, let me know or just pull something out :D
Another thing is that I use a combination of guard and spork to make my testing cycles nicer. I also have included a spec/spec_helper_lite.rb file which doesn't load the rails framework. You can require it directly from your spec and then require the file that you are testing. It also has some sugar to require common file paths like lib or models.
I will drink less coffee for the rest of the week...

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

You have been busy... I've always used erb myself, just looked at slim though and I really like the syntax so that would be my choice.

@vemv

This comment has been minimized.

Copy link

@vemv vemv commented Oct 8, 2012

I'm fairly new to Rails so I'd feel more comfortable with ERB (and as few plugins as reasonably possible in general)

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

I'm happy sticking with erb for this one. We can always move onto slim for future projects.

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

@pferdefleisch I've only got read only access to the tapatracker-server repo, can you bump my permissions.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@opsb
crap, i guess i have to add permissions on a per project basis. Lame.
On another note, I installed Devise but didn't add any oauth stuff. If you want to handle that, it would be greatly appreciated.

@vemv cool, we'll switch it to ERB.

You both should have push/pull access now.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

I think I may push out a couple balsamiq wireframes by the end of the day. I will link to them here.
And I will be at Buzz tomorrow if anyone else feels like showing up. Have to get some "real" work done too though :)

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

I need to go into Buzz tomorrow, (need a spanish speaker to sort out my iranian passport for me...). I'll probably go in for the morning and stay around for lunch.

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 8, 2012

If everyone's on dropbox that would be a good place to keep balsamiq mockups etc.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

I just created a dropbox shared folder and added @OPSD
@Others you can send me your email at hello@granadajs.com. I will share the folder with you when I get your email address

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@vemv I updated the repo, removing HAML. As I wrote earlier, you should have push/pull access now

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

I just created a dropbox shared folder and added @OPSD
@opsb oops.

@vemv

This comment has been minimized.

Copy link

@vemv vemv commented Oct 8, 2012

thanks Aaron for keeping it simple for me :)

getting RoR running via RVM. is that the way to go?

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@vemv I use rbenv but there is probably more docs on rvm. I use rbenv because there's less magic but it's a bit harder to install unless you are using OSX. If you're running OSX you can use homebrew and type brew install rbenv ruby-build and after they are installed rbenv install 1.9.3-p194 to get the latest ruby. The other way is to clone the rbenv repo into $HOME/.rbenv, then create a folder called $HOME/.rbenv/plugins then clone the ruby-build repo in there git clone git://github.com/sstephenson/ruby-build ~/.rbenv/plugins/

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

For anyone interested on getting a bit of a head start on Angular.js, here are a few screencasts. Looks pretty interesting, I am looking forward to it.
http://www.youtube.com/watch?v=WuiHuZq_cg4&feature=BFa&list=PL173F1A311439C05D

@vemv

This comment has been minimized.

Copy link

@vemv vemv commented Oct 8, 2012

rbenv looks saner, will give it a try. managing versions particularly interests me because of JRuby - as a JVM guy I should try it out sooner or later.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 8, 2012

@vemv

This comment has been minimized.

Copy link

@vemv vemv commented Oct 9, 2012

Thanks! curious to know how for can one get in Ruby as for all things concurrency - that is one of my favorite topics in programming.

rbenv was pleasing to install. having to constanty run the rehash command sucks tho. http://www.stehem.net/2012/05/08/how-to-install-ruby-with-rbenv-on-ubuntu-12-04.html

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 9, 2012

K, I've added in spinach add omniauth. There's a spinach scenario for signup in tapatracker-server/features/scenarios/. It's currently setup for facebook connect but it's easy to switch to any oauth provider. I've added Getting started instructions to readme, it tells you how to get set up with poltergeist and facebook connect.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 9, 2012

@vemv I find that I don't have to run rbenv rehash very often. I have aliased it to rr just in case but one must only run it when one installs new binaries which is mostly just on a new app generation or update.
I also have a bunch of bundler aliases like be, bu, bo etc. for bundle exec, bundle update, bundle open etc. I also have r aliased to bundle exec rails so I can do things like r g model Foo which I find saves me a lot of annoyances.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 9, 2012

@opsb great!

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 9, 2012

@hcarreras I just added you to the organization.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 9, 2012

@hcarreras send me an email at hello@granadajs.com so I can add you to the dropbox (please).

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 9, 2012

OK, after a couple of hours trying to get phonegap 2.0 to deploy to my iphone I gave up. 2.1 is the way forwards! I did a fresh install, set build options to Build Active Architecture Only and it worked first time.

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 9, 2012

@opsb did it build in the simulator?

@mraaroncruz

This comment has been minimized.

Copy link
Owner Author

@mraaroncruz mraaroncruz commented Oct 9, 2012

@opsb I'll try on my mini

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 9, 2012

2.0 built in the simulator but wouldn't deploy to my iphone. 2.1 seems a lot more stable so far. Been having a play and it seems solid.

@vemv

This comment has been minimized.

Copy link

@vemv vemv commented Oct 10, 2012

do I need this pow thing (I don't own a Mac) or can one get away without it? really don't know what is it exactly for.

@opsb

This comment has been minimized.

Copy link

@opsb opsb commented Oct 10, 2012

No, you don't need pow. It's looking like we're not going to use oauth as it's difficult to use with phone gap. We want to concentrate on adding the features for taking photos/rating tapas etc so we'll do something simpler (sign up with username/password etc.).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment