vikunja/docs/structure.md

1.9 KiB

Project structure

In general, this api repo has the following structure:

  • docker
  • docs
  • pkg
    • caldav
    • config
    • log
    • mail
    • metrics
    • models
    • red
    • routes
    • swagger
    • utils
  • REST-Tests
  • templates
  • vendor

This document will explain what these mean and what you can find where.

Root level

The root directory is where the config file, Makefile, license, drone config, application entry point (main.go) and so on are located.

docker

This directory holds additonal files needed to build and run the docker container, mainly service configuration to properly run Vikunja inside a docker container.

pkg

TBD.

caldav

TBD.

config

TBD.

log

TBD.

mail

TBD.

metrics

TBD.

models

TBD.

Needs a lot more explanation here.

red

TBD.

routes

TBD.

swagger

TBD.

utils

TBD.

REST-Tests

Holds all kinds of test files to directly test the api from inside of jetbrains ide's.

These files are currently more an experiment, maybe we will drop them in the future to use something we could integrate in the testing process with drone. Therefore, this has no claim to be complete yet even working, you're free to change whatever is needed to get it working for you.

templates

Holds the email templates used to send plain text and html emails for new user registration and password changes.

vendor

All libraries needed to build Vikunja.

We keep all libraries used for Vikunja around in the vendor/ folder to still be able to build the project even if some maintainers take their libraries down like it happened in the past.

When adding a new dependency, make sure to run go mod vendor to put it inside this directory.