This project uses ruby 1.9.3 (see .rvmrc)
-
redis
-
on mac,
brew install redis -
on *nix,
pacman -S redisor similar
-
If using rvm (we are), cd <PATH_TO_goodapp/web>.
Install rvm (ruby version manager): beginrescueend.com/rvm/install/
rvm install 1.9.3 rvm use 1.9.3 rvm default 1.9.3 rvm gemset create goodapp cd <GOODAPP_DIRECTORY>
RVM should prompt you – say you trust the .rvmrc by typing ‘y’
Make sure that rvm selects ruby 1.9.3 and the goodapp gemset.
Now bootstrap the project by installing dependencies specified in web/Gemfile
gem install bundler cd web # this is the ruby on rails directory bundle install
This will bundle the required gems.
Then, since we are approaching the demo, I changed some things to make things seem more “legit”.
# in /etc/hosts add the following lines 127.0.0.1 goodapp.com api.goodapp.com
Finally, start the server.
rails s[erver]
Point your browser to goodapp.com:3000 and tada!
To run on port 80, simply use the following.
sudo -E rails s[erver] -p 80
- BEWARE
-
Issue with the letter_opener gem.
It uses $BROWSER to open the email and it is quite unsafe to run a brower as root – do this at your own risk.
$ cd web $ rake db:migrate
$ cd web $ VERBOSE=1 rake resque:scheduler $ VERBOSE=1 COUNT=[numworkers] rake resque:scheduler
The Rakefile contains all testing tasks for the project (run in root, not web).
rake test:all rake test:trust rake test:web
-
users register on goodapp
-
if they have a binary tied to their account, then they are a developer and thus they have a rating
-
user creates account with email address that we confirm (tie to the user)
-
this email needs to be something that identifies them elsewhere too
-
what we have: APP STORE DEV –>> email <<– GOODAPP USER (is_dev => true)
-
-
user upploads a binary of theirs
-
we run this binary over as many scanners as we can to generate a baseline
- !
-
this should never yield negative results, otherwise, immediately throw up flag
-
have developers somehow gather people to sign off on the validity of their app
-
api calls so users of dev stores can do this too
-
this will have a decent influence on the rating (algorithm to be determined)
-
-
have developers with certain threshold of trust ENDORSE other developers
-
this will also have a decent influence on the rating
-
-
-
have an api accessible by users with is_distributor => true (supply API key on their dashboard)
-
fetch information on a developer using their email as a key
-
allow a system for rating integration + flagging
- !
-
distributor privilege problem will affect all changes in rating they have made
-
-
drag an drop links onto various boxes (‘Apple Store’, ‘website’, ‘Windows Store’, etc.)
-
model on Yelp
NOTES FOR /WEB
Options
id message good/badvalue (postive means good, negative bad, w/e) form id
# BASIC FORM <%= form_tag %>
<% Option.where(:form_id => 1).each do |o| %> <%= check_box_tag %>
Form
id name
(1, ‘BasicForm’) (2, ‘TechForm’)
FormResult
user id app id
x change flash messages by devise to use “login” “register” …
-
validations on contact form!!
-
IMPORTANT : migrate to 1.9.3
-
write more tests (see ‘rake stats’ –> get closer to 1:2)
x replace twitter_bootstrap_form_for_ gem
-
get CanCan in there for protecting upload to just devs (tie dev to binary)
-
or have dev_id_ accessible if the person is admin (or app store)
-
x better flash messages, on register “Signed up!”
x standardize page headers (decide h1/h2 but then move it to a helper) o integrate bootstrap form as a ‘plugin’ or something
-
remove gutters from everywhere – can style the same but doesnt work
x make README sexy
-
improve the @active stuff
-
run rake doc:… at end for documentation
need new tables (?):
-
rating
-
dev id
-
overall rating
-
feedback rating
-
endorsement rating
-
scanner rating
-
prefix rating [will be either 0 or 0.05]
-
app store data scraping
-
third party data scraping
-
-
app feedback
-
app id
-
descripton [composed from checkboxes filled out in form]
-
rating [individually calculated rating per review]
-
-
techinal app feedback
-
app id
-
usability
-
flexibility
-
…blah [ lots of these - each category on answer - new column]
-
-
delete this file :)