Contest Administration, Notifications, and Information System










What is CANIS?

The Contest Administration, Notifications, and Information System is a work-in-progress interface to simplify organization and logistics of competitive programming contests. Built by a contest-writer for contest-writers, CANIS increases productivity for the whole team with intuitive and powerful features.

CANIS is still in progress, but I hope to use it in 2025 to streamline administration for the Sierra Competitive Programming Exhibition at Sierra College, as well as the Aggie Competitive Programming Contest at UC Davis.

CANIS is written in Java using the Spring framework, and will be hosted on the cloud, free for all to use.

By a contest-writer, for contest-writers

I enjoy the technical aspects of hosting contests, especially writing problems! But to me, administration and ensuring that everyone's registration and attendance go smoothly are cumbersome. I'm writing CANIS so my teams and I can spend more time in the future having fun writing problems, instead of spending hours organizing sign-ups.


Demo

Contest organization


Contest creation and sharing


Integration settings


Live Contest Overview



Features

CANIS supports a plethora of tools to help your team efficiently organize your contest.

Live Contest Overview

While a contest is running, CANIS will process every new submission from the contest's page and report submissions on a live-updating interface for easy processing. This allows administrators to provide help to struggling contestants, along with handing out live prizes to contestants who solve problems.

Requires Codeforces integration.

Adaptable Seating Chart

The Adaptable Seating Chart allows you to plan out your contest room to keep track of who sits where, through a Fabric.js editor. Selecting a contestant or team will cause the corresponding seat to light up, so you easily know where to go.

Compatible with Codeforces and HackerRank integrations, along with the Live Contest Overview feature. Selecting a submission automatically causes the submitter's seat to light up.

Information Rest API

Provide attendees with up-to-date information on the number of registered attendees, along with the number of open spots remaining, from a Google Forms registration document.

This feature can either be made public for anyone to access, or can be set to require authorization through an API key.

Requires Google Forms integration.

Contest Sharing

Share your contests with your team, using just your teammates' emails. Set up permissions to enable or disable teammates changing settings.

Pre-Contest Notifications

Notify contestants with scheduled emails, along with information about their registration status. Automatically email contestants when their registration is processed and confirmed, or when contestants are waitlisted.

Post-Contest Analytics

Automatically generate an analysis of contestants, including data such as attendance versus registration rate and solves per problem.


Integrations

CANIS seamlessly integrates with external services as a hub for other applications.

Google Forms

Automatically process new sign-ups to your contest, registering contestants based on some condition.

Enables the Information Rest API.

Codeforces

Get a live report of submissions as people submit problems. This feature works for both public and group contests. Private contests require a Codeforces key and secret for access.

Uses the Codeforces Java API.

HackerRank

Just like Codeforces, get a live report of submissions as people submit problems. This feature works for both public and group contests.


The CANIS Dogma

I founded CANIS upon a simple dogma (get the pun?). I'll follow through on these ideas all throughout development.

To me, CANIS is a learning opportunity to get familiar with software development. But to you, I hope that CANIS can alleviate some of the burden of contest organization.

Simple

CANIS must be easy and intuitive to use. I wrote CANIS to make contest administration easier, not harder. Features should be easy to enable and configure, and integrations should be as simple as pasting in an API key and changing some settings.

Powerful

Despite its simplicity, CANIS will not lose power. Integrations and features will offer powerful functionality to let you easily organize your contest.

Free

The spirit of CANIS is to help people host fun contests to advance critical thinking and problem solving skills. Charging for it wouldn't be fair, as it would reduce the amount of fellow contest-writers able to benefit from it. Anyways, CANIS costs me between very little and nothing, and I have no intentions to make money from it.