Main Avalanche Network server application. Built with Ruby on Rails.

James Peret: ae45b103d6 image upload buttons layout 10 lat temu
app ae45b103d6 image upload buttons layout 10 lat temu
bin def60a0d18 Initial Commit 10 lat temu
config 7993795e1e edit user account layout 10 lat temu
db 4042e20936 Heroku migration fix and assets precompile 10 lat temu
features 721be9d4ee YC S2015 Avalanche Demo Test 10 lat temu
lib 21d338e40d Changing rake resque job for Heroku compatibility 10 lat temu
public 4b04d8ef59 assets precompile 10 lat temu
script dbf9621e94 Cucumber testing suite ininitialized with first scenario 10 lat temu
spec e40bf4052d Mission launch and lots of fixes and tests 10 lat temu
test 35ce5902dd Invite user with custom message and email 10 lat temu
vendor def60a0d18 Initial Commit 10 lat temu
.fontcustom-manifest.json 70258b2b03 New icons and task checkbox styles 10 lat temu
.gitignore b238330003 updated git ignore and deleted README.rdoc 10 lat temu
Gemfile 75991fc2ba Installed devise_invitable gem 10 lat temu
Gemfile.lock 75991fc2ba Installed devise_invitable gem 10 lat temu
Procfile d1fe9cab7f spawning another process inside the unicorn server 10 lat temu
Rakefile c579b5d55b renamed rails project to Avalanche2 10 lat temu
config.ru def60a0d18 Initial Commit 10 lat temu
dump.rdb 7993795e1e edit user account layout 10 lat temu
fontcustom.yml 6265b3ce33 Added font custom, generated avalanche_icons and precompiled assets 10 lat temu
readme.md 94c96a9373 Create agent with nested steps - layout and code 10 lat temu

readme.md

    ___  _    __ ___     __     ___     _   __ ______ __  __ ______
   /   || |  / //   |   / /    /   |   / | / // ____// / / // ____/
  / /| || | / // /| |  / /    / /| |  /  |/ // /    / /_/ // __/   
 / ___ || |/ // ___ | / /___ / ___ | / /|  // /___ / __  // /___   
/_/  |_||___//_/  |_|/_____//_/  |_|/_/ |_/ \____//_/ /_//_____/   

avl2 system

Second prototype source code of the avalanche network web app.

Installation and Configurations

  1. Clone the project: https://github.com/jamesperet/rails_website_template.git
  2. Create a postgres databases for development and test enviorments.
  3. Configure the databases in config/database.yml
  4. Run rake db:migrate
  5. Run rake bootstrap:all to configure the website and create a admin user
  6. Create the file config/application.yml with all env variables
  7. Set the Google Analytics Tracking code in the file app/assets/javascript/google_analytics.js.coffe
  8. Start the server: rails server -p 3000
  9. Login as admin@website.com with the password 12345678

Deploy to Heroku

  1. Create a new heroku app: heroku create new-app-name
  2. Run figaro heroku:set -e production to copy env variables from config/application.yml and set them in heroku
  3. Add the heroku postgre addon: heroku addons:add heroku-postgresql to create and configure a postgres database in heroku server
  4. Add the heroku Redis to Go addon: heroku addons:add redistogo
  5. Push to heroku: git push heroku master to deploy the repo
  6. Migrate the database: heroku run rake db:migrate
  7. Create the initial config and admin user: heroku run rake bootstrap:all
  8. Add your website URL to the Mixpanel Partner program to earn 200,000 data points every month plus 25,000 people profiles.

Env Variables

AWS_ACCESS_KEY_ID:
AWS_SECRET_ACCESS_KEY: 
AWS_S3_BUCKET:
AWS_S3_BUCKET_REGION:
HEROKU_APP_URL: 
MANDRILL_USERNAME: 
MANDRILL_KEY: 
DOMAIN_NAME: 
SERVER_EMAIL: 
DEVISE_SECRET_KEY: 
SECRET_KEY_BASE: 
MAILCHIMP_KEY: 
MAILCHIMP_LIST_ID:
REDISTOGO_URL:

Avalanche2 Dev Notes

System Scaffolding

# Mission
rails g scaffold mission mission_agents:references title:string objective:string briefing:text owner:references status:integer launched:boolean 
language:string cover_img:string

# Mission Agents
rails g model mission_agent mission:references agent_steps:references mission_candidates:references objective:string briefing:text role:string 
description:text user:references agent_number:integer debriefing:text

# Mission Agent Steps
rails g model agent_step mission_agent:references step:integer title:string description:text completed:bool completed_date:datetime

# Mission Agent Candidates
rails g model mission_candidate user:reference mission_agent:reference status:integer

# Step Validations
rails g model step_validation agent_step:reference step_verifications:references mode:string description:string

# Step Verifications
rails g model step_verification step_validation:references validated:boolean validated_by:references content:string

# Validation Scaffolding
rails destroy model step_validation
rails destroy model step_verification
rails g migration AddStepSubmissionToAgentStep step_submissions:references

# Step Validation
rails g model step_validation agent_step:references validation_id:integer validation_type

# Text Validation
rails g model validation_text step_validation:references description

# Step Submission
rails g model step_submission agent_step:reference submission_contents:references validated:boolean validated_by:references date_validated:datetime

# Submission content
rails g model submission_content submission_content:references submission_id:integer submission_type

# Text Submission
rails g model submission_text submission_content:references content accepted:boolean validation:references

# Rewards
rails g model reward mission:references mission_agents:references title:string description:text img:string
rails g model user_reward reward:references user:references received:boolean date_received:datetime
rails g migration AddRewardsToMission rewards:references
rails g migration AddRewardsToMissionAgent rewards:references 

Undone Commands

# Mailers
rails g mailer MissionMailer

To dos

  • mission controller
  • agent controller
  • mission_list_controller
  • settings_controller
  • mission_list_index
  • agent_dashboard
  • mission_index
  • mission_show
  • mission_edit/create
  • emails:
    • pending missions (3-5 days pending steps)
    • Mission Acomplished
    • Mission Failed

Notes

Step Validation

Each agent_step has many associated classes for storing validation details, user generated content and verification signing.

  • agent_step
    • step_validations
      • validation_text
      • validation_image
      • validation_agent_position
      • validation_git_hooks
    • step_submissions
      • step_verification
      • submission_content
        • submission_text
        • submission_image
        • submission_agent_position
        • submission_git_hooks

Each step can have multiple step validations that are set by the mission director. Each step_validation can have one validation type like text, image or agent position. Every time an agent submits the information requested by the step_validations, a step_submission object is created with multiple sumission_content objects, one for each step_validation. The submission_content types can bem text, image or agent_position and they will store this information sent by the agent and process it.

The submission_content class is also responsible for triggering the automatic validation that some step_validations might have. If the validation requires an operator decision, than the step_submission will show up on the mission control panel for manual validation. If the step can be automatic validated, than the system will create a step_verification for the current submission.


  • Enviar imagens com os desenhos
  • Enviar uma imagem para cada tela do app
  • Espere a validação pelo diretor da missão