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

James Peret: 928b7429be User bio fix 10 年 前
app 928b7429be User bio fix 10 年 前
bin def60a0d18 Initial Commit 10 年 前
config c459c7f87c Mission agent instances feature 10 年 前
db c459c7f87c Mission agent instances feature 10 年 前
features 721be9d4ee YC S2015 Avalanche Demo Test 10 年 前
lib 21d338e40d Changing rake resque job for Heroku compatibility 10 年 前
public 11974cd53c Assets precompile 10 年 前
script dbf9621e94 Cucumber testing suite ininitialized with first scenario 10 年 前
spec e40bf4052d Mission launch and lots of fixes and tests 10 年 前
test 35ce5902dd Invite user with custom message and email 10 年 前
vendor def60a0d18 Initial Commit 10 年 前
.fontcustom-manifest.json 70258b2b03 New icons and task checkbox styles 10 年 前
.gitignore b238330003 updated git ignore and deleted README.rdoc 10 年 前
Gemfile c459c7f87c Mission agent instances feature 10 年 前
Gemfile.lock c459c7f87c Mission agent instances feature 10 年 前
Procfile d1fe9cab7f spawning another process inside the unicorn server 10 年 前
Rakefile c579b5d55b renamed rails project to Avalanche2 10 年 前
config.ru def60a0d18 Initial Commit 10 年 前
dump.rdb 11974cd53c Assets precompile 10 年 前
fontcustom.yml 6265b3ce33 Added font custom, generated avalanche_icons and precompiled assets 10 年 前
readme.md 94c96a9373 Create agent with nested steps - layout and code 10 年 前

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