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

James Peret: 2949eaf9e4 MissionMailer and step validation email background job 10 年之前
app 2949eaf9e4 MissionMailer and step validation email background job 10 年之前
bin def60a0d18 Initial Commit 10 年之前
config 2949eaf9e4 MissionMailer and step validation email background job 10 年之前
db 9c4cc96bf4 Rewards model, methods and view partials 10 年之前
features 6d824d5e47 New start page and tests suite fix 10 年之前
lib 21d338e40d Changing rake resque job for Heroku compatibility 10 年之前
public 6265b3ce33 Added font custom, generated avalanche_icons and precompiled assets 10 年之前
script dbf9621e94 Cucumber testing suite ininitialized with first scenario 10 年之前
spec 82f1b72319 Upload Image bg processing with carrierwave_backgrounder and testing 10 年之前
test 2949eaf9e4 MissionMailer and step validation email background job 10 年之前
vendor def60a0d18 Initial Commit 10 年之前
.fontcustom-manifest.json 6265b3ce33 Added font custom, generated avalanche_icons and precompiled assets 10 年之前
.gitignore 9c4cc96bf4 Rewards model, methods and view partials 10 年之前
Gemfile 7696730eeb Gemfile and Readme modifications 10 年之前
Gemfile.lock 7696730eeb Gemfile and Readme modifications 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 8712f6f4f0 Login and Signup page layouts 10 年之前
fontcustom.yml 6265b3ce33 Added font custom, generated avalanche_icons and precompiled assets 10 年之前
readme.md 7696730eeb Gemfile and Readme modifications 10 年之前

readme.md

Avalanche Network (avalanche2)

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