The WikiEdu Dashboard is a web application that provides data about Wikipedia educational assignments that use the course page system (the EducationProgram extension) on Wikipedia. This is a project of Wiki Education Foundation, developed in partnership with WINTR, intended for our education programs on English Wikipedia. To see it in action, visit dashboard.wikiedu.org.
The Dashboard pulls information from the EducationProgram extension's Wikipedia API to identify which users are part of courses. It then gathers information about edits those users have made and articles they have edited, and creates a dashboard for each course intended to let instructors and others quickly see key information about the work of student editors. It also creates a global dashboard to see information about many courses at once.
- The system shows information for based on list course IDs defined by a page on Wikipedia.
- The system queries the liststudents api on English Wikipedia to get basic details about each course: who the students are, when the course starts and ends, and so on.
- The system uses a set of endpoints on Wikimedia Labs (see WikiEduDashboardTools) to perform queries on a replica Wikipedia database, for information about articles and revisions related to the courses.
- The system pulls page views (from stats.grok.se) for relevant articles on a daily basis.
- Ruby (RVM recommended)
- Node
- NPM
- Bower
-
Fork this repo, so that you can set it up for a new server.
-
Clone the new WikiEduDashboard repo and enter that directory.
-
Install Ruby 2.1.5 (RVM is recommended)
- From the WikiEduDashboard directory, run the curl script from rvm.io
- Run the install command suggested by the script, something like
rvm install ruby-2.1.5
-
Install Node: Node.js Installer
-
Install Gems:
- $
bundle install
- $
-
Install NPM modules:
- $
npm install
- $
-
Install Bower and Bower modules:
- $
sudo npm install bower -g
- $
bower install
- $
-
Add config files:
- Save
application.example.yml
anddatabase.example.yml
asapplication.yml
anddatabase.yml
, respectively. Fill in your Wikipedia account login details inapplication.yml
(for API access). The default settings indatabase.yml
will suffice for a development environment.
- Save
-
Start Guard
$
guard
-
Migrate the database
$
rake db:migrate
-
Pull data from sources (this could take a very long time)
$
rake batch:initialize
-
Start Zeus
$
zeus start
-
Start Guard
$
guard
-
Start Gulp to watch JS and CSS
$
gulp
-
The frontend is now visible at http://localhost:3000/
For deployment, the Dashboard uses Capistrano. This requires authentication with the server via SSH.
After pushing updates to repo (on Github), run the following command(s)
- Staging:
cap staging deploy
(This will deploy from the "master" branch) - Production:
cap production deploy
(This will deploy from "production" branch)
To run rake tasks on a server via Capistrano, use "sake":
- $
cap production sake task="batch:update_constantly"
For detailed instructions on setting up a production server — specifically on a wmflabs virtual server, but the process will be similar for other infrastructure as well — see WMFLABS_DEPLOYMENT.