<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://nikei-api.github.io/blog</id>
    <title>Nikel API Blog</title>
    <updated>2022-08-27T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://nikei-api.github.io/blog"/>
    <subtitle>Nikel API Blog</subtitle>
    <icon>https://nikei-api.github.io/img/nikel-api-circle.ico</icon>
    <entry>
        <title type="html"><![CDATA[Nikel migrated to Fly.io]]></title>
        <id>migrated-to-fly</id>
        <link href="https://nikei-api.github.io/blog/migrated-to-fly"/>
        <updated>2022-08-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Nikel API has migrated to Fly.io. Please email api@nikel.ml if you encounter any issues with the service.]]></summary>
        <content type="html"><![CDATA[<p>Nikel API has migrated to <a href="https://fly.io/" target="_blank" rel="noopener noreferrer">Fly.io</a>. Please email <a href="mailto:api@nikel.ml" target="_blank" rel="noopener noreferrer">api@nikel.ml</a> if you encounter any issues with the service.</p><div class="admonition admonition-note alert alert--secondary"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Acknowledgement of out of date data</h5></div><div class="admonition-content"><p>We know that course data is out of date. UofT decomissioned the course finder and other methods have to be used to scrape course data. If you want to help update parser code, please refer to the repo: <a href="https://github.com/nikel-api/nikel-parser" target="_blank" rel="noopener noreferrer">https://github.com/nikel-api/nikel-parser</a>.</p></div></div>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Cloudflare Outage in Canada]]></title>
        <id>cloudflare-outage-canada</id>
        <link href="https://nikei-api.github.io/blog/cloudflare-outage-canada"/>
        <updated>2021-03-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Users in Canada might have troubles accessing Nikel API. This is most likely due to an unacknowledged issue with Cloudflare.]]></summary>
        <content type="html"><![CDATA[<p>Users in Canada might have troubles accessing Nikel API. This is most likely due to an unacknowledged issue with Cloudflare.</p><p>If you have any questions regarding this outage, please contact Nikel API at <a href="mailto:api@nikel.ml" target="_blank" rel="noopener noreferrer">api@nikel.ml</a>.</p><p>Thank you.</p><div class="admonition admonition-note alert alert--secondary"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Update</h5></div><div class="admonition-content"><p>Update: The issue seems to be fixed, an incident is reported after the fact: <a href="https://www.cloudflarestatus.com/incidents/qjwxv73chh5b" target="_blank" rel="noopener noreferrer">https://www.cloudflarestatus.com/incidents/qjwxv73chh5b</a></p></div></div>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Looking for Sponsors]]></title>
        <id>looking-for-sponsors</id>
        <link href="https://nikei-api.github.io/blog/looking-for-sponsors"/>
        <updated>2020-08-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We are looking for sponsors!]]></summary>
        <content type="html"><![CDATA[<p>We are looking for sponsors!</p><p>Nikel is yet move to a proper VPS, and any donations or donated compute resources is greatly appreciated.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="perks">Perks:<a class="hash-link" href="#perks" title="Direct link to heading">​</a></h3><ul><li>Name and logo shown on the footer of this website.</li><li>Name and logo shown on Nikel's GitHub Readme.</li></ul><p>Please email <a href="mailto:api@nikel.ml" target="_blank" rel="noopener noreferrer">api@nikel.ml</a> for more information.</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Re: Nikel Status Page]]></title>
        <id>re-nikel-status-page</id>
        <link href="https://nikei-api.github.io/blog/re-nikel-status-page"/>
        <updated>2020-08-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Nikel's status page at https://status.nikel.ml is back online.]]></summary>
        <content type="html"><![CDATA[<p>Nikel's status page at <a href="https://status.nikel.ml" target="_blank" rel="noopener noreferrer">https://status.nikel.ml</a> is back online.</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Nikel Status Page]]></title>
        <id>nikel-status-page</id>
        <link href="https://nikei-api.github.io/blog/nikel-status-page"/>
        <updated>2020-08-04T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Nikel uses FreshPing as its uptime monitor. However, FreshPing's custom pages seem to not work currently.]]></summary>
        <content type="html"><![CDATA[<p>Nikel uses FreshPing as its uptime monitor. However, FreshPing's custom pages seem to not work currently.</p><p>If you want to see Nikel's uptime stats here is a working link: <a href="https://statuspage.freshping.io/39964-NikelAPI" target="_blank" rel="noopener noreferrer">https://statuspage.freshping.io/39964-NikelAPI</a></p><p>We'll keep you posted on any updates...</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Looking for maintainers]]></title>
        <id>looking-for-maintainers</id>
        <link href="https://nikei-api.github.io/blog/looking-for-maintainers"/>
        <updated>2020-08-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Don't worry, Nikel API isn't going anywhere.]]></summary>
        <content type="html"><![CDATA[<p>Don't worry, Nikel API isn't going anywhere.</p><p>However, maintaining an API requires lots of work, so we are looking for maintainers for the various Nikel projects.</p><ul><li><a href="https://github.com/nikel-api/nikel" target="_blank" rel="noopener noreferrer">nikel-core</a>: Written in Go. Serves the API.<ul><li><a href="https://github.com/nikel-api/nikel-cache" target="_blank" rel="noopener noreferrer">nikel-cache</a>: Cache middleware for nikel-core.</li></ul></li><li><a href="https://github.com/nikel-api/nikel-parser" target="_blank" rel="noopener noreferrer">nikel-parser</a>: Written in Python. Parses data sources and generates datasets.</li><li><a href="https://github.com/nikel-api/nikel-ts" target="_blank" rel="noopener noreferrer">nikel-ts</a>: Written in Typescript. The official Node.js API wrapper for Nikel.</li><li><a href="https://github.com/nikel-api/nikel-docs" target="_blank" rel="noopener noreferrer">nikel-docs</a>: Written in Javascript + Markdown. Nikel API's documentation.</li></ul><p>If anyone is interested in working on a web app written in Vue: <a href="https://github.com/nikel-api/nikel-app" target="_blank" rel="noopener noreferrer">nikel-app</a>. Here is a <a href="https://nikel-api.github.io/nikel-app/" target="_blank" rel="noopener noreferrer">working demo</a>.</p><p>If you have any questions please contact us at <a href="mailto:api@nikel.ml" target="_blank" rel="noopener noreferrer">api@nikel.ml</a>.</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Update 3]]></title>
        <id>nikel-update-3</id>
        <link href="https://nikei-api.github.io/blog/nikel-update-3"/>
        <updated>2020-07-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[It has been a while since there was an update.]]></summary>
        <content type="html"><![CDATA[<p>It has been a while since there was an update.</p><p>Nikel's growth is starting to slow down. This isn't a bad thing! It means that users are starting to stabilize. I hope that this period of stability will allow developers to become familiar with the API. The API is only a month old now, so it'll take a little while for people to gain trust of Nikel.</p><p>Stay tuned for more updates...</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Update 2]]></title>
        <id>nikel-update-2</id>
        <link href="https://nikei-api.github.io/blog/nikel-update-2"/>
        <updated>2020-07-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Nikel has reached 1 million requests in the last 10 days!]]></summary>
        <content type="html"><![CDATA[<p>Nikel has reached <strong>1 million requests in the last 10 days!</strong></p><p>Currently, the Nikel organization is developing a web/mobile app and is looking for contributors. If you are interested, please email <a href="mailto:api@nikel.ml" target="_blank" rel="noopener noreferrer">api@nikel.ml</a> for more information.</p><p>Stay tuned for more updates...</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Incident Report]]></title>
        <id>incident-report-1</id>
        <link href="https://nikei-api.github.io/blog/incident-report-1"/>
        <updated>2020-07-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[What happened?]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_mojV" id="what-happened">What happened?<a class="hash-link" href="#what-happened" title="Direct link to heading">​</a></h3><p>Around 10 EDT, there was a <a href="https://github.com/nikel-api/nikel/commit/a07a0927d252cef3d0991486a71537bea15c2e87" target="_blank" rel="noopener noreferrer">faulty commit</a> that happened to pass continuous integration.</p><p>This caused the API to return empty responses for about 10 hours and 30 minutes to 8:30 EDT.</p><p>A fix is released and the issue is resolved.</p><p>Sorry for any inconveniences caused,</p><p>Daren Liang</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Update 1]]></title>
        <id>nikel-update-1</id>
        <link href="https://nikei-api.github.io/blog/nikel-update-1"/>
        <updated>2020-07-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Nikel's going strong, serving roughly 100k requests daily!]]></summary>
        <content type="html"><![CDATA[<p>Nikel's going strong, serving roughly 100k requests daily!</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="whos-using-nikel">Who's using Nikel?<a class="hash-link" href="#whos-using-nikel" title="Direct link to heading">​</a></h3><p>A few projects are using Nikel.</p><ul><li><a href="https://github.com/MuradAkh/UofTCourseInfo" target="_blank" rel="noopener noreferrer">UofTCourseInfo</a> by <a href="https://github.com/MuradAkh" target="_blank" rel="noopener noreferrer">MuradAkh</a></li><li><a href="https://github.com/vodanny1/UofT-App" target="_blank" rel="noopener noreferrer">UofT-App</a> by <a href="https://github.com/vodanny1" target="_blank" rel="noopener noreferrer">vodanny1</a></li><li><a href="https://github.com/platers/UofT-Prerequisite-Checker" target="_blank" rel="noopener noreferrer">UofT-Prerequisite-Checker</a> by <a href="https://github.com/platers" target="_blank" rel="noopener noreferrer">platers</a></li></ul><p>There are more projects using Nikel (either private or not GitHub).</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="you-made-something-with-nikel-what-now">You made something with Nikel. What now?<a class="hash-link" href="#you-made-something-with-nikel-what-now" title="Direct link to heading">​</a></h3><p>Great! If you want a place to show your project to the world, please submit a pull request to add your project to the <a href="/showcase">showcase page</a>.</p><p>❤️ Much thanks for everyone's support,</p><p>Daren Liang</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Next Steps]]></title>
        <id>next-steps</id>
        <link href="https://nikei-api.github.io/blog/next-steps"/>
        <updated>2020-07-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Thank You!]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_mojV" id="thank-you">Thank You!<a class="hash-link" href="#thank-you" title="Direct link to heading">​</a></h3><p>Nikel API has come a long way since its initial release about 3 weeks ago. To date, Nikel API has served close to <strong>80k requests</strong>.</p><p>Thank you for the continued support for Nikel API!</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="contributers--team-members">Contributers / Team members<a class="hash-link" href="#contributers--team-members" title="Direct link to heading">​</a></h3><p>Nikel is currently maintained by one person (me). I believe that to make this project sustainable for years to come, we will need to create an environment where people can collaborate and share ideas.</p><p>Contributing to open source can be daunting/overwhelming, which is why I want to make this project as friendly as possible to newcomers.</p><p>If you are interested in contributing to Nikel API or want to take part in the development process, please contact us at <a href="mailto:api@nikel.ml" target="_blank" rel="noopener noreferrer">api@nikel.ml</a> so we can add you to the <a href="https://github.com/nikel-api" target="_blank" rel="noopener noreferrer">GitHub organization</a>.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="api-wrappers">API Wrappers<a class="hash-link" href="#api-wrappers" title="Direct link to heading">​</a></h3><p>I'm currently looking for people who want to develop API wrappers for Nikel API.</p><p>Currently, there are two API wrappers for Nikel:</p><ul><li><a href="https://www.npmjs.com/package/nikel" target="_blank" rel="noopener noreferrer">nikel-ts (Node.js - Official)</a></li><li><a href="https://crates.io/crates/nikel-rs" target="_blank" rel="noopener noreferrer">nikel-rs (Rust)</a></li></ul><p>It would be amazing if more languages had API wrappers since it would make using the API much easier and simpler for newcomers.</p><p>Thanks again,</p><p>Daren Liang</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Welcome to Nikel API!]]></title>
        <id>welcome</id>
        <link href="https://nikei-api.github.io/blog/welcome"/>
        <updated>2020-06-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[What is Nikel API?]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_mojV" id="what-is-nikel-api">What is Nikel API?<a class="hash-link" href="#what-is-nikel-api" title="Direct link to heading">​</a></h3><p>Nikel (pronunciation: <code>/'ni:kɛl/</code>) is a collection of data APIs for the <a href="https://www.utoronto.ca/" target="_blank" rel="noopener noreferrer">University of Toronto</a>. It's aimed to be a viable replacement for the now unmaintained and non-functioning <a href="https://cobalt.qas.im/" target="_blank" rel="noopener noreferrer">Cobalt API</a>.</p><p>Nikel API is built with performance in mind with request caching and low latency querying. The Nikel Core is written in 100% <a href="https://golang.org/" target="_blank" rel="noopener noreferrer">Go</a> using the <a href="https://github.com/gin-gonic/gin" target="_blank" rel="noopener noreferrer">Gin Web Framework</a> for reliability and speed.</p><p>As a result, <strong>Nikel API will always be free and unlimited</strong>.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="why">Why?<a class="hash-link" href="#why" title="Direct link to heading">​</a></h3><p>A crucial part of applications are APIs. The Nikel API is aimed to assist students and developers in providing high quality data APIs on the University of Toronto.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="contributing">Contributing<a class="hash-link" href="#contributing" title="Direct link to heading">​</a></h3><p><a href="https://github.com/nikel-api" target="_blank" rel="noopener noreferrer">Nikel is opensource</a>. If you want to contribute, pull requests are always welcome. Any help is greatly appreciated.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="next-steps">Next Steps<a class="hash-link" href="#next-steps" title="Direct link to heading">​</a></h3><p>Here's a list of things Nikel will hopefully accomplish in the future:</p><ul><li>Add more endpoints</li><li>Deploy Nikel Core on a proper VPS</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="questions">Questions?<a class="hash-link" href="#questions" title="Direct link to heading">​</a></h3><p>Send your questions to <a href="mailto:api@nikel.ml" target="_blank" rel="noopener noreferrer">api@nikel.ml</a>.</p>]]></content>
        <author>
            <name>Daren Liang</name>
            <uri>https://github.com/darenliang</uri>
        </author>
    </entry>
</feed>