parent
d25c9567cf
commit
3b0c4c188c
@ -1,24 +1,101 @@
|
|||||||
# README
|
# edcontext
|
||||||
|
|
||||||
This README would normally document whatever steps are necessary to get the
|
This project contains three pieces:
|
||||||
application up and running.
|
- A webapp for visualizing and understanding MCIEA survey data
|
||||||
|
- Tasks for processing and indexing raw survey data
|
||||||
|
- Experimental work to conduct survey samples via text message
|
||||||
|
|
||||||
Things you may want to cover:
|
This is a Rails project, deployed on Heroku.
|
||||||
|
|
||||||
* Ruby version
|
|
||||||
|
|
||||||
* System dependencies
|
## Local development
|
||||||
|
```
|
||||||
|
$ bundle install
|
||||||
|
$ bundle exec rake db:create db:migrate db:seed
|
||||||
|
```
|
||||||
|
At this point you can run the app and login. There won't be any data yet though; keep reading!
|
||||||
|
|
||||||
* Configuration
|
## Loading Data
|
||||||
|
Postgres is the primary data store for the webapp, but the definitions of the questions and measures are stored in `.json` files and raw survey data is stored in `.csv` files. These are collected offline, and then processed by the rake tasks to load that data into Postgres for use by the webapp.
|
||||||
|
|
||||||
* Database creation
|
There are several different kinds of data needed:
|
||||||
|
- `measures.json`
|
||||||
|
- `questions.json`
|
||||||
|
- `student_responses.csv`
|
||||||
|
- `teacher_responses.csv`
|
||||||
|
|
||||||
* Database initialization
|
You can load these into the database and index them for use in the webapp by running rake tasks.
|
||||||
|
|
||||||
* How to run the test suite
|
You can start by generating fake data:
|
||||||
|
```
|
||||||
|
$ bundle exec rake data:generate
|
||||||
|
```
|
||||||
|
|
||||||
* Services (job queues, cache servers, search engines, etc.)
|
Loading all the real response data take a while, so you can start by loading only a sample of the data for one particular school with:
|
||||||
|
|
||||||
* Deployment instructions
|
```
|
||||||
|
$ bundle exec rake data:load_sample
|
||||||
|
```
|
||||||
|
|
||||||
* ...
|
This loads all the data:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ bundle exec rake data:load
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Demo deploy
|
||||||
|
Get the code and make a new repo without any history.
|
||||||
|
```
|
||||||
|
$ mkdir edcos-demo
|
||||||
|
$ git clone https://github.com/jaredcosulich/edcontext.git
|
||||||
|
$ cd edcontext
|
||||||
|
# git co feature/ecos-demo
|
||||||
|
$ rm -rf .git # remove past git history, which has secrets and response data
|
||||||
|
$ git init
|
||||||
|
$ git co -b master
|
||||||
|
$ git commit -m "Initial demo commit"
|
||||||
|
```
|
||||||
|
|
||||||
|
Make a new Heroku app and deploy:
|
||||||
|
1. Create a new Heroku app
|
||||||
|
2. Add Postgres
|
||||||
|
3. Deploy
|
||||||
|
4. Run `heroku run rake db:migrate db:seed data:generate`
|
||||||
|
5. Run `heroku run rails console` and add a demo user (eg, `User.create!(email: 'demo@demo.edcontext.org', password: '123456')`)
|
||||||
|
5. Try it out!
|
||||||
|
|
||||||
|
|
||||||
|
## Path to open source
|
||||||
|
- [x] Personal phone numbers in code - these are removed (`seed.rb`)
|
||||||
|
- [x] API keys in code - these are removed (`attempts_controller.rb`)
|
||||||
|
- [x] Create generator task for demo site
|
||||||
|
- [x] Remove .csv responses
|
||||||
|
- [ ] `target_group` in questions aren't set
|
||||||
|
|
||||||
|
## Data
|
||||||
|
Loading attempts took a while. I factored data rake task out into Ruby class to call methods more directly, and then added whitelist option for importing only data for a particular school. I used the Vinson school as my test case.
|
||||||
|
|
||||||
|
|
||||||
|
## Making site navigable
|
||||||
|
- loading data - uncomment and split to bulk
|
||||||
|
- creating new admin user manually
|
||||||
|
- moving `#verify_super_admin` to `application_controller`, adding it for `/admin` pages
|
||||||
|
- `welcome/index.html.haml` to remove commented code and require login
|
||||||
|
- Login goes to `/user`, add in link to home page there
|
||||||
|
- Moved seed code into `pilot_parent_test.rake`, removed individual names and phone numbers
|
||||||
|
- Added `recipients` and `recipient_lists` links to `school/show.html.haml`
|
||||||
|
- Added `import` link to `recipients` page
|
||||||
|
- Added `index` action and view for school schedules
|
||||||
|
- Edit questions without school_id
|
||||||
|
- Deleted API keys and numbers in `attempts_controller.rb`
|
||||||
|
|
||||||
|
|
||||||
|
## Other Issues
|
||||||
|
- can't get categories pages to show questions
|
||||||
|
- looks like computation is inverted for some questions like `http://localhost:3000/schools/vinson-owen-elementary-school/categories/student-emotional-safety`
|
||||||
|
- back link not working editing schools and districts
|
||||||
|
- superadmin is done by user id
|
||||||
|
- no schools for default user?
|
||||||
|
- endpoints for school/categories, school/questions
|
||||||
|
- attempts route and controller commented out
|
||||||
Loading…
Reference in new issue