___ _ __ ___ __ ___ _ __ ______ __ __ ______
/ || | / // | / / / | / | / // ____// / / // ____/
/ /| || | / // /| | / / / /| | / |/ // / / /_/ // __/
/ ___ || |/ // ___ | / /___ / ___ | / /| // /___ / __ // /___
/_/ |_||___//_/ |_|/_____//_/ |_|/_/ |_/ \____//_/ /_//_____/
# 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](https://mixpanel.com/free/) 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
----------------------