|
|
4 years ago | |
|---|---|---|
| .github/workflows | 4 years ago | |
| app | 4 years ago | |
| bin | 9 years ago | |
| config | 4 years ago | |
| data | 4 years ago | |
| db | 4 years ago | |
| lib | 4 years ago | |
| log | 9 years ago | |
| public | 7 years ago | |
| scripts | 4 years ago | |
| spec | 4 years ago | |
| tmp | 9 years ago | |
| vendor/assets | 9 years ago | |
| .editorconfig | 4 years ago | |
| .gitignore | 4 years ago | |
| .rspec | 9 years ago | |
| .ruby-version | 4 years ago | |
| Gemfile | 4 years ago | |
| Gemfile.lock | 4 years ago | |
| Procfile | 6 years ago | |
| README.md | 4 years ago | |
| Rakefile | 9 years ago | |
| config.ru | 9 years ago | |
README.md
edcontext
This project contains three pieces:
- 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
This is a Rails project, deployed on Heroku.
Site links
Live app: https://mciea-dashboard.herokuapp.com/ Live dashboard: http://mciea-dashboard.herokuapp.com/districts/winchester/schools/winchester-high-school/dashboard?year=2020-21
Local development
Install Postgres and running first.
(MacOS, Optional), you can use Homebrew:
$ brew install postgres
$ brew services start postgresql
Linux:
Install postgres. Known working version is version 13
https://www.postgresql.org/download/
Once postgres is installed and running, install the required gems and then migrate the database.
$ 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!
The seed file populates the following tables
| Name | Description |
|---|---|
| School | School ids are only unique to their district. More than one school has an id of 1 |
| District | Districts and schools have attached slugs. We find search for these models by their slugs |
| SqmCategory | The legacy name here is Category. It still exits in the database. We wanted the freedom to make changes and still preserve the legacy site until the end of the engagement. |
| Measure | In the bar graph measures represent a single bar |
| SurveyItem | This table has an attribute prompt that is the question asked |
SurveyItemResponses does not get populated at this stage.
Database
Postgres
Gems
| Name | Description |
|---|---|
| puma | webserver |
| pg | postgres |
| sassc-rails | sass compiler |
| jquery-rails | legacy, allows use of jquery |
| jbuilder | legacy, build json objects |
| haml | legacy, write views in haml syntax |
| bootstrap | css framework |
| newrelic_rpm | legacy?, application monitoring |
| devise | authentication |
| omniauth | authentication |
| twilio-ruby | legacy, text messaging |
| activerecord-import | faster database imports |
External APIs
None yet. Hoping to integrate with Powerschool and Aspen for school administrative data.
Javascript libraries
None yet
css
Bootstrap 5
Loading Data
SurveyItemResponses is the most important table to understand.
SurveyItemResponses is the data that will change year to year and makes up the majority of the database records. Roughly 150,000 SurveyItemResponses per year.
# locally
bundle exec rake data:load_survey_responses
# on heroku staging environment
heroku run -a mciea-beta rake data:load_survey_responses
# on heroku production environment
heroku run -a mciea-dashboard rake data:load_survey_responses
Running tests
Prepare the test database.
bundle exec rake db:test:prepare
If you need to look at the rails console for the test environment
RAILS_ENV=test rails c
$ bundle exec rake
Continuous Integration
Pushing commits to the main branch triggers auto-deployment to the staging environment.
Deployments to production must be done through the Heroku web interface or via the Heroku command line