Exemplo n.º 1
0
def get_photos(id):
    response = []
    connect('high_school')
    if not HighSchool.objects(id=id):
        response = "invalid id in request"
        return jsonify(response), 400
    else:
        for school in HighSchool.objects(id=id):
            name = school.name.replace(' ', '%20')
            url_textsearch = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=' + \
                  name + '&key=AIzaSyBqleXsttoPMyDVWDMQgcYwutB7ENx4icQ'
            with urllib.request.urlopen(url_textsearch) as textsearch_json:
                textsearch_data = json.load(textsearch_json)
                if textsearch_data["status"] != "OK":
                    response = []
                    return jsonify(response), 200
                place_id = textsearch_data["results"][0]["place_id"]
                url_details = 'https://maps.googleapis.com/maps/api/place/details/json?placeid=' +  \
                              place_id + '&key=AIzaSyBqleXsttoPMyDVWDMQgcYwutB7ENx4icQ'
                with urllib.request.urlopen(url_details) as details_json:
                    details_data = json.load(details_json)
                    if 'photos' in details_data["result"]:
                        for photo in details_data["result"]["photos"]:
                            photo_reference = photo["photo_reference"]
                            url_photo = 'https://maps.googleapis.com/maps/api/place/photo?photoreference=' + \
                                        photo_reference + '&sensor=false&maxheight=1600&maxwidth=1600' \
                                                          '&key=AIzaSyBqleXsttoPMyDVWDMQgcYwutB7ENx4icQ'
                            response.append(url_photo)

            return jsonify(response), 200
Exemplo n.º 2
0
def avg_min_selective_score(sid):
    response = {}
    connect('high_school')
    avg = -1
    if not HighSchool.objects(id=sid):
        response['error'] = "invalid id in request"
        return jsonify(response), 400
    else:
        for school in HighSchool.objects(id=sid):
            if school.selective == "Not Selective":
                return jsonify({}), 200
            scores = list(map(float, school.selective_entry_scores.values()))
            avg = st.mean(scores)
    return jsonify({'avg_min_selective_scores': int(avg)}), 200
Exemplo n.º 3
0
def get_average_enrollments(sid):
    response = {}
    connect('high_school')
    avg = 0
    if not HighSchool.objects(id=sid):
        response['error'] = "invalid id in request"
        return jsonify(response), 400
    else:
        for school in HighSchool.objects(id=sid):
            enrollments = list(map(float, school.enrollments.values()))
            if len(enrollments) == 0:
                return jsonify({}), 200
            avg = st.mean(enrollments)
    return jsonify({'avg_enrollments': int(avg)}), 200
Exemplo n.º 4
0
def get_average_attendance(sid):
    response = {}
    connect('high_school')
    avg = 0
    if not HighSchool.objects(id=sid):
        response['error'] = "invalid id in request"
        return jsonify(response), 400
    else:
        for school in HighSchool.objects(id=sid):
            attendance = list(map(float, school.attendance_rates.values()))
            if len(attendance) == 0:
                return jsonify({}), 200
            avg = st.harmonic_mean(attendance)
    return jsonify({'avg_attendance': avg}), 200
Exemplo n.º 5
0
def compare_students():
    schools = request.args.getlist('school_id')
    connect('high_school')
    num_students = {}
    for sid in schools:
        for school in HighSchool.objects(id=int(sid)):
            # get current num. of students
            num_students[school.name] = int(school.students)

    return jsonify(num_students), 200
Exemplo n.º 6
0
def compare_enrollments():
    schools = request.args.getlist('school_id')
    connect('high_school')
    average_enrollments = {}
    for sid in schools:
        for school in HighSchool.objects(id=int(sid)):
            # get the avg enrolments
            enrollments = list(map(float, school.enrollments.values()))
            average_enrollments[school.name] = st.mean(enrollments)

    return jsonify(average_enrollments), 200
Exemplo n.º 7
0
def compare_attendances():
    schools = request.args.getlist('school_id')
    connect('high_school')
    average_attendances = {}
    for sid in schools:
        for school in HighSchool.objects(id=int(sid)):
            # get the avg attendance_rates
            attendance = list(map(float, school.attendance_rates.values()))
            average_attendances[school.name] = st.harmonic_mean(attendance)

    return jsonify(average_attendances), 200
Exemplo n.º 8
0
def compare_selective_entry():
    schools = request.args.getlist('school_id')
    connect('high_school')
    average_selective_entry = {}
    for sid in schools:
        for school in HighSchool.objects(id=int(sid)):
            if school.selective != 'Not Selective':
                scores = list(map(float, school.selective_entry_scores.values()))
                average_selective_entry[school.name] = st.mean(scores)

    return jsonify(average_selective_entry), 200
Exemplo n.º 9
0
def parse_attendance_rates():
    with open('static/2011-2017-attendance-rates-by-nsw-government-schools.csv') as csvfile:
        rows = csv.reader(csvfile, delimiter=",")
        connect('high_school')
        for row in rows:
            if row[0] != "school_code" and row[0] != '':
                for school in HighSchool.objects(id=int(row[0])):
                    attendance_rates = {}
                    for i in range(0, 7):
                        attendance_rates[str(2011 + i)] = row[i + 2]
                    school.update(attendance_rates=attendance_rates)
Exemplo n.º 10
0
def parse_enrolments():
    with open('static/secondary-enrolments-by-school-2014-2018.csv') as csvfile:
        connect('high_school')
        rows = csv.reader(csvfile, delimiter=",")
        enrollments = {}
        for row in rows:
            if row[0] != '' and row[0] != "School Code" and "Student Enrolments" not in row[0] \
                    and "Opened" not in row[0]:
                school = HighSchool.objects(id=row[0])
                if school is not None:
                    for i in range(0, 4):
                        enrollments[str(2014 + i)] = row[i + 3]
                    school.update(enrollments=enrollments)
Exemplo n.º 11
0
def parse_selective_entry_scores():
    with open('static/2015-2018-selective-high-schools-minimum-entry-scores.csv') as csvfile:
        rows = csv.reader(csvfile, delimiter=",")
        connect('high_school')
        for row in rows:
            name = row[0].replace(" (Virtual)", "")
            name = name.replace(" (Day)", "")
            name = name.replace("(", "")
            name = name.replace(")", "")
            for school in HighSchool.objects(name=name):
                entry_scores = {}
                for i in range(0, 4):
                    entry_scores[str(2015 + i)] = row[i + 1]
                school.update(selective_entry_scores=entry_scores)