Commit 88eb164b by Clinton Blackburn

Added command to generate fake data

Change-Id: Iab2c6860daf922c229cc66f4cc3ba632a8bbd623
parent f868623a
[run] [run]
omit = analyticsdataserver/settings* omit = analyticsdataserver/settings*
*wsgi.py *wsgi.py
analytics_data_api/management/commands/generate_fake_enrollment_data.py
[report] [report]
# Regexes for lines to exclude from consideration # Regexes for lines to exclude from consideration
......
...@@ -50,7 +50,8 @@ syncdb: ...@@ -50,7 +50,8 @@ syncdb:
$(foreach db_name,$(DATABASES),./manage.py syncdb --migrate --noinput --database=$(db_name);) $(foreach db_name,$(DATABASES),./manage.py syncdb --migrate --noinput --database=$(db_name);)
loaddata: syncdb loaddata: syncdb
python manage.py loaddata courses education_levels single_course_activity course_enrollment_birth_year course_enrollment_education course_enrollment_gender problem_response_answer_distribution course_enrollment_daily countries course_enrollment_country --database=analytics python manage.py loaddata courses education_levels countries single_course_activity problem_response_answer_distribution --database=analytics
python manage.py generate_fake_enrollment_data
demo: clean requirements loaddata demo: clean requirements loaddata
python manage.py set_api_key edx edx python manage.py set_api_key edx edx
...@@ -32,12 +32,12 @@ Getting Started ...@@ -32,12 +32,12 @@ Getting Started
Loading Data Loading Data
------------ ------------
The fixtures directory contains demo data. This data can be loaded with the following commands: The fixtures directory contains demo data and the `generate_fake_enrollment_data` management command can generate
enrollment data. Run the command below to load/generate this data in the database.
$ make loaddata $ make loaddata
Running Tests Running Tests
------------- -------------
Run `make validate` install the requirements, run the tests, and run lint. If you want to get the API server ready for Run `make validate` install the requirements, run the tests, and run lint.
acceptance testing or demos, `make demo` will install requirements and load the fixture data.
[
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 5,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1894,
"count": 13,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 6,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1895,
"count": 19,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 7,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1896,
"count": 3,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 8,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1898,
"count": 2,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 9,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1900,
"count": 14,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 10,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1901,
"count": 2,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 11,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1906,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 12,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1907,
"count": 2,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 13,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1909,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 14,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1911,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 15,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1912,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 16,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1913,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 17,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1914,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 18,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1915,
"count": 3,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 19,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1916,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 20,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1917,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 21,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1918,
"count": 1,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 22,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1920,
"count": 5,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 23,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1921,
"count": 7,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 24,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1922,
"count": 11,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 25,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1923,
"count": 20,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 26,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1924,
"count": 16,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 27,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1925,
"count": 21,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 28,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1926,
"count": 29,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 29,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1927,
"count": 27,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 30,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1928,
"count": 44,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 31,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1929,
"count": 56,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 32,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1930,
"count": 71,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 33,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1931,
"count": 85,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 34,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1932,
"count": 98,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 35,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1933,
"count": 115,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 36,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1934,
"count": 135,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 37,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1935,
"count": 139,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 38,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1936,
"count": 186,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 39,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1937,
"count": 207,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 40,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1938,
"count": 236,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 41,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1939,
"count": 297,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 42,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1940,
"count": 329,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 43,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1941,
"count": 394,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 44,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1942,
"count": 503,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 45,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1943,
"count": 545,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 46,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1944,
"count": 627,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 47,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1945,
"count": 634,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 48,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1946,
"count": 877,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 49,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1947,
"count": 1101,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 50,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1948,
"count": 998,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 51,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1949,
"count": 1081,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 52,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1950,
"count": 1117,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 53,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1951,
"count": 1222,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 54,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1952,
"count": 1343,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 55,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1953,
"count": 1406,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 56,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1954,
"count": 1525,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 57,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1955,
"count": 1739,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 58,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1956,
"count": 1769,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 59,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1957,
"count": 1882,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 60,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1958,
"count": 1966,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 61,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1959,
"count": 2105,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 62,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1960,
"count": 2355,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 63,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1961,
"count": 2261,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 64,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1962,
"count": 2405,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 65,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1963,
"count": 2486,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 66,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1964,
"count": 2546,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 67,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1965,
"count": 2648,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 68,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1966,
"count": 2562,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 69,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1967,
"count": 2715,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 70,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1968,
"count": 2751,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 71,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1969,
"count": 2925,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 72,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1970,
"count": 3164,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 73,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1971,
"count": 3051,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 74,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1972,
"count": 3096,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 75,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1973,
"count": 3073,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 76,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1974,
"count": 3286,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 77,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1975,
"count": 3452,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 78,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1976,
"count": 3609,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 79,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1977,
"count": 3890,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 80,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1978,
"count": 3986,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 81,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1979,
"count": 4484,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 82,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1980,
"count": 4978,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 83,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1981,
"count": 5033,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 84,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1982,
"count": 5376,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 85,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1983,
"count": 5665,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 86,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1984,
"count": 6093,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 87,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1985,
"count": 6343,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 88,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1986,
"count": 6915,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 89,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1987,
"count": 7368,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 90,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1988,
"count": 7675,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 91,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1989,
"count": 8282,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 92,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1990,
"count": 8668,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 93,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1991,
"count": 8636,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 94,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1992,
"count": 8163,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 95,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1993,
"count": 8067,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 96,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1994,
"count": 7312,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 97,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1995,
"count": 5801,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 98,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1996,
"count": 3955,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 99,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1997,
"count": 2780,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 100,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1998,
"count": 1815,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 101,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 1999,
"count": 978,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 102,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2000,
"count": 562,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 103,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2001,
"count": 217,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 104,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2002,
"count": 114,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 105,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2003,
"count": 71,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 106,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2004,
"count": 30,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 107,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2005,
"count": 22,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 108,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2006,
"count": 12,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 109,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2007,
"count": 16,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 110,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2008,
"count": 13,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 111,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2009,
"count": 17,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 112,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2010,
"count": 29,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 113,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2011,
"count": 19,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 114,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2012,
"count": 67,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 115,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2013,
"count": 230,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByBirthYear",
"pk": 116,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"birth_year": 2014,
"count": 79,
"date": "2014-07-01"
}
}
]
[
{
"model": "v0.CourseEnrollmentByCountry",
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"country": "US",
"date": "2014-06-01",
"count": 100
}
},
{
"model": "v0.CourseEnrollmentByCountry",
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"country": "IN",
"date": "2014-06-01",
"count": 240
}
},
{
"model": "v0.CourseEnrollmentByCountry",
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"country": "US",
"date": "2014-06-02",
"count": 106
}
},
{
"model": "v0.CourseEnrollmentByCountry",
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"country": "IN",
"date": "2014-06-02",
"count": 199
}
},
{
"model": "v0.CourseEnrollmentByCountry",
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"country": "US",
"date": "2014-06-03",
"count": 200
}
},
{
"model": "v0.CourseEnrollmentByCountry",
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"country": "IN",
"date": "2014-06-03",
"count": 300
}
},
{
"model": "v0.CourseEnrollmentByCountry",
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"country": "IS",
"date": "2014-06-03",
"count": 6
}
}
]
[
{
"model": "v0.CourseEnrollmentDaily",
"pk": 1,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"date": "2014-06-01",
"count": 100
}
},
{
"model": "v0.CourseEnrollmentDaily",
"pk": 2,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"date": "2014-06-02",
"count": 150
}
},
{
"model": "v0.CourseEnrollmentDaily",
"pk": 3,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"date": "2014-06-03",
"count": 300
}
}
]
[
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 5,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 6,
"count": 12255,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 6,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 7,
"count": 70885,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 7,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 3,
"count": 981,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 8,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 5,
"count": 51591,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 9,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 4,
"count": 6051,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 10,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 8,
"count": 53216,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 11,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 1,
"count": 667,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 12,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 2,
"count": 5722,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 13,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 9,
"count": 9940,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 14,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 6,
"count": 12295,
"date": "2014-07-02"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 6,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 7,
"count": 70885,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 7,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 3,
"count": 981,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 8,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 5,
"count": 51591,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 9,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 4,
"count": 6051,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 10,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 8,
"count": 53216,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 11,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 1,
"count": 667,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 12,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 2,
"count": 5722,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByEducation",
"pk": 13,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"education_level": 9,
"count": 9940,
"date": "2014-07-01"
}
}
]
[
{
"model": "v0.CourseEnrollmentByGender",
"pk": 1,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"gender": "m",
"count": 133240,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByGender",
"pk": 2,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"gender": "f",
"count": 77495,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByGender",
"pk": 3,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"gender": "o",
"count": 423,
"date": "2014-07-01"
}
},
{
"model": "v0.CourseEnrollmentByGender",
"pk": 4,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"gender": "m",
"count": 1332,
"date": "2014-07-02"
}
},
{
"model": "v0.CourseEnrollmentByGender",
"pk": 5,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"gender": "f",
"count": 77445,
"date": "2014-07-02"
}
},
{
"model": "v0.CourseEnrollmentByGender",
"pk": 6,
"fields": {
"course": ["edX/DemoX/Demo_Course"],
"gender": "o",
"count": 34,
"date": "2014-07-02"
}
}
]
import datetime
import random
from django.core.management.base import BaseCommand
from analytics_data_api.v0 import models
# http://stackoverflow.com/a/3590105
def constrained_sum_sample_pos(num_values, total):
"""Return a randomly chosen list of n positive integers summing to total.
Each such list is equally likely to occur."""
dividers = sorted(random.sample(xrange(1, total), num_values - 1))
return [a - b for a, b in zip(dividers + [total], [0] + dividers)]
def get_count(start):
delta = 25 * random.gauss(0, 1)
return int(start + delta)
class Command(BaseCommand):
def handle(self, *args, **options):
days = 120
course = models.Course.objects.first()
start_date = datetime.date(year=2014, month=1, day=1)
genders = {
'm': 0.6107,
'f': 0.3870,
'o': 0.23
}
education_levels = {
'associates': 0.058,
'bachelors': 0.3355,
'primary': 0.0046,
'secondary': 0.2442,
'junior_secondary': 0.0286,
'masters': 0.2518,
'none': 0.0032,
'other': 0.0271,
'doctorate': 0.0470
}
countries = {
'US': 0.34,
'GH': 0.12,
'IN': 0.10,
'CA': 0.14,
'CN': 0.22,
'DE': 0.08
}
birth_years = range(1960, 2005)
ratios = [n / 1000.0 for n in constrained_sum_sample_pos(len(birth_years), 1000)]
birth_years = dict(zip(birth_years, ratios))
# Delete existing data
for model in [models.CourseEnrollmentDaily, models.CourseEnrollmentByGender, models.CourseEnrollmentByEducation,
models.CourseEnrollmentByBirthYear, models.CourseEnrollmentByCountry]:
model.objects.all().delete()
# Create new data data
daily_total = 1500
for i in range(days):
daily_total = get_count(daily_total)
date = start_date + datetime.timedelta(days=i)
models.CourseEnrollmentDaily.objects.create(course=course, date=date, count=daily_total)
for gender, ratio in genders.iteritems():
count = int(ratio * daily_total)
models.CourseEnrollmentByGender.objects.create(course=course, date=date, count=count, gender=gender)
for short_name, ratio in education_levels.iteritems():
education_level = models.EducationLevel.objects.get(short_name=short_name)
count = int(ratio * daily_total)
models.CourseEnrollmentByEducation.objects.create(course=course, date=date, count=count,
education_level=education_level)
for code, ratio in countries.iteritems():
country = models.Country.objects.get(code=code)
count = int(ratio * daily_total)
models.CourseEnrollmentByCountry.objects.create(course=course, date=date, count=count, country=country)
for birth_year, ratio in birth_years.iteritems():
count = int(ratio * daily_total)
models.CourseEnrollmentByBirthYear.objects.create(course=course, date=date, count=count,
birth_year=birth_year)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment