<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: vincent laizer</title>
    <description>The latest articles on DEV Community by vincent laizer (@vincentlaizer).</description>
    <link>https://dev.to/vincentlaizer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F816698%2F346a1101-8846-444c-a15a-0fb2e61d2060.png</url>
      <title>DEV Community: vincent laizer</title>
      <link>https://dev.to/vincentlaizer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vincentlaizer"/>
    <language>en</language>
    <item>
      <title>NECTA API</title>
      <dc:creator>vincent laizer</dc:creator>
      <pubDate>Sun, 20 Feb 2022 21:29:46 +0000</pubDate>
      <link>https://dev.to/vincentlaizer/necta-api-5eid</link>
      <guid>https://dev.to/vincentlaizer/necta-api-5eid</guid>
      <description>&lt;p&gt;Has it ever occurred to you that you want to fetch national examination results of Tanzania from an API and found nothing online, well that's history now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6xkndpRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9a9336tutj1bxj7a4if4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6xkndpRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9a9336tutj1bxj7a4if4.png" alt="Image description" width="323" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was faced with the same issue some time back in 2020 and so I set myself to the task of making it easier for others to fetch the results through an API, well at least after I had used it to solve the issue I wanted, which was creating a mobile app that could show these results in a simpler way and I called it &lt;a href="http://tokeochapchap.herokuapp.com/"&gt;Tokeo Chapchap&lt;/a&gt; (you should definitely check it out) but, that’s a story for another time.&lt;/p&gt;

&lt;p&gt;Today lets look at what powers that App, an incredible work of coding art, the &lt;a href="https://github.com/vincent-laizer/NECTA-API"&gt;NECTA API&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Its an open source tool written in python, by &lt;a href="http://vincentsonlineresume.000webhostapp.com/"&gt;Vincent Laizer&lt;/a&gt;, it can be found in &lt;a href="https://pypi.org/project/nectaapi/"&gt;PyPI&lt;/a&gt; here. Its easy to use and well documented, you wont need anything more than the documentation to understand it.&lt;/p&gt;

&lt;p&gt;At present it only works with ACSEE and CSEE exam results of 2015 to date, but it is under active development to give more services.&lt;br&gt;
What can it do?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give a list of all schools in a given year and exam type (that is ACSEE or CSEE)&lt;/li&gt;
&lt;li&gt;Fetch specific student results, also given a year, exam type, school number and student number&lt;/li&gt;
&lt;li&gt;Get performance analysis of a school in a specific year and exam type&lt;/li&gt;
&lt;li&gt;Get analysis of a school performance over a range of year.&lt;/li&gt;
&lt;li&gt;Compare multiple schools performances' over a range of years. (This is only in its python package)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The API is split in two parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;REST API that you can send requests to, and freely get all that it has to offer .&lt;/li&gt;
&lt;li&gt;Python package, incase you need for python projects or even to host it on your own.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;REST API&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The NECTA REST API receives only GET request at the moment and all required data is passed in the URL and JSON is returned.&lt;br&gt;
Some quick details&lt;br&gt;
Base url:&lt;br&gt;
    &lt;a href="http://tokeochapchap.herokuapp.com/"&gt;http://tokeochapchap.herokuapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Get all schools in a give year:&lt;br&gt;
format: &lt;a href="http://tokeochapchap.herokuapp.com/schools/%5Bexam_year%5D/%5Bcsee%7Cacsee%5D"&gt;http://tokeochapchap.herokuapp.com/schools/[exam_year]/[csee|acsee]&lt;/a&gt;&lt;br&gt;
example: &lt;a href="http://tokeochapchap.herokuapp.com/schools/2021/csee"&gt;http://tokeochapchap.herokuapp.com/schools/2021/csee&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get student specific student results:&lt;br&gt;
format: &lt;a href="https://tokeochapchap.herokuapp.com/student/%5Bexam_year%5D/%5Bexam_type%5D/%5Bschool_number%5D/%5Bstudent_number%5D"&gt;https://tokeochapchap.herokuapp.com/student/[exam_year]/[exam_type]/[school_number]/[student_number]&lt;/a&gt;&lt;br&gt;
example: &lt;a href="https://tokeochapchap.herokuapp.com/student/2021/csee/s4981/0013"&gt;https://tokeochapchap.herokuapp.com/student/2021/csee/s4981/0013&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get performance analysis of a school:&lt;br&gt;
format: tokeochapchap.herokuapp.com/school/[exam_year]/[exam_type]/[school_number]&lt;br&gt;
example: &lt;a href="https://tokeochapchap.herokuapp.com/school/2020/acsee/s1268"&gt;https://tokeochapchap.herokuapp.com/school/2020/acsee/s1268&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get performance analysis over range of year for a school:&lt;br&gt;
format: tokeochapchap.herokuapp.com/comparison/[start_year]/[end_year]/[exam_type]/[school_number]&lt;br&gt;
example: &lt;a href="https://tokeochapchap.herokuapp.com/comparison/2019/2020/csee/s1268"&gt;https://tokeochapchap.herokuapp.com/comparison/2019/2020/csee/s1268&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Python Package&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The python package is well described in it documentation and the source code is well commented for readability, i need no more to explain it here. just check it out on github or pypi.&lt;br&gt;
In the end it all comes to how we use the data, it is still governed by NECTA and the cyber crime laws of Tanzania. use it wisely.&lt;br&gt;
Feedback on how to improve this project or the article are warmly welcome, thanks for sticking to the last letter, bye!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
