Skip to main content

Fetch results of various national examinations done in Tanzania

Project description

Necta-API

Get a formated data of examination results scrapped from necta results website.

Note this is not an official NECTA API and is still in development

Current version is Beta 2.0.0

This Version comes with a more modular structure compared to the previsious ones

Developed by Tanzania Programmers, written by Vincent Laizer.


Usage

  • Get the package via pip
    pip install nectaapi 
  • In any return value asterisc '*' indicates that no data could be scrapped

  • Get a list of all schools in a given year and exam type.

exam type can be acsee or csee (for now, more to be added)

    from nectaapi import schools

    data = schools.schools(2017, 'csee') 

the function returns a dictionary in the form

{
    "exam_type": "examamination type",
    "year_of_exam": "year of examination",
    "number_of_schools": "number of schools in this exam and year",
    "schools": [
        {
            "school_name": "school name 1",
            "registration_number":"registration number 1"
        },
        {
            "school_name": "school name 2",
            "registration_number":"registration number 2"
        },
         ...]
}
  • Get a highlight of school overal results
  from nectaapi import summary

  data = summary.summary(year, examType, schoolNumber)

  # schoolNumber is the schools registration number ie s3881 or s1268

the function returns a dictionary in the form

  {
      "school_name": "name of school",
      "school_number": "school_number",
      "exam_type": "exam_type",
      "year_of_exam": "year",
      "school_category":"category based on number of students",
      "number_of_students": "total number of students",
      "school_region":"regional location of the school",
      "male_students": "number of male students",
      "female_students": "number of female students",
      "absentees": "number of students who missed the exam",
      "division_one": "number of division one",
      "division_two": "number of division two",
      "division_three": "number of division three",
      "division_four": "number of division four",
      "division_zero":"number of division zero",
      "national_position": "school's national position",
      "regional_position": "school's regional position",
      "total_national_schools":"number of schools national wise",
      "total_regional_schools":"number of schools regional wise",
      "gpa": "school's GPA"
  }
  • Get a single students results
  from nectaapi import student

  results = student.student(year, examType, schoolNumber, studentNumber)

  # student number is the students part of their examination number eg 0040 or 0553

The 'student' function returns a dictionary of this form

  {
  "examination_number":"students examination number",
  "year_of_exam":"year",
  "exam_type":"exam type",
  "school_name":"name of student's school",
  "gender":"student's gender",
  "division":"students division",
  "points":"grade points",
  "subjects":
          {
              "subject1":"score1",
              "subject2":"score2",
              ...
          }
  }
  • Compare schools performance over a range of years or of just a single school

not present in perivious versions

The parameters of the function are, the start year, end year of comparison, exam type and a list of schools to compare. start year is always less than end year, suppose they are equal a one year comparison is returned

    from nectaapi import comparison
    data = comparison.comparison(start_year, end_year, exam_type,  ["school_number1", "school_number2", ...])

It then returns a dictionary with school comparable data like, gpa, national_position and number_of_students in the form

    {
        "year1":{
            "school_number1":{
                "gpa":"",
                "national_position":"",
                "number_of_students":""
            },
            "school_number2":{
                "gpa":"",
                "national_position":"",
                "number_of_students":""
            },
            ...
        },
        "year2":{
            "school_number1":{
                "gpa":"",
                "national_position":"",
                "number_of_students":""
            },
            "school_number2":{
                "gpa":"",
                "national_position":"",
                "number_of_students":""
            },
            ...
        }
        ...
    }

As one of my teachers said, "Academics is one of the 3 areas in life where competition is allowed" Mr. H. Masegense, so don't mind comparing performance of schools over the years

  • comparison module comes with a bonus function to check if a school participated in national examinations of a given type and year. Returns a boolean value
    from nectaapi import comparison
    isPresent = comparison.schoolPresent(year, exam_type, school_number)

What's New

  • Bug fixes on the school summary function
  • proper handling of the year 2015 where GPA system was used.
    • note, in this year, distinction is counted as division one, merit as division two, credit as division three, pass as division four and fail as division zero.
  • school comparison function
  • code modularity improvement

check out video tutorial on YouTube for demos.


contributions are awaited for GitHub repo NECTA-API

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nectaapi-2.0.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

nectaapi-2.0.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file nectaapi-2.0.0.tar.gz.

File metadata

  • Download URL: nectaapi-2.0.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for nectaapi-2.0.0.tar.gz
Algorithm Hash digest
SHA256 6b617235c69e6acdb4c79b8d7d7bb0033d29bae2a919d3723ed452b509fcf622
MD5 d2554789579691957f5aa120d5d5dae8
BLAKE2b-256 0e70dbbfdfd7319eeff7a05c999bd41d9951b1a2911b1dac2f9beb0ccded60ba

See more details on using hashes here.

File details

Details for the file nectaapi-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: nectaapi-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for nectaapi-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e305cce4fd49b305e6c23bc78d7b034f35fd98dd2d521f4a6d93986838aadef6
MD5 111d7ae24db27f601d84f1afba156b8e
BLAKE2b-256 b4e986f8b97ee002914415180c5d9ca94b827ab5206998ff394b72d1cff0f4d8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page