Skip to main content

File Structure

The backend consists of multiple modules, each one in its own directory. Here is an overview of the modules:

config

This small module simply contains functions for checking and getting environmental variables.

database

This module contains function to interact with the database.

funcs

Specialized functionality such as CSV parsing and email sending.

judging

Complex functions used for the main judging flow. This includes aggregating judging scores, picking the next project, and maintaining the project comparisons matrix.

logging

The logging module contains all functionality to write to the admin log.

models

All the models (structs) that is used to represent the data in Jury. This includes judges, projects, and options.

public

A dummy directory for the frontend. In development, this is used to serve a dummy page. In production, the statically built frontend will be copied to this directory before the Go build process.

router

The main code for the API and route handler functions.

util

Utility functions used across the backend app.